2017年12月19日 星期二

Telerik Report Nullable Date Parameter



背景

有個報表,搜尋條件是兩種日期選一種,日期欄位就是區間開始與區間結束,
在報表檔案設定四個日期變數:A起始、A結束、B起始、B結束,都可以為空值,
然後還要做民國年轉換,
結果在表頭顯示輸入變數的地方就調了很久,終於成功...

解法


原來要做以下處理:

  1. 判斷變數是否為null
Parameters.P_InitDateStart is null



  1. 調整UTC時區問題,沒有自動+8,要手動+8
AddHours(Parameters.P_InitDateStart,8)



  1. 加上小時前,還要做IsNull判斷讓他一定要回傳一個非空的日期值
AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8)



  1. 把年份減去1911
(AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8).Year-1911)



5.最後拼起來這些處理就變成這樣:

= 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)



 暈...

沒有留言:

張貼留言