В настоящее время я работаю с 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 страницы. Я также удалил конфиденциальные данные со снимка экрана, поэтому не беспокойтесь о пробелах, которые вы видите.