【问题标题】:NetSuite Advanced PDF - Filter the item table list using multiselect field on recordNetSuite Advanced PDF - 使用记录中的多选字段过滤项目表列表
【发布时间】:2023-03-30 22:55:01
【问题描述】:

希望您能提供帮助。我目前正在开发一个高级 PDF 模板,该模板根据在销售订单的多选字段中选择的值过滤项目表。

这是我的尝试,不断抛出意外错误:

参考代码中的黄色高亮部分。删除这些后一切正常。

如果我理解正确,多选值返回一个数组;因此理论上我应该能够使用“#LIST”指令。

为了简要解释代码,我试图:

  • 循环在多选字段中找到的每个值。
  • 将此值与第二个循环中的每个列字段进行比较。
  • 如果两个值都匹配,则打印该行,否则跳过。

非常感谢任何想法或建议。

非常感谢!

【问题讨论】:

  • 请始终包含异常消息!
  • 不幸的是,错误是“意外错误”!
  • 呃。如果您看不到实际的错误消息,则很难使用模板。你确定你不能从任何地方得到它吗?就像您可以访问日志一样?无论如何……一个肮脏的把戏。将您的模板放入此<#attempt>... your template here ...<#recover>FAILED:<pre>${.error}</pre></#attempt>。然后模板的输出将包含错误消息。
  • 抱歉耽搁了。不幸的是,即使使用您分享的技巧,在单击工单上的打印按钮时,我仍然会收到“意外错误”。您知道如何检查多选字段是否确实被识别为“序列”,以便可以在 指令中正确使用它吗?
  • #attempt 不起作用可能意味着模板有一些语法错误,因此甚至无法开始执行。你可以在try.freemarker.apache.org 上试试吗?测试某个东西是否是一个序列:${something?is_sequence?c}。 (或者你可能真的想要${something?is_enumerable?c}。)

标签: netsuite freemarker suitescript suitescript2.0


【解决方案1】:

想出了这个问题的答案。希望这对其他人有所帮助。

以下是我为从多选列表中过滤所做的更改:

我首先为多选字段分配了“?word_list”。这会将整个多选字段作为数组输出:[1, 2, 3, 4, 5]

然后我在 'list' 指令中使用它,最后确保序列中的每个值都是一个字符串,因此可以与另一个字符串变量进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 2021-10-14
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多