【问题标题】:Netsuite Advanced PDF/HTML reset variable's value for each page breakNetsuite Advanced PDF/HTML 为每个分页符重置变量的值
【发布时间】:2017-02-28 00:31:51
【问题描述】:

我想在Netsuite中制作一个高级的pdf/html模板,我想在模板每一页的表格底部打印项目数量的总和值。

例如:

    <table class="itemtable" style="width: 100%; margin-top: 10px;">
      <#assign sum=0/>
      <#list record.item as item>
        <#if item_index==0>
          <thead>
            <#assign sum=0/>
            <tr>
               <td>name</td>
               <td>quantity</td>
               <td>rate</td>
               <td>amount</td>
               <td>vat</td>
            </tr>
          </thead>
          <tr>
             <td style="font-size: 10px;">${item.item}</td>
             <td style="font-size: 10px;">${item.description}</td>
             <td align="right" style="font-size: 10px;">${item.quantity}</td>
             <td align="right" style="font-size: 10px;">${item.rate}</td>
             <td align="right" style="font-size: 10px;">${item.amount}</td>
             <td align="right" style="font-size: 10px;">${item.taxrate1}</td>
          </tr>
        <#assign sum = sum + item.quantity/>
      </#list>
    </table>

What I'd like to do

我想打印一个大约有 80 行的销售订单,我不知道每页可能有多少行,所以我的想法(对于红色值)是将数量的总和分配给这个标签&lt;#list record.item as item&gt;&lt;/#list&gt; 中的变量“sum”并为每个分页符重置其值,但我不知道该怎么做或者是否可能。取而代之的是绿色值(应该显示上一页的红色值)是一个不错的选择,我不知道该怎么做,有人可以帮我吗?

语言是freemarker,我必须使用宏或函数吗?

【问题讨论】:

  • 好吧,首先,您将每个表开头的 sum 变量重置为零。 &lt;#assign sum=0/&gt;。每次生成时,都会生成一个新值 0。我不知道如何在 APDF/HTML 模板中执行此操作,我只使用套件脚本来生成表单等,这可能是您选择的路线如果这是您必须拥有的功能,请接受。

标签: html pdf freemarker netsuite


【解决方案1】:

我没有尝试过,但我会从这个开始:

  • 在页脚宏定义上方声明&lt;#assign sum=0/&gt;
  • 在页脚宏中输出总和
  • 在发出后在页脚宏中重置&lt;#assign sum=0/&gt;
  • 在对任何行求和之前,请确保您的宏定义位于文件的顶部

    <#assign somma=0 /> <macro id="nlheader">...</macro> <macro id="nlfooter"> <p style="color:red; font-size:28px;">${somma}</p> <#assign somma=0/> </macro>

【讨论】:

  • &lt;/macro&gt; &lt;#assign somma=0/&gt; &lt;macro id="nlfooter"&gt; &lt;p style="color:red; font-size:28px;"&gt; ${somma} &lt;/p&gt;
  • 您需要在宏内部重置总和。并确保您在项目循环中有&lt;#assign somma = somma + item.quantity/&gt;。 (somma 不是样本中的总和)
  • 我很抱歉,但它不起作用,我完全按照你告诉我的做了(现在变量是 sum 而不是 somma):&lt;macrolist&gt;&lt;#assign sum=0/&gt;&lt;macro id="nlheader"&gt;&lt;/macro&gt;&lt;macro id="nlfooter"&gt;&lt;p style="color:red; font-size:28px;"&gt;${sum}&lt;/p&gt;&lt;#assign sum=0/&gt;other code&lt;/macro&gt;&lt;/macrolist&gt; 和循环内部:&lt;tr&gt;&lt;#assign sum = sum + item.quantity/&gt;other columns&lt;/tr&gt;。但结果总是 0
  • 抱歉,看起来页眉和页脚宏只在定义时处理。您可以在其中使用变量,但这些变量是使用创建宏时的值发出的。
  • 好的,所以用这种方式不可能做我想做的事。你能帮我么?你知道我的问题的其他解决方案吗?这对我来说非常重要。谢谢
猜你喜欢
  • 2018-12-05
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2018-10-20
  • 2023-04-04
  • 2016-10-09
  • 2018-10-30
相关资源
最近更新 更多