【发布时间】:2021-01-20 18:01:15
【问题描述】:
我有水平打印顺序(4 列)的主报告。主报表的详细信息带中有可变高度的子报表。问题是当我设置子报表的高度不足以显示它所说的所有数据时的可变高度:
net.sf.jasperreports.engine.JRRuntimeException:
Subreport overflowed on a band that does not support overflow.
我能否以某种方式告诉主报告的详细信息带根据子报告的大小进行拉伸?
主要报告:
<?xml version="1.0" encoding="UTF-8"?>
<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="MainReport" language="groovy" columnCount="4" printOrder="Horizontal" pageWidth="595" pageHeight="1100" columnWidth="138" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="796cf45d-4953-4dea-9173-64556d85b7fc">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["C:\\Reports\\"]]></defaultValueExpression>
</parameter>
<queryString language="SQL">
<![CDATA[select SYSDATE from dual]]>
</queryString>
<field name="SYSDATE" class="java.sql.Timestamp"/>
<detail>
<band height="20" splitType="Stretch">
<subreport>
<reportElement x="0" y="0" width="138" height="20" isPrintWhenDetailOverflows="true" uuid="5901e9d7-0ae3-42b9-a804-106d502a904b"/>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "SubReport.jasper"]]></subreportExpression>
</subreport>
</band>
</detail>
子报告:
<?xml version="1.0" encoding="UTF-8"?>
<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="SubReport" language="groovy" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="a7078e79-2772-4921-afc9-de4bcd5fe09d">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[SELECT ROWNUM
FROM DUAL
CONNECT BY LEVEL < 50]]>
</queryString>
<field name="ROWNUM" class="java.math.BigDecimal"/>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20" uuid="10b08205-9452-44e2-8fa2-a3f782ca6aa8"/>
<textFieldExpression><![CDATA[$F{ROWNUM}]]></textFieldExpression>
</textField>
</band>
</detail>
示例(EL 是我不想要的空行):
.sub1. .sub2. .sub3. .sub4.
...... ...... ...... ......
...... ...... --EL-- --EL--
...... --EL-- --EL-- --EL--
--EL-- --EL-- --EL-- --EL--
--EL-- --EL-- --EL-- --EL--
.sub5. .sub6. .sub7. .sub8.
...... ...... ...... ......
...... ...... ...... ......
...... ...... ...... ......
...... ...... ...... --EL--
...... ...... --EL-- --EL--
...... ...... --EL-- --EL--
【问题讨论】:
-
发布您的 jrxml 代码。
标签: jasper-reports