Подотчет с отрицательной координатой y печатает неправильно на второй странице с помощью jaspersoft

В настоящее время я работаю с Jaspersoft Studio (версия 5.6.2.final) для создания PDF-документов. В настоящее время я столкнулся с проблемой, с которой мне не помешала бы помощь.

У меня есть один основной отчет, который содержит 3 подотчета. Каждый из подотчетов представляет собой полноценный документ со своим заголовком, подробностями и (последней) полосой pageFooter. Каждый из подотчетов создается в отдельной полосе сведений с разрывом страницы, поэтому каждый подотчет начинается с новой страницы. Пока проблем нет.

Теперь заказчик хочет номер страницы на каждой странице в определенном месте документа, это место соответствует определенной части заголовка каждого из подотчетов. Смотрите изображение ниже:

http://puu.sh/dAZzg/edaa1285c4.png

Чтобы включить это, я создал заголовок страницы в главном отчете, который содержит номер страницы. Затем я дал каждому из подотчетов отрицательную координату y, чтобы они скользили по заголовку страницы, таким образом печатая номер страницы точно в нужном месте. Это работает частично.

<pageHeader>
    <band height="159">
        <property name="local_mesure_unitheight" value="cm"/>
        <textField>
            <reportElement x="483" y="145" width="31" height="14" uuid="f512ea15-2e4b-4c63-bf92-61b990d9c461">
                <property name="local_mesure_unitheight" value="cm"/>
                <property name="com.jaspersoft.studio.unit.height" value="cm"/>
                <property name="local_mesure_unity" value="cm"/>
                <property name="com.jaspersoft.studio.unit.y" value="cm"/>
            </reportElement>
            <textElement textAlignment="Left">
                <font fontName="Amerigo BT"/>
            </textElement>
            <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
        </textField>
    </band>
</pageHeader>
<detail>
    <band height="83" splitType="Stretch">
        <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
        <subreport>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="-56" y="-175" width="573" height="83" uuid="5e4141a0-ac50-485a-8269-40b607c67466">
                <property name="local_mesure_unity" value="cm"/>
                <property name="com.jaspersoft.studio.unit.y" value="cm"/>
                <property name="local_mesure_unitx" value="cm"/>
                <property name="com.jaspersoft.studio.unit.x" value="cm"/>
            </reportElement>
            <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//idbfyl:fiscalYearReportLetter")]]></dataSourceExpression>
            <subreportExpression><![CDATA["FiscalYearReportLetter.jasper"]]></subreportExpression>
        </subreport>
    </band>
    <band height="83" splitType="Stretch">
        <break>
            <reportElement x="0" y="0" width="513" height="1" uuid="43e0cd6d-cc0b-4ce9-ae2f-0d8d2b498896"/>
        </break>
        <subreport>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="-56" y="-175" width="573" height="70" uuid="df524b80-9db1-43b7-9c45-3b8ea21c8081">
                <property name="local_mesure_unity" value="cm"/>
                <property name="com.jaspersoft.studio.unit.y" value="cm"/>
            </reportElement>
            <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//idbfyvr:fiscalYearValueReport")]]></dataSourceExpression>
            <subreportExpression><![CDATA["FiscalYearValueReport.jasper"]]></subreportExpression>
        </subreport>
    </band>
    <band height="83" splitType="Stretch">
        <break>
            <reportElement x="0" y="0" width="513" height="1" uuid="bcddb440-2fdd-49c2-98cc-7978260c8d34"/>
        </break>
        <subreport>
            <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="-56" y="-175" width="573" height="70" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" uuid="df524b80-9db1-43b7-9c45-3b8ea21c8081">
                <property name="local_mesure_unity" value="cm"/>
                <property name="com.jaspersoft.studio.unit.y" value="cm"/>
            </reportElement>
            <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//ibdfyir:fiscalYearIncomeReport")]]></dataSourceExpression>
            <subreportExpression><![CDATA["FiscalYearIncomeReport.jasper"]]></subreportExpression>
        </subreport>
    </band>
</detail>

Каждая первая страница вложенных отчетов печатается в правильном месте, но на каждой странице после первой вложенный отчет печатается под заголовком страницы, кажется, что отрицательная координата y сбрасывается на 0.

Подотчет начинается под заголовком страницы

Есть ли способ заставить каждую страницу подотчета начинаться с одной и той же отрицательной координаты y или есть другой способ добиться того, что мне нужно?

Привет, Рик

PS. Примеры изображений начинаются со страницы 2, поскольку первый подотчет состоит только из 1 страницы. Я также удалил конфиденциальные данные со снимка экрана, поэтому не беспокойтесь о пробелах, которые вы видите.


person Wubinator    schedule 19.12.2014    source источник


Ответы (1)


У меня была аналогичная проблема. Попробуйте поместить pageNumber в полосу сведений основного отчета и отметить его isPrintWhenDetailOverFlows, чтобы pageNumber печатался на всех страницах при переполнении подотчета.

person user4528313    schedule 04.02.2015