如何跨两个或多个页面拆分列标题和详细信息

时间:2014-09-15 21:36:49

标签: jasper-reports break

我们正在构建一个基于 JasperReports 的动态报表设计器。在大多数情况下,我们使用PDF作为默认输出。

我们正面临一个严重的问题,例如,如果用户在报告中选择了八列,则可能是打印报告的唯一方法是在第一页上显示前4列详细信息和标题最后4列详细信息和标题显示在第二页上。

看起来像分栏符是这样做的方式,我在Jasper Reports中尝试过它们,但没有运气。下面我在jrxml文件中添加了详细信息区域,我试图在第三列之后使用break元素中断到新页面。我尝试在第四列之前使用printbreak上的printWhenExpression进行分解。

请注意,虽然此测试用例很小且实际上并不需要中断,但正在创建的其他报告中有20多列需要分布在3个或更多页面上。



	<detail>
		<band height="16" splitType="Stretch">
			<textField isBlankWhenNull="true">
				<reportElement x="24" y="1" width="100" height="15" uuid="4bb1d713-2c34-42e9-aeb4-63aa41d10060"/>
				<textFieldExpression><![CDATA[$F{L_BUILDING_CODE}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="140" y="1" width="100" height="15" uuid="9d55a9e3-fa9f-497b-b744-dd853ac21a4a"/>
				<textFieldExpression><![CDATA[$F{L_BUILDING_NAME}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="250" y="1" width="100" height="15" uuid="e70b4bc4-a8a7-4e97-abdc-e58346daa002"/>
				<textFieldExpression><![CDATA[$F{L_CITY}]]></textFieldExpression>
			</textField>
			<break type="Column">
				<reportElement key="" x="0" y="1" width="250" height="1" uuid="3bf6f2c0-a0d6-43dd-9d3f-ddd1e46d5fc7" >
					<printWhenExpression><![CDATA[$V{COLUMN_NUMBER}.intValue() == 4]]></printWhenExpression>
				</reportElement>
			</break>
			<textField>
				<reportElement x="600" y="1" width="100" height="15" uuid="19cb12e8-6474-4776-a9fa-2c7d34e69573"/>
				<textFieldExpression><![CDATA[$F{L_STATE_PROVINCE}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
&#13;
&#13;
&#13; 有人可以告诉我一个如何做到这一点的例子吗?

0 个答案:

没有答案