Crystal Reports:可选日期参数

时间:2015-11-16 22:20:03

标签: crystal-reports

我是Crystal Reports初学者,我正在编写一份报告,我正在尝试使用可选的终点设置日期范围查询。因此,例如,如果用户选择开始日期,则报告仅包括开始日期之后的结果。同样,如果用户选择结束日期,则报告仅包括结束日期之前的结果。

我使用以下过滤器,但预览器一直抱怨缺少日期。 (在我正在进行的测试中,我选择了一个开始日期,没有结束日期。预览者抱怨我没有结束日期)

datevar start := IIF(HasValue({?Start Date}) and not isNull({?Start Date}), {?Start Date}, Date(1900, 01, 01));
datevar end   := IIF(HasValue({?End Date})   and not isNull({?End Date}),   {?End Date}, Date(3000, 12, 31));

({APPT.DATE} in start to end)

因此,正如您所看到的,目的是检查报告是否定义了{?End Date}参数。如果是,我们使用它。如果没有,我们选择一个“巨大”的日期。但显然,IIF要求定义真正的分支,即使它没有被使用。

使用Crystal报表语言是否有类似的清晰编码方式?

1 个答案:

答案 0 :(得分:1)

回想起来,这是一个愚蠢的问题。但由于我还没能找到官方语言语法规范,我会发布一个答案。

解决方案是认识到Crystal Reports语言允许您根据控制语句定义变量,如:

datevar end := if (HasValue({?End Date})) then {?End Date} else Date(9999,12,01);