使用Crystal Report获取接下来三个月的最后一天

时间:2015-08-03 06:29:40

标签: crystal-reports

我正在寻找一个日期的公式,这个日期是Crystal Report的接下来3个月的最后一天。我已尝试使用下面的代码,但是当它超出月份数组(1-12)时会显示一条消息。请给我任何解决这个问题的建议。

ToText(date(year({rptIEXSaleInvoiceSummary.ETD}),month({rptIEXSaleInvoiceSummary.ETD})+4,1)-1, "dd-MMM-yyyy")

如果ETD's month小于8,它可以正常工作。但是,如果它超过9,10,则可能会导致问题。

1

2 个答案:

答案 0 :(得分:0)

我找到了解决方案。如果您有任何想法可以解决问题,请告诉我。

IF (month({rptIEXSaleInvoiceSummary.ETD})+4) > 12 THEN 
ToText(date(year({rptIEXSaleInvoiceSummary.ETD})+1,month({rptIEXSaleInvoiceSummary.ETD})-8,1)-1, "dd-MMM-yyyy")
ELSE
ToText(date(year({rptIEXSaleInvoiceSummary.ETD}),month({rptIEXSaleInvoiceSummary.ETD})+4,1)-1, "dd-MMM-yyyy")

答案 1 :(得分:0)

要获得第4个月使用DateAdd

DateAdd(“m”,4,{rptIEXSaleInvoiceSummary.ETD})

然后你可以撰写日期

ToText(date(year(DateAdd(“m”,4,{rptIEXSaleInvoiceSummary.ETD})),month({rptIEXSaleInvoiceSummary.ETD}),1), "dd-MMM-yyyy")

或减去天数

DateAdd(“d”,day({rptIEXSaleInvoiceSummary.ETD}),DateAdd(“m”,4,{rptIEXSaleInvoiceSummary.ETD}))