一、概述
1.1 版本
設計器版本 | jar包版本 | 插件版本 |
---|---|---|
10.0 | 2019-07-31 | V1.0 |
11.0 | 2022-03-28 | V1.0 |
1.2 应用场景
FineReport目前預設的函式無法很好地滿足海外各區域的實際使用場景,為了讓產品國際化實例更加全面、完善,新增本土化函式集合。
在本地函式優化集合 V1.2 中,針對已有公式 CNMONEY(傳回金額大寫)、LUNAR(傳回當前日期對應的陰曆時間)、FORMAT(傳回object的format格式)、TODATEPRO(傳回當前日期對應的公曆時間)做了優化和功能擴展,應對不同地區的場景。效果如下图所示:
二、插件介绍
三、函数说明
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"分别代表“拾”,“佰”,“仟”,“万”,“拾万”,“佰万”,“仟万”,“亿”,“拾亿”,“佰亿”,“仟亿”,“万亿”。 |
locale | 选填,字符串类型的locale 如:zh, zh_TW |
返回值 | |
若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 | |
返回值 | ||
若locale为zh_TW,则返回繁体的阴历日期,其他情况都返回简体的阴历日期。 E.g. 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 | 必填,用于指定日期格式化后的样式 E.g. 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 | |
chronology | 选填,指定历法 "j"表示日本年号,"m"表示台湾民国历,"t"表示泰国佛历 | |
返回值 | ||
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 | ||
locale | 選填,locale 表示語種。 如:“zh”表示“簡體”, “zh_TW”表示“繁體”,“en_US”表示“英語”,“ja_JP”表示“日語”。 注:locale 可以為空,如果為空,預設顯示簡體的西元日期。 | |
chronology | 選填,指定曆法。 "j"表示日本年號,"m"表示臺灣民國曆,"t"表示泰國佛曆。 注:chronology 可以為空,如果為空,預設顯示西元日期。 | |
傳回值 | ||
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 |
四、示例
4.1 报表设计
函式 | 示例 |
---|---|
=ZHMONEY(3.45,"w","zh_TW") | |
=ZHLUNAR(2020, 6, 4, "zh_TW") | |
=DATEFORMAT(TODAY(),"YYYY-MM-dd EEEE") | |
=DATEFORMAT(TODAY(),"GGyyy-MM-dd, EEEE","zh_TW","m") | |
=DATEFORMAT(TODAY(),"GGGGyy-MM-dd, EEEE","ja_JP","j") | |
=DATEFORMAT(TODAY(),"YYYY-MM-dd, EEEE","en_US") | |
=DATEFORMAT(TODAY(),"YYYY-MM-dd, EEEE","en_US","t") | |
=TODATEPRO("民國112-11-15", "GGyyy-MM-dd", "m", "zh_TW") | |
=TODATEPRO("平成35年11月15日, 水曜日", "Gy年MM月dd日, EEEE", "j", "ja_JP") | |
=TODATEPRO("2566/11/15", "yyyy/MM/dd", "t") |
4.2 效果预览
点击保存,预览效果如下图所示: