【发布时间】:2018-11-23 13:11:16
【问题描述】:
我需要在字段中显示基于日期前一个月的日期范围。例如,如果日期值 (DOCDATE) 是 6/6/18,我希望范围显示为:
5/1/18 to 5/31/18
我可以使用 LASTFULLMONTH 并设置最小和最大限制,它适用于当月的记录,但我需要使用 DOCDATE 作为控件。
【问题讨论】:
标签: crystal-reports date-range
我需要在字段中显示基于日期前一个月的日期范围。例如,如果日期值 (DOCDATE) 是 6/6/18,我希望范围显示为:
5/1/18 to 5/31/18
我可以使用 LASTFULLMONTH 并设置最小和最大限制,它适用于当月的记录,但我需要使用 DOCDATE 作为控件。
【问题讨论】:
标签: crystal-reports date-range
您可以使用以下公式实现此目的。
请注意公式名称,因为它们部分相互依赖。
{@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})
【讨论】:
{@DOCDATE} 替换为相应的数据库字段。
prevMonth,内容为DateAdd("m", -1, {SOP10100.DOCDATE}).;第二个公式名称将是startDate...等等。如果您在另一个公式中使用一个公式,则 Crystal Reports 需要格式 {@FORMULANAME}。