1. 概述
1.1 版本
伺服器版本 | 插件版本 | 功能變動 |
---|---|---|
11.0 | V1.0 | - |
V1.2 | 新增TODATEPRO函式,可傳回當前日期對應的公曆日期。 | |
V1.3 | 部分適配多語言。 | |
V1.4 | 新增節假日函式、泰國貨幣函式。 |
1.2 功能簡介
FineReport目前預設的函式無法很好地滿足海外各區域的實際使用場景,為了讓產品國際化實例更加全面、完善,新增本土化函式集合。效果如下图所示:
2. 插件安裝
3. 函式說明
3.1-3.4節函式需V1.2及以上版本插件,3.5節及之後的函式需V1.4及以上版本插件。
3.1 ZHMONEY
實現 CNMONEY(傳回金額大寫)功能的同時,可以指定顯示為簡體或繁體。具體說明如下表所示。
函式名稱 | |
---|---|
ZHMONEY(number, unit, locale) | |
參數 | 說明 |
number | 必填,同CNMONEY中的number。 需要做轉換的數字,內容型別必須為數值型。 |
unit | 選填,同CNMONEY中的unit。 單位 "s","b","q","w","sw","bw","qw","y","sy","by","qy","wy"分別代表“拾”,“佰”,“仟”,“萬”,“拾萬”,“佰萬”,“仟萬”,“億”,“拾億”,“佰億”,“仟億”,“萬億”。 注:單位(unit)可以為空,如果為空,則直接將 number 轉換為人民幣大寫,否則先將 number 與單位的進位制相乘,然後再將相乘的結果轉換為人民幣大寫。 |
locale | 選填,locale 表示語種。 如:“zh”表示“簡體”, “zh_TW”表示“繁體”。 注:這個函式僅支援“zh”和“zh_TW”,locale 可以為空,如果為空:
|
傳回值 | |
若 locale 為 zh_TW,則傳回繁體的大寫數字。 譬如: ZHMONEY(1234567890000.31) → 壹万贰仟叁佰肆拾伍亿陆仟柒佰捌拾玖万圆叁角壹分 ZHMONEY(3.4567,"wy", "zh_TW") → 叁兆肆仟伍佰陸拾柒億圓整 |
3.2 ZHLUNAR
實現 LUNAR(傳回當前日期對應的陰曆時間),可以指定顯示為簡體或繁體。具體說明如下表所示。
函式名稱 | ||
---|---|---|
ZHLUNAR(year, month, day, locale) | ||
參數 | 說明 | |
year | 必填,同 LUNAR 中的 year。 年。 | |
month | 必填,同 LUNAR 中的 month。 月。 | |
day | 必填,同 LUNAR 中的 day。 日。 | |
locale | 選填,locale 表示語種。 如:“zh”表示“簡體”, “zh_TW”表示“繁體”。 注:這個函式僅支援“zh”和“zh_TW”,locale 可以為空,如果為空:
| |
傳回值 | ||
若 locale 為 zh_TW,則傳回繁體的陰曆日期,其他情況都傳回簡體的陰曆日期。 譬如: ZHLUNAR(2020, 6, 4) → 庚子年闰四月十三 ZHLUNAR(2020, 6, 4, "zh_TW") → 庚子年閏四月十三 |
3.3 DATEFORMAT
DATAFORMAT函式可以將 date 型別按照模式、區域、曆法三個參數轉換為 String。具體說明如下表所示。
函式名稱 | ||
---|---|---|
DATEFORMAT(date, pattern, locale, chronology) | ||
參數 | 說明 | |
date | 必填,date 型別的參數,可以透過 FR 中的 DATE 和 TIME 函式獲取。 | |
pattern | 必填,用於指定日期格式化後的樣式。 譬如:GGGGYYYY-MM-dd, EEEE, hh:mm:ssa 参考:https://help.gooddata.com/cloudconnect/manual/date-and-time-format.html | |
locale | 選填,locale 表示語種。 如:“zh”表示“簡體”, “zh_TW”表示“繁體”,“en_US”表示“英語”,“ja_JP”表示“日語”。 注:locale 可以為空,如果為空,顯示平台語言對應的西元日期,此時chronology的設定不生效。 | |
chronology | 選填,指定曆法。 "j"表示日本年號,"m"表示臺灣民國曆,"t"表示泰國佛曆。 注:chronology 可以為空,如果為空,預設顯示西元日期。 | |
傳回值 | ||
DATEFORMAT(TODAY(), "YYYY-MM-dd HH:mm:ss") → 2021-11-08 00:00:00 DATEFORMAT(TODAY(), "YYYY-MM-dd, EEEE", "zh_TW") → 2021-11-08, 星期一 DATEFORMAT(TODAY(), "YYYY-MM-dd, EEEE", "en_US") → 2021-11-08, Monday DATEFORMAT(TODAY(), "GGGGyy-MM-dd, EEEE", "ja_JP", "j") → 令和03-11-08, 月曜日 注:需要保證JDK版本为Oracle JDK 7u221, 8u211, 11.0.3或OpenJDK 7u221, 8u212-b03, 11.0.3+7等版本之後才會正常顯示“令和”年號。 DATEFORMAT(TODAY(), "GGyyy-MM-dd, EEEE", "zh_TW", "m") → 民國110-11-08, 星期一 |
3.4 TODATEPRO
TODATEPRO函式可以將民國曆、日本年號及泰國佛曆的日期轉換為yyyy-MM-dd形式、date格式的公曆。具體說明如下表所示。
函式名稱 | ||
---|---|---|
TODATEPRO(date, pattern, chronology, locale) | ||
參數 | 說明 | |
date | 需要被轉換的日期物件,需要為字串格式 | |
pattern | 原日期物件的日期格式。 | |
chronology | 選填,指定曆法。 "j"表示日本年號,"m"表示臺灣民國曆,"t"表示泰國佛曆。 | |
locale | 選填,locale 表示語種。 如:“zh”表示“簡體”, “zh_TW”表示“繁體”,“en_US”表示“英語”,“ja_JP”表示“日語”。 注:locale 可以為空,如果為空,預設取系統語言作為參數值。 | |
傳回值 | ||
TODATEPRO("民國111-07-01", "GGyyy-MM-dd", "m", "zh_TW") => 2022-07-01 TODATEPRO("平成21年12月01日, 火曜日", "Gy年MM月dd日, EEEE", "j", "ja_JP") => 2009-12-01 TODATEPRO("2566/09/21", "yyyy/MM/dd", "t") => 2023-09-21 |
3.5 BAHTTEXT、BAHTONLY
BAHTTEXT、BAHTONLY可將數字轉換為泰文貨幣。
函式名稱 | BAHTTEXT(number) | BAHTONLY(number) |
---|---|---|
number參數說明 | 需要做轉換的數字,內容型別必須為數值型。必填。 | |
區別 | 將數字轉換為泰語文字並新增後綴“泰銖”。 | 將數字轉換為泰語文字並新增後綴“泰銖”,但只處理整數部分(忽略小數)。 |
範例 | 1)將整數轉換為泰文(在末尾新增 "ถ้วน") BAHTTEXT(1234567)=หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดบาทถ้วน 2)將小數轉換為泰文(整數部分末尾加上 "บาท", 小數部分末尾加上 "สตางค์") =BAHTTEXT(1234567.89)=หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดบาทแปดสิบเก้าสตางค์ | 忽略小數,將整數部分轉換成泰文(在末尾新增"บาทถ้วน") 1)BAHTONLY(1234567)=หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดบาทถ้วน 2)BAHTONLY(1234567.89)=หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดบาทถ้วน |
注:若設計器內泰文顯示異常,請參考 泰文亂碼 進行配置。
3.6 節假日函式
3.6.1 NETWORKDAYS
NETWORKDAYS函式可以用於計算兩個日期之間的工作日天數。
函式名稱 | |
---|---|
NETWORKDAYS(start_date, end_date, [holidays]) | |
參數 | 說明 |
start_date | 開始日期 |
end_date | 結束日期 |
holidays(可選) | 自訂的休息日
|
傳回值 | |
1)2025-01-12至2025-01-19,週日為休息日 NETWORKDAYS("2025-01-12","2025-01-19",[7])=6 2)2025-01-12至2025-01-19,週六週日為休息日 NETWORKDAYS("2025-01-12","2025-01-19",[6,7])=5 3)2025-01-12至2025-01-19,自訂休息日(例如:週六、週日、2025-01-13均為休息日) NETWORKDAYS("2025-01-12","2025-01-19",["2025-01-13",6,7])=4 |
3.6.2 WORKDAY
WORKDAY函式可用於獲取開始日期後N個工作日後的工作日日期。
函式名稱 | |
---|---|
WORKDAY(start_date, days, [holidays]) | |
參數 | 說明 |
start_date | 開始日期 |
days | 開始日期後的工作日天數,為正值將生成未來日期,為負值生成過去日期 |
holidays(可選) | 自訂的休息日
|
傳回值 | |
1)週日為休息日 WORKDAY("2025-01-12",7,[7])=2025-01-20 2)週六週日為休息日 WORKDAY("2025-01-12",7,[6,7])=2025-01-21 3)自訂休息日(例如:週六、週日、2025-01-13均為休息日) WORKDAY("2025-01-12",7,["2025-01-13",6,7])=2025-01-22 |
3.6.3 HOLIDAYS
HOLIDAYS函式可用於傳回開始日期到結束日期期間的休息日陣列。
函式名稱 | |
---|---|
HOLIDAYS(start_date, end_date, locale) | |
參數 | 說明 |
start_date | 開始日期 |
end_date | 結束日期 |
locale | 地區語言,目前僅支援zh_CN(中國大陸)和zh_TW(中國台灣),為空時預設取工程語言(僅針對zh_CN和zh_TW) |
傳回值 | |
1)中國大陸:2025-04-04至2025-04-06為清明節假期,2024-04-13和2024-04-14為週末 HOLIDAYS("2025-04-01","2025-04-15","zh_CN")=2025-04-04,2025-04-05,2025-04-06,2025-04-12,2025-04-13 2)中國台灣:2025-04-03至2025-04-06為清明節假期,2024-04-13和2024-04-14為週末 HOLIDAYS("2025-04-01","2025-04-15","zh_TW")=2025-04-03,2025-04-04,2025-04-05,2025-04-06,2025-04-12,2025-04-13 |
3.6.4 ISHOLIDAY
ISHOLIDAY函式可用於傳回傳參的日期是否是法定節假日。
函式名稱 | |
---|---|
ISHOLIDAY(date,locale) | |
參數 | 說明 |
date | 需進行判斷的日期 |
locale | 地區語言,目前僅支援zh_CN(中國大陸)和zh_TW(中國台灣),為空時預設取工程語言(僅針對zh_CN和zh_TW) |
傳回值 | |
1)中國大陸:2025-04-03為工作日 ISHOLIDAY("2025-04-03","zh_CN")=false 2)中國台灣:2025-04-03為清明節假期 ISHOLIDAY("2025-04-03","zh_TW")=true |
4. 範本下載
點選下載範本:本土化函式集合範例 (V1.4).cpt