我不知道此选项需要哪些设置。
可以借助net.sf.jasperreports.export.xls.break.after.row属性解决此问题。
您可以为报表中的“Sheets Break”元素(例如,line或staticText元素)设置net.sf.jasperReports.export.xls.break.after.row属性。
在下面的示例中,我将line元素放在组的页脚处,以便在Excel中为一个新组生成新工作表。
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ..>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["path_to_subreport"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT id, addressId FROM document ORDER BY addressId]]>
</queryString>
<field name="ID" class="java.lang.Integer"/>
<field name="ADDRESSID" class="java.lang.Integer"/>
<group name="addressGroup">
<groupExpression><![CDATA[$F{ADDRESSID}]]></groupExpression>
<groupHeader>
<band height="53">
<subreport>
<reportElement x="189" y="0" width="200" height="31"/>
<subreportParameter name="addressId">
<subreportParameterExpression><![CDATA[$F{ADDRESSID}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "subreport_new_sheet_for_excel.jasper"]]></subreportExpression>
</subreport>
<staticText>
<reportElement x="0" y="33" width="100" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isItalic="true"/>
</textElement>
<text><![CDATA[ID]]></text>
</staticText>
</band>
</groupHeader>
<groupFooter>
<band height="9">
<line>
<reportElement x="1" y="5" width="100" height="1">
<property name="net.sf.jasperreports.export.xls.break.after.row" value="true"/>
</reportElement>
<graphicElement>
<pen lineWidth="0.0"/>
</graphicElement>
</line>
</band>
</groupFooter>
</group>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<box>
<pen lineWidth="1.0"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ...>
<parameter name="addressId" class="java.lang.Integer" isForPrompting="false"/>
<queryString>
<![CDATA[SELECT city, street FROM address WHERE id = $P{addressId}]]>
</queryString>
<field name="CITY" class="java.lang.String"/>
<field name="STREET" class="java.lang.String"/>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="258" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["City: " + $F{CITY}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="258" y="0" width="297" height="20"/>
<textElement/>
<textFieldExpression><![CDATA["Street: " + $F{STREET}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
问题内容: 在这部分代码中: System.out.println的示例结果是: [A B C D] 如果我想要下面的结果,该如何修改上面的代码? 一个 b C d 或至少: 一个, b, C, d 问题答案: 遍历元素,分别打印每个元素。 另外,Java 8语法提供了一个很好的捷径,可以通过方法引用来完成相同的操作 或lambda
嗯,我有一个主报告和一个子报告,在主报告中我有两个细节带。在第一个细节区,我放置了“主数据源”(来自fillReport),在第二个细节区,我放置了子报告(来自param的数据源)。 解决方案 经过大量的研究,我发现我对“主报告”和“子报告”的概念是错误的。当我们有一个“主报表”(与主数据源相关联)时,正确的做法是所有“子报表”都直接与此相关联。因此,我创建了3个子报告,并像“param”一样传递
示例:一个线程组:线程组的步骤:统计信息
这真的快把我逼疯了。我到处看,但还是不明白为什么我的不起作用 我有一个主报表(一个只返回一行的虚拟查询)和两个子报表(每个子报表都有自己的头),它们位于两个不同的详细信息带中。第二个子报表拆分为多个excel表! 添加了Line元素并设置属性表达式:name=“net.sf.jasperreports.export.xls.break.after.row”和Default value=“true”
诸如此类。 我尝试使用iReport将“组页脚”频段中的最大化频段高度属性设置为true,但当我尝试查看时,会添加一些空页。
我想用subreport创建一个简单的Jasper报表,但我无法使其工作。 选择提供一个结果(数据库是Oracle),但是子报表在从生成的repport中不可见。但报告的结尾是一个全新的空页。 你能告诉我这个例子有什么问题吗?我尝试了很多东西(子报表中的默认值,当No Data=所有节时,子报表标题中的No detaily设置,以及很多东西,我不记得了),但没有任何帮助。