我正在寻找一个日期的公式,这个日期是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,则可能会导致问题。
答案 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}))