我的 NetSuite 高级 PDF 模板无法对交易表单数据进行分组

Posted

技术标签:

【中文标题】我的 NetSuite 高级 PDF 模板无法对交易表单数据进行分组【英文标题】:My NetSuite Advanced PDF Template Couldn't Grouping Transaction Form Data 【发布时间】:2017-10-17 09:14:02 【问题描述】:

目前,我的自定义交易表单中有一个值/属性表。我想编写一个高级 PDF 模板,所以当我将表单打印为 PDF 时,一些值被分组到不同的部分。

例如,我的表单有四个属性,分别称为 Store Name、Product ID 和 NumOfSales,如下所示。

1. AA, 123, 10
2. AA, 123, 12
3. BB, 123, 29
4. BB, 124, 9

我想写一个高级的pdf模板,打印出来的结果如下图。

1. AA, 123, 22
2. BB, 123, 38

【问题讨论】:

Does Oracle NetSuite Advanced PDF Template have "Group by" and "SUM" Functions?的可能重复 这只是您上一个问题的重复。 是的,我只是想正确清晰地显示代码。 :) 您可以在原文中编辑问题。 【参考方案1】:

groupby 不是 Netsuite 内置字段,也不是自定义交易列字段的形式。您需要使用内置字段或自定义列字段的脚本 ID 来完成这项工作,例如也许是“custcol_groupby”或“custcol5”或类似的东西。

您可以通过将 &xml=T 添加到您尝试打印的交易的查看 url 来获取该值,然后在结果页面上找到相应值的标记名。

$item.item 中对 item 的引用也应引用 lineitem 或 groupItem,例如$lineitem.item

【讨论】:

非常感谢,bknights。这有很大帮助。但是,仍然存在一个我不知道为什么的问题。最终报告将结果重复 4 次,与原始数据行数相同。我已经更新了我原来的问题。 从逻辑上讲,这部分代码应该可以工作。我没有看到循环在哪里触发。 您是否有忘记删除的外部 ,例如 <#list record.item as lineitem> 您还可以将我对另一个问题的回答标记为已接受吗?这个标题会更有帮助 是的,你是对的。由于 部分,我确实有一个外部 。我刚刚删除了 之一,并保留了外部 ,这样效果更好。但是,它仍然以不同的顺序重复了两次结果,例如:>>1。 AA, 123, 22 >>2。 AA, 123, 22 >>3。 BB, 123, 36 >>4。 BB, 123, 38 知道吗?谢谢 【参考方案2】:

是的。您可以使用排序或直接对记录进行分组。在我的情况下,要求是如果项目名称相同,则添加数量并仅在单行上打印相同的项目名称

    <#if record.item?has_content>

    <table class="itemtable" style="width: 100%; margin-top: 10px;"><!-- start items -->
    //Declare Array
      <#assign item_name = []>
    //Used Sorting by Item
      
<#list record.item?sort_by('item') as item><#if item_index==0>

    <thead>
     <tr>
        <th colspan="12" style="height: 2px;" border="1px solid #A9A9A9" color="white" background-color="#A9A9A9">$item.item@label?replace('NetSuite','')</th>
        <th align="center" colspan="3" style="height: 2px;" border="1px solid #A9A9A9" color="white" background-color="#A9A9A9">$item.quantity@label</th>
        <th align="right" colspan="4" style="height: 2px;" border="1px solid #A9A9A9" color="white" background-color="#A9A9A9">$item.rate@label?replace('Rate','Tax Rate')</th>
        </tr>
    </thead>
    //Here main logic -first Group
   
 </#if>
      <#assign group = item.item>
       <#assign lineid = item.line>
        <#assign qty = item.quantity>
    //second Group for comparision
          <#list record.item as item2>
         <#assign group1 = item2.item>
        <#assign lineqty = item2.quantity>
    <#assign lineid2 = item2.line>
                   
 //group  comaprision and if lindid not same 
                    <#if group==group1 && lineid != lineid2>
                    //sum of quantity   
                       <#assign qty = qty+item2.quantity>
                    </#if>
                </#list>
         
 //if not contains same item then processed further
     
<#if !( item_name?seq_contains(item.item))>
     
 <tr>
        <#assign item_name = item_name + [item.item]>
        
<td colspan="12" style="height: 40px;"><span class="itemname">$item.custcol_so_displayname</span><br />$item.description</td>
 <td align="center" colspan="3" line- style="height: 40px;">$qty</td>
  <td align="right" colspan="4" style="height: 40px;">$item.taxrate1</td>
 </tr>
       </#if>
        </#list><!-- end items --></table>

    <hr /></#if>


<!-- end snippet -->

【讨论】:

请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。

以上是关于我的 NetSuite 高级 PDF 模板无法对交易表单数据进行分组的主要内容,如果未能解决你的问题,请参考以下文章

Netsuite 高级 PDF/HTML 模板的脚本问题

使用 Netsuite 高级 PDF/HTML 模板进行条件打印(零值)

NetSuite 高级 PDF 模板 - Freemarker 语法

NetSuite:如何使用高级 PDF/HTML 模板在分组发票中引用自定义字段

通过 freemarker/高级 pdf 模板打印记录时,NetSuite 是不是会加载自定义子列表?

如何在 NetSuite 的高级 PDF 模板中插入自定义字段?