将分页符添加到NETSuite的PDF模板中的表中

时间:2018-06-22 08:45:00

标签: templates netsuite bfo

SuiteBuilder Customisation Guide的第176/177页上,Oracle解释了如何向模板内的表添加分页符。

给出的示例是:

<!-- start of item table in transaction -->
<#list record.item as item>
    <#if item_index==0> <!-- Header Definition -->
        <tr>
            <th>${item.field1@label}</th>
            <th>${item.long_text_field@label}</th>
            <th>${item.field2@label}</th>
            <!-- ... -->
        </tr>
    </#if>
    <#list item.long_text_field?split("<br />") as paragraph>
        <#if desc_index==0>
            <tr>
                <td>${item.field1}</td>
                <td>${paragraph}</td>
                <td>${item.field2}</td>
                <!-- ... -->
            </tr>
        <#else>
            <tr>
                <td></td>
                <td>${paragraph}</td>
                <td></td>
                <!-- ... -->
            </tr>
        </#if>
    </#list>
</#list>
<!-- end of item table in transaction -->

但这会导致以下错误:

enter image description here

似乎无法评估术语desc_index,此外,该术语除这里以外没有出现与NETSuite相关的任何其他文档。

这是错误/错误/已弃用的代码吗?

2 个答案:

答案 0 :(得分:2)

这是示例中的错字。

通过将列表名称与“ _index”串联来引用Freemarker中的列表索引。因此,在此示例中,desc_index应该替换为paragraph_index

看来他们是从另一个清单名称为“ desc”(可能是“ description”)的代码段改编了此示例,却忽略了更新索引引用以使其匹配。

当然,您需要将long_text_fieldfield1field2更改为模板可用的真实字段,以使其起作用。

答案 1 :(得分:1)

解决您的问题的标题...

您可以使用<pbr>标签添加实际的分页符。您还可以设置新的页面布局。请参阅BFO文档以获取更多信息。但是,除非您有逻辑关闭并重新创建表数据的延续,否则您可能不希望使用此方法直接拆分表。 https://bfo.com/products/pdf/docs/userguide.pdf

切片表时,您想要使用page-break-inside: avoid;之类的CSS https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside