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

Posted

技术标签:

【中文标题】使用 Netsuite 高级 PDF/HTML 模板进行条件打印(零值)【英文标题】:Conditional Printing with Netsuite Advanced PDF/HTML Template (Zero Value) 【发布时间】:2020-10-23 08:18:24 【问题描述】:

我继承了一个自定义的 NetSuite 高级 PDF/html 模板,这是我们大多数发票的主要默认设置。

我们希望在价值为 0.00 美元时打印费用行。在线搜索和 Stack Overflow 都没有提供明确的方向。看来#if/#else 可能是解决方案,但我不清楚如何集成到现有代码中。我有一些 HTML/CSS 经验,但对 Freemarker 很陌生。

当前代码看起来包装了打印行项目的指令,这些指令不是作为费用可计费费用指令中输入的?

<#if record.item?has_content>
        <#assign totalBillableExpense = 0>
        <table class="itemtable" style="width: 100%; margin-top: 10px;"><!-- start items -->
            <#list record.item as item>
                <#if item_index==0>
                    <thead>
                        <tr>
                            <th colspan="20" align="left">$item.description@label</th>
                            <!--th align="center" colspan="3">$item.quantity@label</th-->
                            <!--th align="right" colspan="4">$item.rate@label</th-->
                            <th align="right" colspan="4">$item.amount@label</th>
                        </tr>
                    </thead>
                </#if>
                <tr>
                    <#if item.custcol_ns_print_pdf?string == "Yes">                      
                        <td colspan="20">          
                            <!--#if item.itemtype?contains("Description") || item.itemtype?contains("Subtotal")-->
                            <!--/#if-->

                          $item.description</td>
                            <!--td align="center" colspan="3" line->$item.quantity</td-->
                            <!--td align="right" colspan="4">$item.rate</td-->
                            <td align="right" colspan="4">$item.amount</td>
                    </#if>
                    <#if item.description?contains("Total Billable Expenses")>
                        <#assign totalBillableExpense = totalBillableExpense + item.amount>
                    </#if>
                </tr>
            </#list><!-- end items -->
            <tr>
                <td colspan="20">Billable Expenses </td>
                <td align="right" colspan="4">$totalBillableExpense?string.currency</td>
            </tr>

【问题讨论】:

你的问题不是很清楚。你能用 cmets 标出你想排除的部分吗?你的意思是如果它的数量为0就不要打印一行还是不打印整个部分?或者抑制所有潜在的空&lt;tr/&gt; 部分? 【参考方案1】:

这可能是你要问的:

<#if totalBillableExpense gt 0>
        <tr>
            <td colspan="20">Billable Expenses </td>
            <td align="right" colspan="4">$totalBillableExpense?string.currency</td>
        </tr>
</#if>

另外,为了避免空 &lt;tr/&gt; 标记的潜在问题,您应该重新表述:

<tr>
    <#if item.custcol_ns_print_pdf?string == "Yes">    
    ....
   </#if>
   <#if item.description?contains("Total Billable Expenses")>
       <#assign totalBillableExpense = totalBillableExpense + item.amount>
   </#if>
</tr>

类似于:

<#if item.description?contains("Total Billable Expenses")>
       <#assign totalBillableExpense = totalBillableExpense + item.amount>
</#if>
<#if item.custcol_ns_print_pdf?string == "Yes">
    <tr>
    
    ....
   </tr>
</#if>

【讨论】:

非常感谢您在不清楚问题时提供了答案。再加上你在钱上击中了它,让我看起来像一个奇才,而不是我的笨手笨脚。也感谢您指出潜在的空标签问题。

以上是关于使用 Netsuite 高级 PDF/HTML 模板进行条件打印(零值)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用高级 PDF/HTML 模板工具在 NetSuite 保存的搜索中打印多个公式字段?

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

Netsuite 高级 PDF/HTML 文本格式

Netsuite 高级 PDF/HTML 代码 ifelse 语句

在 NetSuite 中,如何在高级 PDF/HTML 模板中打印相关记录

Netsuite 高级 PDF/HTML 模板:将页脚设置为仅显示在最后一页