JasperReports:当使用水平打印顺序时,为什么摘要带会被推到下一页?

时间:2011-12-02 21:09:05

标签: jasper-reports ireport

我正在使用Jasper Reports 3.7.2。我有一个包含两列的报告,设置为水平打印顺序,摘要带和使用XML数据源。每当打印停止时,所有列都具有完全相同的记录数量(在我的情况下是偶数量的记录),摘要带总是被推送到下一页。为什么会这样?它几乎是一个错误......

如果将打印指令切换为垂直,问题就会消失。我无法解释为什么水平打印顺序导致摘要转到下一页。我还注意到版本“4.1”出现此问题。以下是显示问题的简单报告示例:

<?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="horizontal-issue" columnCount="2" printOrder="Horizontal" pageWidth="595" pageHeight="842" columnWidth="277" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
    <![CDATA[select * from

(select 'hello' as hello) AS hello

union all

select * from

(select 'hello' as hello) AS hello

union all

select * from

(select 'hello' as hello) AS hello

union all

select * from

(select 'hello' as hello) AS hello]]>
</queryString>
<field name="hello" class="java.lang.String"/>
<background>
    <band splitType="Stretch"/>
</background>
<title>
    <band splitType="Stretch"/>
</title>
<pageHeader>
    <band splitType="Stretch"/>
</pageHeader>
<columnHeader>
    <band splitType="Stretch"/>
</columnHeader>
<detail>
    <band height="20" splitType="Stretch">
        <textField>
            <reportElement x="0" y="0" width="129" height="20"/>
            <textElement/>
            <textFieldExpression class="java.lang.String"><![CDATA[$F{hello}]]></textFieldExpression>
        </textField>
    </band>
</detail>
<columnFooter>
    <band splitType="Stretch"/>
</columnFooter>
<pageFooter>
    <band splitType="Stretch"/>
</pageFooter>
<summary>
    <band height="33" splitType="Stretch">
        <staticText>
            <reportElement x="239" y="7" width="100" height="20"/>
            <textElement>
                <font size="16"/>
            </textElement>
            <text><![CDATA[SUMMARY]]></text>
        </staticText>
    </band>
</summary>
</jasperReport>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但似乎仍未解决。

