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 | 原日期物件的日期格式 | |
locale | 选填,locale表示语种 如:“zh”表示“简体”,“zh_TW”表示“繁体”,“en_US”表示“英语”,“ja_JP”表示“日语” 注:locale 可以为空,如果为空,默认取系统语言作为参数值 | |
chronology | 选填,指定历法。 "j"表示日本年号,"m"表示台湾民国历,"t"表示泰国佛历 | |
返回值 | ||
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 为清明节假期,2025-04-12 和 2025-04-13 为周末 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 为清明节假期,2025-04-12 和 2025-04-13 为周末 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. 模板下载
点击下载模板:本地化公式集合.cpt