Telerik Report Nullable Date Parameter
背景
有個報表,搜尋條件是兩種日期選一種,日期欄位就是區間開始與區間結束,
在報表檔案設定四個日期變數:A 起始、A 結束、B 起始、B 結束,都可以為空值,
然後還要做民國年轉換,
結果在表頭顯示輸入變數的地方就調了很久,終於成功…
解法
原來要做以下處理:
- 判斷變數是否為 null
1 | Parameters.P_InitDateStart is null |
- 調整 UTC 時區問題,沒有自動+8,要手動+8
1 | AddHours(Parameters.P_InitDateStart,8) |
- 加上小時前,還要做 IsNull 判斷讓他一定要回傳一個非空的日期值
1 | AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8) |
- 把年份減去 1911
1 | (AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8).Year-1911) |
- 最後拼起來這些處理就變成這樣:
1 | = IIF(Parameters.P_InitDateStart is null, (AddHours(IsNull(Parameters.P_ArriveDateStart, Date(1,1,1)),8).Year-1911)+"/" +AddHours(IsNull(Parameters.P_ArriveDateStart, Date(1,1,1)),8).Month+"/" +AddHours(IsNull(Parameters.P_ArriveDateStart, Date(1,1,1)),8).Day, (AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8).Year-1911)+"/" +AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8).Month+"/" +AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8).Day) |
暈…