本文介绍了iReport:详细获取表格的多个副本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的 iReport 。所以我想根据数据做一个简单的报告。

I am new at iReport. So I want to make a simple report based on data.

我的问题是当我的行少于细节带的大小时整个表在细节带中重复,我再也不想要了。如果我的行大约是5,那么同一个表在细节带中被复制4次,而不仅仅是表格,而是我在细节带中放置的每一件事。它会自行重复,直到细节带限制到来。

My problem is when my rows are less then detail band's size the whole table gets repeated in detail band, and I dont want it again. If my rows are aproximately 5, then same table gets copied 4 times in detail band, and not only table but each and every thing I put in detail band. It gets repeated itself till detail band limits come.

所以我犯了一些错误,或者我必须在 iReport 中设置一些细节带属性?

So am I making some mistake, or I have to set some property of detail band in iReport?

请帮帮我朋友。在此先感谢。

please help me friends. Thanks in advance.

这是生成的结果:

这是我的jrxml代码:

Here is my code of jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport language="groovy" bottomMargin="20" topMargin="20" rightMargin="20" leftMargin="20" columnWidth="555"
              whenNoDataType="AllSectionsNoDetail" pageHeight="842" pageWidth="595" name="test"
              xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns="http://jasperreports.sourceforge.net/jasperreports">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <style name="table">
        <box>
            <pen lineColor="#000000" lineWidth="1.0"/>
        </box>
    </style>
    <style name="table_TH" backcolor="#F0F8FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table_CH" backcolor="#BFE1FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table_TD" backcolor="#FFFFFF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 1">
        <box>
            <pen lineColor="#000000" lineWidth="1.0"/>
        </box>
    </style>
    <style name="table 1_TH" backcolor="#F0F8FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 1_CH" backcolor="#BFE1FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 1_TD" backcolor="#FFFFFF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 2">
        <box>
            <pen lineColor="#000000" lineWidth="1.0"/>
        </box>
    </style>
    <style name="table 2_TH" backcolor="#F0F8FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 2_CH" backcolor="#BFE1FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 2_TD" backcolor="#FFFFFF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 3">
        <box>
            <pen lineColor="#000000" lineWidth="1.0"/>
        </box>
    </style>
    <style name="table 3_TH" backcolor="#F0F8FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 3_CH" backcolor="#BFE1FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 3_TD" backcolor="#FFFFFF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 4">
        <box>
            <pen lineColor="#000000" lineWidth="1.0"/>
        </box>
    </style>
    <style name="table 4_TH" backcolor="#F0F8FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 4_CH" backcolor="#BFE1FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 4_TD" backcolor="#FFFFFF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 5">
        <box>
            <pen lineColor="#000000" lineWidth="1.0"/>
        </box>
    </style>
    <style name="table 5_TH" backcolor="#F0F8FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 5_CH" backcolor="#BFE1FF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <style name="table 5_TD" backcolor="#FFFFFF" mode="Opaque">
        <box>
            <pen lineColor="#000000" lineWidth="0.5"/>
        </box>
    </style>
    <subDataset name="a">
        <parameter name="sem" class="java.lang.String">
            <defaultValueExpression>
                <![CDATA[]]>
            </defaultValueExpression>
        </parameter>
        <queryString>
            <![CDATA[select final."M" as "ENROLLMENT",sem_batch.sem,sem_batch.batch,final."N" as "TTL_WKDY",final."O" as "PRESENT",round(((100*"O")/"N"),2) as "PERCENTAGE" from sem_batch, (select m."Std_id" as "M",l."Batch" as "L",l."Btch" as "N",m."Std" as "O" from (select count(b.batch_id) as "Btch",b.batch_id as "Batch" from batch_wkday b where b.batch_id like $P{sem} group by batch_id) l, (select count(a.std_id) as "Std",a.std_id as "Std_id",s.batch_id as "Batch" from attendance a,student_detail s where a.std_id=s.std_id and s.batch_id like $P{sem} group by a.std_id,s.batch_id) m where l."Batch"=m."Batch") final where final."L"=sem_batch.batch_id]]>
        </queryString>
        <field name="ENROLLMENT" class="java.math.BigDecimal"/>
        <field name="SEM" class="java.math.BigDecimal"/>
        <field name="BATCH" class="java.lang.String"/>
        <field name="TTL_WKDY" class="java.math.BigDecimal"/>
        <field name="PRESENT" class="java.math.BigDecimal"/>
        <field name="PERCENTAGE" class="java.math.BigDecimal"/>
        <group name="ENROLLMENT">
            <groupExpression>
                <![CDATA[$F{ENROLLMENT}]]>
            </groupExpression>
        </group>
    </subDataset>
    <parameter name="SEM" class="java.lang.String"/>
    <queryString>
        <![CDATA[select * from sem_batch]]>
    </queryString>
    <field name="SEM" class="java.math.BigDecimal"/>
    <field name="BATCH" class="java.lang.String"/>
    <field name="BATCH_ID" class="java.lang.String"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band splitType="Stretch" height="69">
            <staticText>
                <reportElement height="53" width="421" y="0" x="68"/>
                <textElement markup="none" textAlignment="Center">
                    <font size="22"/>
                </textElement>
                <text>
                    <![CDATA[ATTENDANCE - CLASS ]]>
                </text>
            </staticText>
        </band>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band splitType="Stretch" height="61">
            <staticText>
                <reportElement height="20" width="53" y="0" x="0"/>
                <textElement>
                    <font size="12"/>
                </textElement>
                <text>
                    <![CDATA[SEM]]>
                </text>
            </staticText>
            <staticText>
                <reportElement height="20" width="53" y="20" x="0"/>
                <textElement>
                    <font size="12"/>
                </textElement>
                <text>
                    <![CDATA[DATE]]>
                </text>
            </staticText>
            <staticText>
                <reportElement height="20" width="10" y="0" x="58"/>
                <textElement/>
                <text>
                    <![CDATA[:]]>
                </text>
            </staticText>
            <staticText>
                <reportElement height="20" width="10" y="20" x="58"/>
                <textElement/>
                <text>
                    <![CDATA[:]]>
                </text>
            </staticText>
            <textField pattern="dd/MM/yyyy">
                <reportElement height="20" width="100" y="20" x="68"/>
                <textElement/>
                <textFieldExpression>
                    <![CDATA[new java.util.Date()]]>
                </textFieldExpression>
            </textField>
            <textField>
                <reportElement height="20" width="100" y="0" x="68"/>
                <textElement/>
                <textFieldExpression>
                    <![CDATA[$P{SEM}]]>
                </textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band splitType="Stretch" height="125">
            <componentElement>
                <reportElement height="50" width="360" y="0" x="35" style="table 5" key="table 5"/>
                <jr:table
                        xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd"
                        xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components">
                    <datasetRun subDataset="a">
                        <datasetParameter name="sem">
                            <datasetParameterExpression>
                                <![CDATA[$P{SEM}+'%']]>
                            </datasetParameterExpression>
                        </datasetParameter>
                        <connectionExpression>
                            <![CDATA[$P{REPORT_CONNECTION}]]>
                        </connectionExpression>
                    </datasetRun>
                    <jr:column width="118">
                        <jr:columnHeader height="23" style="table 5_CH" rowSpan="1">
                            <staticText>
                                <reportElement height="20" width="118" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="14" isBold="false"/>
                                </textElement>
                                <text>
                                    <![CDATA[ENROLLMENT]]>
                                </text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell height="20" style="table 5_TD" rowSpan="1">
                            <textField>
                                <reportElement height="20" width="118" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="10" isBold="false"/>
                                </textElement>
                                <textFieldExpression>
                                    <![CDATA[$F{ENROLLMENT}]]>
                                </textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90">
                        <jr:columnHeader height="23" style="table 5_CH" rowSpan="1">
                            <staticText>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="14"/>
                                </textElement>
                                <text>
                                    <![CDATA[SEM]]>
                                </text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell height="20" style="table 5_TD" rowSpan="1">
                            <textField>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="10"/>
                                </textElement>
                                <textFieldExpression>
                                    <![CDATA[$F{SEM}]]>
                                </textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90">
                        <jr:columnHeader height="23" style="table 5_CH" rowSpan="1">
                            <staticText>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="14"/>
                                </textElement>
                                <text>
                                    <![CDATA[BATCH]]>
                                </text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell height="20" style="table 5_TD" rowSpan="1">
                            <textField>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center"/>
                                <textFieldExpression>
                                    <![CDATA[$F{BATCH}]]>
                                </textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90">
                        <jr:columnHeader height="23" style="table 5_CH" rowSpan="1">
                            <staticText>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="14"/>
                                </textElement>
                                <text>
                                    <![CDATA[PRESENT]]>
                                </text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell height="20" style="table 5_TD" rowSpan="1">
                            <textField>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center"/>
                                <textFieldExpression>
                                    <![CDATA[$F{PRESENT}]]>
                                </textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90">
                        <jr:columnHeader height="23" style="table 5_CH" rowSpan="1">
                            <staticText>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center">
                                    <font size="14"/>
                                </textElement>
                                <text>
                                    <![CDATA[PERCENTAGE]]>
                                </text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell height="20" style="table 5_TD" rowSpan="1">
                            <textField>
                                <reportElement height="20" width="90" y="0" x="0"/>
                                <textElement textAlignment="Center"/>
                                <textFieldExpression>
                                    <![CDATA[$F{PERCENTAGE}]]>
                                </textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </detail>
    <columnFooter>
        <band splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band splitType="Stretch" height="54">
            <textField>
                <reportElement height="20" width="100" y="16" x="227"/>
                <textElement textAlignment="Center"/>
                <textFieldExpression>
                    <![CDATA[$V{PAGE_NUMBER}]]>
                </textFieldExpression>
            </textField>
        </band>
    </pageFooter>
    <summary>
        <band splitType="Stretch" height="42"/>
    </summary>
</jasperReport>


推荐答案

你应该把 组件进入 标题 频段(或进入 摘要 带,例如)。不要进入 明细 频段。

You should put the table component into the Title band (or into the Summary band, for example). Not into the Detail band.

这篇关于iReport:详细获取表格的多个副本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 15:36