【问题标题】:Scripting Issue with Netsuite Advanced PDF/HTML TemplateNetsuite 高级 PDF/HTML 模板的脚本问题
【发布时间】:2017-02-19 16:27:34
【问题描述】:

我需要有关 Netsuite 的 Freemarker 格式的帮助(高级 PDF/HTML 模板

为此记录提取了 3 个重要的数据值;

${item.quantity}     *Order Value*
${item.fulfilled}    *Fulfilled Value*
${item.backordered}  *Backorder Value*

基本上,我试图完成的是,只显示“延期交货”的项目

但是,这项任务似乎比我的时间和技能要困难得多。

所以,我的 B 计划正在为延期交货使用单独的模板(到目前为止效果很好!)

问题是,如果我遇到一个 NON-INVENTORY 项目,Netsuite 不会计算 ${item.backordered} 的任何数量

所以

有什么方法可以通过模板中的脚本“计算”延期交货值?
我可以使用算术函数(如下所示)吗?

item.quantity - item.fulfilled = item.backordered

这是围绕此查询的文本的基本格式;

        <#if record.item?has_content>
<table><#list record.item as item><#if item_index==0>
    <thead>
        <tr> 
        <th> QTY </th>
        </tr>
    </thead>
    </#if>
        <tr> 
        <td> ${item.backordered} </td>
        </tr>
</#list></table>
</#if>

我对 HTML 和 CSS 有基本的了解,但脚本对我来说还是很陌生,所以请只提出建设性的批评。

【问题讨论】:

  • 你在打印什么文件?
  • 嗨@bknights 我正在尝试打印“拣货单”

标签: html templates pdf freemarker netsuite


【解决方案1】:

尝试将以下 Freemarker 辅助函数添加到您的模板中:

<#function toNumber val>
    <#if val?has_content && val?length gt 0 >
        <#return val?html?replace('[^0-9.]','','r')?number >
    <#else>
        <#return 0 >
    </#if>
</#function>

这将确保所有字段都被正确解析为数字,并且您应该能够对字段执行数学计算而不会出错。

所以你可以替换:

<td> ${item.backordered} </td>

与:

<td> ${toNumber(item.quantity) - toNumber(item.fulfilled)} </td>

【讨论】:

  • 正是我需要的,谢谢@michoel!完美运行
  • 但是我刚刚注意到,当项目恰好完成一半时
  • 但是,我刚刚注意到,当商品恰好完成了一半(即订购了 10,完成了 5,延期交货 5)时,该函数返回订单数量 (10) @michoel
  • @SimonG 这很奇怪。对于故障排除,您可以尝试输出以下表达式以查看问题所在:${item.quantity}${toNumber(item.quantity)}${item.fulfilled}${toNumber(item.fulfilled)}
【解决方案2】:

请参阅suitescript set custom column value netsuite 的答案,了解对订单项值使用算术运算的示例。

【讨论】:

  • 感谢@bknights 我尝试将该示例代码插入到我的模板中,只是为了看看它是如何工作的。但是它一直给我错误,所以我将不得不花一些时间来重新构建它,以使其适合我的需要。
【解决方案3】:

所以我认为根本问题在于 NetSuite 正在使用的 Java JAR。它似乎有一个空指针错误,带有空的 int/number 类型值。

我建议添加一个 UserEvent 脚本以将空值更改为零。这将防止您遇到的错误。您应该能够在加载前事件中捕获 PRINT 类型。如果零值没有传递到模板中,您可以添加一个未存储的自定义列字段并将值推送到那里。

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 2019-07-18
    • 2014-05-08
    • 2017-03-08
    • 2023-01-31
    • 2018-01-10
    • 2022-12-04
    • 2018-01-01
    • 2019-04-29
    相关资源
    最近更新 更多