Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iReport: Getting multiple copies of table in detail band

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

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.

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.

This is the generated result:

Generated result

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>
like image 735
Rushikesh Joshi Avatar asked Mar 22 '12 02:03

Rushikesh Joshi


3 Answers

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

like image 182
Alex K Avatar answered Nov 18 '22 23:11

Alex K


Select Table Properties and add printWhenExpression on the table to $V{REPORT_COUNT} == 1 Now to avoid repetation table values in your ireport.

like image 44
Vinoth_S Avatar answered Nov 18 '22 22:11

Vinoth_S


Based on the previous answer response I was able with the table on the Detail section and the following properties set to avoid generating duplicated nor empty pages at the end of the document.

Detail Band -> set the Print When Expression with value $V{REPORT_COUNT} == 1 Table Element -> Set the Print When Expression $V{REPORT_COUNT} == 1

like image 3
Martín C Avatar answered Nov 19 '22 00:11

Martín C