如何在NetSuite高级PDF模板中以阿拉伯数字打印日期和商品价格
NetSuite高级PDF模板运行时格式转换操作方法
NetSuite高级PDF/HTML模板基于FreeMarker渲染引擎,你可以通过内置的格式处理函数,在运行时直接完成日期、价格的阿拉伯数字格式转换,无需额外脚本:
一、前置配置(可选,适配全局格式)
如果需要整个模板统一用阿拉伯数字格式渲染,可在模板开头加入全局配置:
<#setting locale="zh_CN"> <#setting number_format=",##0.00">
locale参数指定区域为中国,默认使用阿拉伯数字渲染数值number_format参数指定全局数字默认保留2位小数、展示千分位分隔符
二、商品价格格式转换
调用FreeMarker的string数字格式化函数,按需自定义输出格式:
- 保留2位小数、带千分位:
${item.amount?string(",##0.00")} - 保留2位小数、不带千分位:
${item.amount?string("#0.00")} - 整数格式展示:
${item.quantity?string("0")}
三、日期格式转换
调用FreeMarker的日期格式化函数,输出全阿拉伯数字组成的日期格式:
- 短横线分隔格式:
${record.trandate?string("yyyy-MM-dd")},输出示例:2024-06-15 - 中文标识格式:
${record.trandate?string("yyyy年MM月dd日")},输出示例:2024年06月15日 - 时分秒完整格式:
${record.createddate?string("yyyy-MM-dd HH:mm:ss")},输出示例:2024-06-15 14:30:22
完整示例片段
<?xml version="1.0"?> <!DOCTYPE pdf PUBLIC "-//big.faceless.org//report//report-1.1.dtd"> <pdf> <!-- 全局格式配置 --> <#setting locale="zh_CN"> <#setting number_format = ",##0.00"> <body> <div>开票日期:${record.trandate?string("yyyy年MM月dd日")}</div> <table> <tr> <th>商品名称</th> <th>数量</th> <th>单价</th> <th>金额</th> </tr> <#list record.item as line> <tr> <td>${line.item}</td> <td>${line.quantity?string("0")}</td> <td>${line.rate}</td> <td>${line.amount}</td> </tr> </#list> <tr> <td colspan="3">合计总金额</td> <td>${record.total}</td> </tr> </table> </body> </pdf>
配置完成后保存模板,预览或打印发票时系统会自动在运行时完成格式转换,输出符合要求的阿拉伯数字格式内容。
内容的提问来源于stack exchange,提问作者Muddassir Uzair
相关产品推荐
相关产品推荐

