Crystal 报表:根据字段值显示日期范围(月、月的第一天、年到月、最后一天、年)

Crystal Reports: Display date range (month, first day of month, year to month, last day, year) based on field value

我需要根据字段中日期之前的月份显示日期范围。例如,如果日期值 (DOCDATE)6/6/18,我希望范围显示为:

5/1/18 to 5/31/18

我能够使用具有最小和最大限制的 LASTFULLMONTH,它适用于当月的记录,但我需要使用 DOCDATE 作为对照。

您可以使用以下公式实现此目的。
注意公式名称,因为它们部分相互依赖。

{@prevMonth}
{@DOCDATE}

减一个月得到前一个月
DateAdd("m", -1, {@DOCDATE})

{@startDate}
通过从 {@prevMonth} 的年月和 1 日创建新日期来获取开始日期(上个月的第一天)。

Date(Year({@prevMonth}), Month({@prevMonth}), 1)

{@endDate}
通过从 {@DOCDATE} 的年月和 1 减去一天

创建一个新日期来获取结束日期(上个月的最后一天)
Date(DateAdd("d", -1, Date(Year({@DOCDATE}), Month({@DOCDATE}), 1)))

{@displayRange}
显示范围。

CStr({@startDate}) & " to " & CStr({@endDate})