Crystal reports 是否有一种快速简便的方法在crystal报告上打印月末日期?

Crystal reports 是否有一种快速简便的方法在crystal报告上打印月末日期?,crystal-reports,Crystal Reports,我正在Crystal Reports中构建一个非常简单的报告,我们需要它在一个月的最后一天打印,基于它所打印的月份 我认为Crystal有一些方法可以做到这一点,因为有“特殊字段”,比如打印日期。还是我必须写一个if-then-else?试试这个: CDate(DateAdd("d", -1, DateSerial(Year(CurrentDate), Month(CurrentDate) + 1, 1))) 我使用了这里讨论的公式:这对我起了作用,做了一些修改。我将其更改为适合我的目的,如下

我正在Crystal Reports中构建一个非常简单的报告,我们需要它在一个月的最后一天打印,基于它所打印的月份

我认为Crystal有一些方法可以做到这一点,因为有“特殊字段”,比如打印日期。还是我必须写一个if-then-else?

试试这个:

CDate(DateAdd("d", -1, DateSerial(Year(CurrentDate), Month(CurrentDate) + 1, 1)))

我使用了这里讨论的公式:这对我起了作用,做了一些修改。我将其更改为适合我的目的,如下所示:

//{@EndOfMonth} // find the first day of the month, add a month to it, then subtract a day DateAdd("m", 1, DateTime( Year(CurrentDate), Month(CurrentDate), 1, 0,0,0 )) - 1 –  

另一种在报告中打印月末的方法是使用此公式

dateserial(year(currentdate),month(currentdate)+1,1-1)

如果您需要在代码的这一部分中减去1,那么它将给出当前月份的最后一天。
month(currentdate)+1
,在代码的这一部分中减去1,在代码的这一部分中减去1,然后在代码的这一部分中添加1,以此类推。

请参见此处:谢谢!我做了一些修改,让它为我工作。@AliciaUhacz你可以回答你的问题,这样其他人就可以使用…我创建了一个公式(EndOfMonth),看起来是这样的://{@EndOfMonth}//找到一个月的第一天,加上一个月,然后减去一天DateAdd(“m”,1,DateTime(Year(CurrentDate),month(CurrentDate),1,0,0)) - 1@KristoferA我已经测试了这个解决方案,无论月报是什么样的,它都能正常工作。。。你能在这个解决方案失败的地方添加你的评论吗?@Siva你是对的:显然VBA DateSerial可以对无效的日期进行滚动,并接受月值13。。。我原以为它会失败。我遇到的唯一问题是,它打印时间提前了2个月,而不是1个月。所以,我们是在八月,它打印六月。七月:日期序列(年(当前日期),月(当前日期),1-1)欢迎@AliciaUhacz。我很高兴能帮助你。