
NocoBase 模板打印货币格式化器 formatC 与 convCurr 完整指南【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase在 NocoBase 模板打印插件中当业务数据涉及金额如合同总价、发票金额、报价单款项时常常需要将原始数字转换为带货币符号、货币名称的文本甚至在不同币种之间换算。本文以 货币格式化 文档为骨架系统讲解formatC与convCurr两个货币格式化器的语法、参数、示例输出与底层汇率机制并结合仓库中的模板打印文档与业务场景给出可直接落地的模板写法。读完本文你将能够在 Word / Excel / PowerPoint 模板中输出“带符号或货币名称的金额”以及实现“多币种金额自动换算”。一、背景模板打印与格式化器语法NocoBase 的模板打印插件商业插件action-template-print支持使用 Word、Excel、PowerPoint 编辑模板文件.docx、.xlsx、.pptx在模板中设置占位符和逻辑结构动态生成预定格式的文件及 PDF广泛应用于报价单、发票、合同等业务文档见 模板打印介绍。模板中的格式化器通过冒号:应用于数据可以链式调用每个格式化器的输出会作为下一个的输入。其基本调用形式为{d.属性:formatter1:formatter2(...)}关于格式化器的常量参数如:prepend(myPrefix)、动态参数以d.、c.或.开头的 JSON 路径以及链式调用细节可参见 格式化工具概览 与 基础用法。货币格式化正是这一格式化器体系中的一个专门类别包含两个核心格式化器格式化器作用典型场景formatC格式化货币数字输出带符号或货币名称的文本合同金额、发票金额展示convCurr将数字从一种货币转换为另一种货币多币种换算、汇率折算二、formatC货币数字格式化2.1 语法与参数{值:formatC(precisionOrFormat, targetCurrency)}格式化货币数字可指定小数位数或特定输出格式。参数说明如下参数是否可选类型说明precisionOrFormat可选数字或字符串既可以是数字指定小数位数也可以是特定格式标识targetCurrency可选字符串目标货币代码大写如USD、EUR会覆盖全局设置其中precisionOrFormat支持的取值与含义整数改变默认小数精度例如传0表示不保留小数、传2表示保留两位小数M仅输出主要货币名称如dollar/dollarsL输出数字并附带货币符号默认如$LL输出数字并附带主要货币名称如dollars。2.2 示例与输出解读文档给出的标准示例1000.456:formatC() // 输出 $2,000.91 1000.456:formatC(M) // 输出 dollars 1:formatC(M) // 输出 dollar 1000:formatC(L) // 输出 $2,000.00 1000:formatC(LL) // 输出 2,000.00 dollars对这几个输出可以注意到三个关键行为默认格式为L符号模式formatC()与formatC(L)均输出带货币符号的金额且默认保留两位小数2,000.00。格式化前会先做货币换算输入值1000.456输出为$2,000.911000输出为$2,000.00数字恰好翻倍。结合下文convCurr的示例1000:convCurr()输出2000可以推断在示例运行时的汇率配置下源货币到目标货币的换算倍率约为 2formatC在格式化之前会先应用与convCurr相同的货币转换逻辑再按目标货币进行格式化。货币名称支持单复数M模式下1输出dollar单数而1000.456输出dollars复数LL模式则在数字后附带货币名称2,000.00 dollars。2.3 输出结果的影响因素文档明确指出“输出结果依据 API 选项及汇率设置”。也就是说formatC的最终输出取决于两层配置汇率相关选项通过 API 选项传入或全局设置详见下文第四节货币代码不传targetCurrency时使用全局目标货币设置传入时如formatC(2, USD)则以该代码覆盖全局设置。三、convCurr货币转换3.1 语法与参数{值:convCurr(target, source)}将数字从一种货币转换为另一种货币。汇率可通过 API 选项传入或全局设置若不指定任何参数则自动从options.currencySource转换到options.currencyTarget。参数是否可选类型说明target可选字符串目标货币代码默认等于options.currencyTargetsource可选字符串源货币代码默认等于options.currencySource3.2 示例与输出解读10:convCurr() // 输出 20 1000:convCurr() // 输出 2000 1000:convCurr(EUR) // 输出 1000 1000:convCurr(USD) // 输出 2000 1000:convCurr(USD, USD) // 输出 1000从这四个示例可以推断出默认汇率场景示例配置下默认从currencySource换算到currencyTarget换算倍率约为 2因此10 → 20、1000 → 2000当显式指定target且该货币恰好等于“当前值所在的货币”时不发生换算1000:convCurr(EUR)输出1000当source与target相同convCurr(USD, USD)同样不发生换算原值输出。convCurr的输出为转换后的纯货币数值不带符号、不带千位分隔符。因此在实际模板中它通常与formatC或 数字格式化器如formatN、round链式配合先换算、再格式化例如{d.total_amount:convCurr(USD):formatC(2, USD)}四、汇率来源API 选项与全局设置货币格式化的核心依赖是汇率配置。根据文档汇率有两种配置途径API 选项传入在调用模板打印接口时将汇率相关选项随请求传入对应options.currencySource、options.currencyTarget等。全局设置在插件或系统的全局配置中预设默认的源货币与目标货币模板中的formatC()、convCurr()在不传参时自动使用这些全局值。在 NocoBase 中模板打印支持通过 HTTP API 直接触发文档渲染与下载详见 模板打印 HTTP API调用方对当前业务资源发起templatePrint动作。当模板中出现formatC/convCurr且未显式传币种代码时最终渲染结果就取决于该次请求携带的选项或全局设置因此“输出结果依据 API 选项及汇率设置”这一结论也适用于通过 HTTP API 触发的批量打印场景。五、实战报价单 / 合同中的多币种金额仓库中的 模板打印场景示例 以一个购销合同Purchase/Sale Contract为例其中包含如下与金额相关的字段字段显示名字段名字段类型Total Amounttotal_amountNumberCurrency Codescurrency_codesSingle selectDeposit Ratio (%)deposit_ratioPercent利用货币格式化器可以在 Word 模板中直接输出带币种符号的合同总价合同总价{d.total_amount:formatC(2, d.currency_codes)}这里使用了格式化器的动态参数能力d.currency_codes以d.开头表示从根数据中取该字段值如USD作为targetCurrency传入实现“金额数字随记录中的币种字段动态格式化”。若合同同时需要展示两种币种的金额则可以先换算再格式化欧元金额{d.total_amount:convCurr(EUR):formatC(2, EUR)} 美元金额{d.total_amount:formatC(2, USD)}此外格式化器支持链式调用可以与其他数字类格式化器组合使用。例如先round四舍五入再格式化货币{d.total_amount:round(2):formatC()}如果业务上不需要汇率换算、只需要在数字后手动拼接货币符号也可以参考场景文档中的做法使用数字格式化器formatN加文本拼接{d.amount:formatN(2, true)} 元 // 输出1,234.56 元六、使用注意事项货币代码必须大写targetCurrency/source/target参数使用如USD、EUR的大写货币代码动态传入时如d.currency_codes请确保数据本身为大写。默认精度为两位小数formatC()与formatC(L)默认输出两位小数需要整数金额可传入整数参数如formatC(0)。结果依赖汇率配置formatC、convCurr的输出与 API 选项及全局汇率设置强相关在模板测试前应先确认目标货币与汇率已正确配置否则可能出现金额被意外换算的情况。convCurr只做数值换算它返回的是纯数值不包含符号与分隔符最终展示时建议再套一层formatC或formatN。货币名称存在单复数M/LL模式会根据数值自动输出dollar或dollars等单复数形式适合英文合同文本。模板打印功能需先激活formatC/convCurr必须在模板打印插件激活后才可用激活与模板配置方式见 模板打印配置 与 安装说明。七、相关文档格式化工具概览冒号语法、链式调用、常量与动态参数数字格式化器 formatN / round / add / sub / mul / div / mod 等日期格式化器 formatD模板打印基础用法模板打印 HTTP APItemplatePrint 动作与请求参数模板打印场景示例合同、发票等业务模板【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考