2012-04-18 145 views
0

我使用Crystal Reports 12.0.0.683,其中使用的日期類型參數爲允許範圍值。比我想在中使用它記錄選擇公式。我設置包含此值並使用此選擇公式:日期範圍參數 - 包括記錄選擇的邊界

(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})) 
)) 

我用IncludesUpperBoundIncludesLowerBound,但它仍然沒有選擇正確的記錄。

例如,我有DATE_DUE 2012-03-30,如果我設置的參數2012-03-30,選擇包括該值的記錄得到過濾掉。

我在做什麼錯?

回答

3

你並沒有在任何地方使用小於或等於/大於或等於,所以它不會包含等於到最大值或最小值的值。

可以大大這樣簡化代碼:

not(hasvalue({?PARAM_DATE})) 
or {VIEW_REPORT_1.DATE_DUE} in {?PARAM_DATE}
+0

不知道爲什麼,這didnt早些時候工作時,我嘗試這樣做;)THX ... – 2012-04-19 11:05:56