我尝试找出一种将报表分为两列(垂直排列)的方式,它们具有相同的高度。是否可以不将数据拆分为两个子报表?
我在一个页面上有一些标题带,一个列标题带和一个摘要带。
在列标题区域中,我有我的子报表 Locations.jrxml 。
Locations.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 7.2.0.final using JasperReports Library version 6.6.0 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Location" columnCount="2" pageWidth="555" pageHeight="100" whenNoDataType="AllSectionsNoDetail" columnWidth="267" columnSpacing="20" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="79ed8d05-44c2-4589-9b0e-07bbb1c93efb">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="com.jaspersoft.studio.unit." value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
<parameter name="P_LOCATIONDETAILS_SUBREPORT" class="java.lang.Object"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="locationNumber" class="java.lang.Integer">
<fieldDescription><![CDATA[locationNumber]]></fieldDescription>
</field>
<field name="items" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource">
<fieldDescription><![CDATA[items]]></fieldDescription>
</field>
<background>
<band splitType="Stretch"/>
</background>
<detail>
<band height="60" splitType="Prevent">
<property name="com.jaspersoft.studio.layout"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<textField>
<reportElement x="0" y="0" width="245" height="18" uuid="c50227b8-a283-40ef-a135-7b2146e1028f">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<box>
<topPen lineWidth="1.0"/>
<leftPen lineWidth="1.0"/>
<bottomPen lineWidth="1.0"/>
<rightPen lineWidth="1.0"/>
</box>
<textElement textAlignment="Center">
<font size="12" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA["Location " + $F{locationNumber}]]></textFieldExpression>
</textField>
<subreport>
<reportElement x="0" y="17" width="245" height="33" uuid="844fee11-3a26-45d9-9016-45de28e366a0"/>
<dataSourceExpression><![CDATA[$F{items}]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{P_LOCATIONDETAILS_SUBREPORT}]]></subreportExpression>
</subreport>
<textField>
<reportElement x="0" y="0" width="245" height="18" uuid="c50227b8-a283-40ef-a135-7b2146e1028f"/>
<textElement textAlignment="Center">
<paragraph lineSpacing="1_1_2" lineSpacingSize="20.0" spacingBefore="6" spacingAfter="12"/>
</textElement>
</textField>
</band>
</detail>
<pageFooter>
<band height="5">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</band>
</pageFooter>
这会以这种方式打印我的项目:
item1 item8
item2 item9
item3
item4
item5
item6
item7
但是我想要这样的东西:
item1 item6
item2 item7
item3 item8
item4 item9
item5
是否有可能不做两个子报表并传递两个不同的列表(之前以编程方式计算)? 另一件事是:项目列表大小不固定:可能是1到n个项目。