最新历史版本 :本地化公式集合 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

设计器版本插件版本功能变动
11.0V1.0-
V1.2新增 TODATEPRO 函数,可传回当前日期对应的公历日期
V1.3部分适配多语言
V1.4新增泰语货币转换公式、节假日公式

1.2 应用场景

FineReport 目前默认的函数无法很好地满足海外各区域地实际使用场景,为了让产品国际化实例更加全面、完善,新增本土化公式集合。效果如下图所示:

2. 插件介绍编辑

2.1 插件安装

点击下载插件:本地化公式集合

设计器插件安装方法参照:设计器插件管理

服务器安装插件方法参照:服务器插件管理

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_dateend_date[holidays])

参数

说明

start_date

开始日期

end_date

结束日期

holidays

选填,自定义的休息日

  • 如果周六和周日为休息日,则 [holidays] 为 [6,7]

  • 如果仅周日为休息日,则 [holidays] 为 [7]

  • 支持自定义休息日,例如 [2014-01-01, 2014-01-02]

  • 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

选填,自定义的休息日

  • 如果周六和周日为休息日,则 [holidays] 为 [6,7]

  • 如果仅周日为休息日,则 [holidays] 为 [7]

  • 支持自定义休息日,例如 [2014-01-01, 2014-01-02]

  • 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