我正在使用Crystal Reports 12.0.0.683,其中我使用date类型的参数并设置为允许范围值。比我想在记录选择公式中使用它。我正在设置包含此值并使用此选择公式:
(not HasValue({?PARAM_DATE}) OR
(
if HasLowerBound({?PARAM_DATE}) and HasUpperBound({?PARAM_DATE}) then
({VIEW_REPORT_1.DATE_DUE} > Minimum({?PARAM_DATE})) and
({VIEW_REPORT_1.DATE_DUE} < Maximum({?PARAM_DATE}))
else if HasLowerBound({?PARAM_DATE}) and not HasUpperBound({?PARAM_DATE}) then
({VIEW_REPORT_1.DATE_DUE} > Minimum({?PARAM_DATE}))
else if HasLowerBound({?PARAM_DATE}) and not HasUpperBound({?PARAM_DATE}) and IncludesLowerBound({?PARAM_DATE}) then
({VIEW_REPORT_1.DATE_DUE} >= Minimum({?PARAM_DATE}))
else if not HasLowerBound({?PARAM_DATE}) and HasUpperBound({?PARAM_DATE}) then
({VIEW_REPORT_1.DATE_DUE} < Maximum({?PARAM_DATE}))
else if not HasLowerBound({?PARAM_DATE}) and HasUpperBound({?PARAM_DATE}) and IncludesUpperBound({?PARAM_DATE}) then
({VIEW_REPORT_1.DATE_DUE} <= Maximum({?PARAM_DATE}))
))
我使用IncludesUpperBound
和IncludesLowerBound
,但仍未选择正确的记录。
例如,我有DATE_DUE 2012-03-30,如果我设置参数2012-03-30并选择包含此值,则过滤掉记录。
我做错了什么?
答案 0 :(得分:3)
你并没有在任何地方使用小于或等于/大于或等于它,所以它不会包含等于的最大值或最小值。
您可以通过以下方式大大简化代码:
not(hasvalue({?PARAM_DATE}))
or {VIEW_REPORT_1.DATE_DUE} in {?PARAM_DATE}