Добавление разрывов страниц в таблицы в шаблонах PDF для NETSuite

На странице 176/177 Руководства по настройке SuiteBuilder 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 -->

Однако это приводит к следующей ошибке:

Похоже, что термин desc_index не может быть оценен, и, кроме того, термин не появляется ни в какой другой документации, связанной с NETSuite, кроме как здесь.

Это ошибка / опечатка / устаревший код?

2 ответа

Решение

Это опечатка в примере.

На индексы списка в Freemarker ссылаются путем объединения имени списка с помощью _index. Итак, в этом примере desc_index следует заменить на paragraph_index,

Похоже, что они адаптировали этот пример из другого фрагмента с именем списка 'desc' (вероятно, для 'description'), но не обновили ссылку на индекс для соответствия.

Конечно, вам нужно изменить long_text_field, field1 а также field2 к реальным полям, которые доступны для шаблона для его работы.

Обращаясь к названию вашего вопроса...

Вы можете добавить фактические разрывы страниц, используя <pbr> тег. Вы также можете установить новый макет страницы. Пожалуйста, смотрите документацию BFO для получения дополнительной информации. Однако вы, вероятно, не захотите использовать это для непосредственного разделения таблицы, если у вас нет логики для закрытия и воссоздания продолжения данных таблицы. https://bfo.com/products/pdf/docs/userguide.pdf

Когда вы нарезаете таблицу, вы хотите использовать CSS как page-break-inside: avoid; https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-inside

Другие вопросы по тегам