首页 > 解决方案 > 基于水晶日期的记录选择;星期六没有更低的日期

问题描述

我想为记录选择设置一个具有默认日期范围的 Crystal 报表。根据公式字段 {@Calc Promise Date},我希望日期范围不超过当前一周的星期六。我是 Crystal 的轻量级最终用户,我遇到了麻烦。

我可以用:

AllDatesToToday 中的 {@Calc 承诺日期}

但我正在寻找一种方法来让结果都是本周星期六的日期。

在此先感谢您的帮助。

标签: crystal-reportsdate-range

解决方案


感谢 Siva 在类似问题上的帮助,我现在有了这个问题的答案。创建一个新的“结束日期”公式字段,其中包含:

if DayOfWeek (DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 1
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+6)
else if DayOfWeek(DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 2
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+5)
else if  DayOfWeek(DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 3
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+4)
else if  DayOfWeek(DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 4
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+3)
else if  DayOfWeek(DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 5
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+2)
else if  DayOfWeek(DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 6
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+1)
else if DayOfWeek(DateSerial(Year(currentdate),Month(currentdate),Day(currentdate))) = 7
then DateSerial(Year(currentdate),Month(currentdate),Day(currentdate)+0)

然后在记录选择中引用该公式。在我的例子中,记录的相关日期范围是一个通过当前日期范围公式字段,因此我的记录选择随后更新为包括以下行:

{@Through Current Date Range}<{@End Date} 

推荐阅读