NetSuite高级PDF模板中按币种汇总发票金额需求
NetSuite高级PDF模板按发票币种汇总金额实现方案
核心实现思路
利用NetSuite高级PDF模板支持的Freemarker模板语法,通过哈希表分组存储各币种的金额总和,遍历发票列表完成累加后,再输出分组汇总结果。
具体代码实现
- 初始化币种分组变量
在模板合适位置(建议在发票列表遍历前)添加以下代码,创建用于存储币种与对应总金额的哈希表:
<#assign currencyGroups = {}>
- 遍历发票并累加金额
遍历发票记录时,提取每个发票的币种,更新对应币种的累计金额:
<#list record.invoices as inv> <#-- 获取发票币种对象 --> <#assign curr = inv.currency> <#-- 读取当前币种已累计金额,首次出现则默认为0 --> <#assign currentTotal = currencyGroups[curr]!0> <#-- 更新累计金额(这里的inv.amount需替换为实际发票金额字段ID,比如inv.total) --> <#assign currencyGroups[curr] = currentTotal + inv.amount> </#list>
注意:请根据你的NetSuite字段配置,将inv.amount替换为实际存储发票金额的字段(如inv.total或自定义字段ID)
- 输出币种汇总结果
在需要展示汇总的位置,遍历哈希表输出各币种及对应总金额:
<#-- 币种汇总标题 --> ## 按币种汇总金额 <#list currencyGroups?keys as curr> - **${curr.name}**: ${currencyGroups[curr]?string.currency} </#list>
?string.currency会自动根据币种格式化为对应的金额显示样式(如美元带$符号,欧元带€符号)。
额外注意事项
- 确保模板有权限访问发票的
currency字段和金额字段,若字段未在模板中启用,需先在模板设置里添加对应字段的权限。 - 如果需要汇总的是不含税金额或其他自定义金额,只需修改累加时的字段即可。
内容的提问来源于stack exchange,提问作者Addy
相关产品推荐
相关产品推荐

