Oracle NetSuite高级PDF模板是否具有“分组依据”和“求和”功能?

xsuvu9jc  于 2022-11-03  发布在  Oracle
关注(0)|答案(2)|浏览(227)

目前,我的自定义事务处理表单中有一个值/属性表。我想编写一个高级PDF模板,因此当我将表单打印为PDF时,一些值将分组到不同的部分。
例如,我的表单有四个属性,分别称为Store、Product ID、Prices和NumOfSales,如下所示。

  1. AA、123、2.89、10
  2. AA、123、2.89、12
  3. BB、123、1.99、29
  4. BB、124、4.00、9
    我想写一个先进的pdf模板,使打印的结果看起来像下面。
  5. AA、123、2.89、22
  6. BB、123、1.99、29
    124、4.00、9
    我想知道高级PDF模板- Freemaker是否有group_by()和sum()函数,或者我是否需要使用SuiteScript来实现这一点。如果我需要使用SuiteScript,如何将高级PDF模板和脚本结合在一起。谢谢您的帮助。
dwbf0jvd

dwbf0jvd1#

完整的Freemarker文档可通过here获得。
没有内置的函数,如group_by()sum(),尽管可以使用<#list>指令等将一些东西组合在一起,但在JavaScript中使用lodash这样的库会更容易。
有关如何组合SuiteScript和高级PDF/HTML模板的详细信息,请参阅帮助部分的主题Using SuiteScript to Apply Advanced Templates to Non-Transaction Records,如果您使用的是SS2.0,请参阅N/render模块。

hkmswyz6

hkmswyz62#

如果你能在将数据传递给freemarker之前进行处理/分组,那你就更好了。但是,如果你要做一些像扩展标准交易表单这样的事情,那就不是一个简单的选择。
您可以使用序列运算模拟分组。(请参阅http://freemarker.org/docs/ref_builtins_sequence.html
然后道:

<#assign seen_style = []>
<#list record.item?sort_by('custcol_style') as lineitem>
    <#assign lineStyle = lineitem.custcol_style>
    <#if seen_style?seq_contains(lineStyle)>
    <#else>
        <#assign seen_style = seen_style + [lineStyle]>
        <#assign styleTotal = 0>
        <#list record.item?sort_by('custcol_size') as styleItem>
           <#if lineStyle == styleItem.custcol_style>
              <#assign styleTotal = styleTotal + styleItem.quantity>
          </if>
        </#list>
       <div>${lineStyle} has ${styleTotal}</div>
   </#if>
</#list>

相关问题