我的解决方案只是一种解决方法,但它有效:

  1. 创建虚拟组
  2. 在此群组中设置keepTogether =“true”
  3. 示例:

    <?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="summaeryTest" language="groovy" columnCount="2" printOrder="Horizontal" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="277" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="2a33a9ce-0a7c-4af3-b190-2dab6b25d268">
        <property name="ireport.zoom" value="1.0"/>
        <property name="ireport.x" value="0"/>
        <property name="ireport.y" value="0"/>
        <queryString>
            <![CDATA[select * from user_tables order by 1]]>
        </queryString>
        <field name="TABLE_NAME" class="java.lang.String"/>
        <field name="TABLESPACE_NAME" class="java.lang.String"/>
        <field name="CLUSTER_NAME" class="java.lang.String"/>
        <field name="IOT_NAME" class="java.lang.String"/>
        <field name="STATUS" class="java.lang.String"/>
        <field name="PCT_FREE" class="java.math.BigDecimal"/>
        <field name="PCT_USED" class="java.math.BigDecimal"/>
        <field name="INI_TRANS" class="java.math.BigDecimal"/>
        <field name="MAX_TRANS" class="java.math.BigDecimal"/>
        <field name="INITIAL_EXTENT" class="java.math.BigDecimal"/>
        <field name="NEXT_EXTENT" class="java.math.BigDecimal"/>
        <field name="MIN_EXTENTS" class="java.math.BigDecimal"/>
        <field name="MAX_EXTENTS" class="java.math.BigDecimal"/>
        <field name="PCT_INCREASE" class="java.math.BigDecimal"/>
        <field name="FREELISTS" class="java.math.BigDecimal"/>
        <field name="FREELIST_GROUPS" class="java.math.BigDecimal"/>
        <field name="LOGGING" class="java.lang.String"/>
        <field name="BACKED_UP" class="java.lang.String"/>
        <field name="NUM_ROWS" class="java.math.BigDecimal"/>
        <field name="BLOCKS" class="java.math.BigDecimal"/>
        <field name="EMPTY_BLOCKS" class="java.math.BigDecimal"/>
        <field name="AVG_SPACE" class="java.math.BigDecimal"/>
        <field name="CHAIN_CNT" class="java.math.BigDecimal"/>
        <field name="AVG_ROW_LEN" class="java.math.BigDecimal"/>
        <field name="AVG_SPACE_FREELIST_BLOCKS" class="java.math.BigDecimal"/>
        <field name="NUM_FREELIST_BLOCKS" class="java.math.BigDecimal"/>
        <field name="DEGREE" class="java.lang.String"/>
        <field name="INSTANCES" class="java.lang.String"/>
        <field name="CACHE" class="java.lang.String"/>
        <field name="TABLE_LOCK" class="java.lang.String"/>
        <field name="SAMPLE_SIZE" class="java.math.BigDecimal"/>
        <field name="LAST_ANALYZED" class="java.sql.Timestamp"/>
        <field name="PARTITIONED" class="java.lang.String"/>
        <field name="IOT_TYPE" class="java.lang.String"/>
        <field name="TEMPORARY" class="java.lang.String"/>
        <field name="SECONDARY" class="java.lang.String"/>
        <field name="NESTED" class="java.lang.String"/>
        <field name="BUFFER_POOL" class="java.lang.String"/>
        <field name="FLASH_CACHE" class="java.lang.String"/>
        <field name="CELL_FLASH_CACHE" class="java.lang.String"/>
        <field name="ROW_MOVEMENT" class="java.lang.String"/>
        <field name="GLOBAL_STATS" class="java.lang.String"/>
        <field name="USER_STATS" class="java.lang.String"/>
        <field name="DURATION" class="java.lang.String"/>
        <field name="SKIP_CORRUPT" class="java.lang.String"/>
        <field name="MONITORING" class="java.lang.String"/>
        <field name="CLUSTER_OWNER" class="java.lang.String"/>
        <field name="DEPENDENCIES" class="java.lang.String"/>
        <field name="COMPRESSION" class="java.lang.String"/>
        <field name="COMPRESS_FOR" class="java.lang.String"/>
        <field name="DROPPED" class="java.lang.String"/>
        <field name="READ_ONLY" class="java.lang.String"/>
        <field name="SEGMENT_CREATED" class="java.lang.String"/>
        <field name="RESULT_CACHE" class="java.lang.String"/>
        <group name="dummy" keepTogether="true">
            <groupExpression><![CDATA[$F{TABLE_NAME}]]></groupExpression>
            <groupHeader>
                <band height="50">
                    <printWhenExpression><![CDATA[false]]></printWhenExpression>
                </band>
            </groupHeader>
            <groupFooter>
                <band height="50">
                    <printWhenExpression><![CDATA[false]]></printWhenExpression>
                </band>
            </groupFooter>
        </group>
        <background>
            <band splitType="Stretch"/>
        </background>
        <title>
            <band height="79" splitType="Stretch">
                <staticText>
                    <reportElement uuid="ae91c2f6-9f63-4d9f-9acd-2dfc8487cf8d" x="250" y="30" width="100" height="20"/>
                    <textElement/>
                    <text><![CDATA[titole]]></text>
                </staticText>
            </band>
        </title>
        <pageHeader>
            <band height="35" splitType="Stretch"/>
        </pageHeader>
        <columnHeader>
            <band height="61" splitType="Stretch">
                <staticText>
                    <reportElement uuid="5f4f2cc7-c7c1-42c0-bff7-e4ae12655d29" x="124" y="16" width="100" height="20"/>
                    <textElement/>
                    <text><![CDATA[TABLE_NAME]]></text>
                </staticText>
            </band>
        </columnHeader>
        <detail>
            <band height="21" splitType="Stretch">
                <textField>
                    <reportElement uuid="8ea73055-f8d6-4340-af79-d5c4e05f41a8" x="0" y="0" width="100" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{TABLE_NAME}]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <columnFooter>
            <band height="45" splitType="Stretch"/>
        </columnFooter>
        <pageFooter>
            <band height="54" splitType="Stretch"/>
        </pageFooter>
        <summary>
            <band height="42" splitType="Stretch">
                <staticText>
                    <reportElement uuid="d65a72f4-a05e-4d30-80ea-488668b3f379" x="252" y="17" width="100" height="20"/>
                    <textElement/>
                    <text><![CDATA[Summary]]></text>
                </staticText>
            </band>
        </summary>
    </jasperReport>
    
相关问题