markdown
#背景
有個報表,搜尋條件是兩種日期選一種,日期欄位就是區間開始與區間結束,
在報表檔案設定四個日期變數:A起始、A結束、B起始、B結束,都可以為空值,
然後還要做民國年轉換,
結果在表頭顯示輸入變數的地方就調了很久,終於成功...
#解法
原來要做以下處理:
1. 判斷變數是否為null
```
Parameters.P_InitDateStart is null
```
2. 調整UTC時區問題,沒有自動+8,要手動+8
```
AddHours(Parameters.P_InitDateStart,8)
```
3. 加上小時前,還要做IsNull判斷讓他一定要回傳一個非空的日期值
```
AddHours(IsNull(Parameters.P_InitDateStart, Date(1,1,1)),8)
```
4. 把年份減去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)
```
暈...
沒有留言:
張貼留言