1. 描述
因政府、事業單位的正式檔案中的落款日期都是中文的。
如:在 FineReport 中製作填報範本,使用了日期元件,希望在做填報時,將當前日期元件中選擇的日期值(FR 中預設是yyyy-MM-dd的日期格式),能夠以中文的方式匯出顯示,然後再入庫,但入庫的資料還是預設數值型別的 yyyy-MM-dd 的日期格式。
實現效果如下圖:
2. 思路
使用NUMTO()函式,透過字元轉化方式,將其轉化為中文匯出即可。
NUMTO(number,bool):傳回 number 的中文表示。
注:其中 bool 用於選擇中文表示的方式,當沒有 bool 時,採用預設方式(false)顯示。
範例:NUMTO(2345,true)傳回值為二三四五
範例:NUMTO(2345,false)傳回值為二千三百四十五
範例:NUMTO(2345)傳回值為二千三百四十五
3. 範例
3.1 元件設定
建立一張普通報表,右擊任意儲存格,選擇元件設定,選擇元件為日期元件,格式為 yyyy-MM-dd。如下:
3.2 屬性設定
再右擊此儲存格,選擇形態>公式形態,輸入公式:REPLACE(NUMTO(YEAR($$$), true), "零", "〇") "年" NUMTO(MONTH($$$), false) "月" NUMTO(DAY($$$), false) "日"
注:REPLACE(NUMTO(YEAR($$$),true),"零","〇"),表示將其中匯出的中文的零更換為特殊字元 〇。
注:REPLACE 函式的具體使用,可參見正文函式。
4. 儲存預覽
儲存範本後,選擇填報預覽。
在日期元件中選擇好日期後,點選其他處,顯示效果如上圖所示。
注:有些日期的中文形式還想含有星期,公式如下所示。
範例:
【REPLACE(NUMTO(YEAR(today()),true),"零","〇") "年" format(today(),'MMMMM') NUMTO(DAY(today()),false) "日" format(today(),'EEEEE')】傳回值為【二O一八年二月十八日星期天】
5. 範本下載
點選下載範本:將日期型轉化為中文形式.cpt