【问题标题】:Resize(stretch) detail band by subreport's size [duplicate]按子报表的大小调整(拉伸)细节带[重复]
【发布时间】: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


【解决方案1】:

尝试在子报表元素上启用Detail Overflows 属性。

【讨论】:

【解决方案2】:

尝试将报表的COLUMN_COUNT属性设置为4,根据报表页宽设置COLUMN_WIDTH(即COLUMN_WIDTH * 4

或多或少你会得到你想要的。

告诉我它是否有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多