Как использовать pto_header в RML?

Я сделал отчет, который работал отлично, но я понял, что когда есть несколько страниц, верхний и нижний колонтитулы отображаются только на первой странице.

Поэтому я начал использовать <pto>, <pto_header> и <pto_trailer>. Но они не работают должным образом. Например, когда я использую только pto_header:

<story>
    <pto>
        <pto_header>
            <para style="P1">
                <font color="white"> </font>
            </para>
            <blockTable colWidths="480.0" style="Table1">
                <tr>
                    <td>
                        <para style="header_td">My column</para>
                    </td>
                </tr>
            </blockTable>
        </pto_header>
        <blockTable colWidths="480.0" style="Table2">
            <tr>
                <para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
                <para style="terp_default_8">[[ setLang(o.lang) ]]</para>
                <td>
                    <para>[[ o.name or '' ]]</para>
                    <para>
                        <font color="white"> </font>
                    </para>
                </td>
            </tr>
        </blockTable>
    </pto>
</story>

В результате раздел, который я объявил как pto_header, отображается только на последней странице отчета. И если я объявлю pto_trailer, результат будет наоборот. pto_trailer отображается только на самой первой странице.

Может ли кто-нибудь объяснить мне, что я делаю неправильно?


person forvas    schedule 04.11.2014    source источник


Ответы (1)


попробуйте это может быть полезно для вас.

<story>
<pto>
    <pto_header>
        <para style="P1">
            <font color="white"> </font>
        </para>
        <blockTable colWidths="480.0" style="Table1">
            <tr>
                <td>
                    <para style="header_td">My column</para>
                </td>
            </tr>
        </blockTable>
    </pto_header>
    <para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
    <para style="terp_default_8">[[ setLang(o.lang) ]]</para>
     <blockTable colWidths="480.0" style="Table1">
            <tr>
                <td>
                    <para style="header_td">My column</para>
                </td>
            </tr>
     </blockTable>
    <blockTable colWidths="480.0" style="Table2">
        <tr>
            <td>
                <para>[[ o.name or '' ]]</para>
                <para>
                    <font color="white"> </font>
                </para>
            </td>
        </tr>
    </blockTable>
</pto>          
</story>
person Bhavesh Odedra    schedule 04.11.2014
comment
Отлично @Odedra!! Это работает. Только один вопрос: если я вставляю ваш код без изменений, pto_header работает хорошо, но показывается только одна запись по страницам (поэтому в отчете много страниц). Я должен поместить параграфы с repeatIn и setLang, как и раньше, внутри Table2. Ты знаешь почему? - person forvas; 04.11.2014
comment
В зависимости от количества идентификаторов он будет печатать отдельный документ для каждого. А для стандартного использования <pto_header> дается в ответе. Также убедитесь, что эти две строки идут после завершения </pto_header>. 1. повтор и 2. сетланг. Никогда не помещайте этот тег 2 в любую таблицу блоков. Надеюсь, что это поможет вам. - person Bhavesh Odedra; 04.11.2014
comment
Хорошо я понял. Но если я хочу эмулировать древовидное представление объекта в отчете, то, что я делаю, было бы правильно, не так ли? - person forvas; 04.11.2014
comment
если вы хотите древовидное представление, то нет необходимости помещать repeatIn в блокируемую таблицу. Это будет распечатанный документ. И попробуйте приведенный выше код для древовидного представления, которое будет напечатано вашим древовидным объектом. - person Bhavesh Odedra; 04.11.2014