我是iReport
。所以我想根据数据做一个简单的报告。iReport:获取表格的多个副本
我的问题是,当我的行少于细节带的大小,整个表得到重复的详细带,我不想再次。如果我的行大约是5,那么相同的表被复制4次详细的乐队,而不仅仅是桌子,而是我详细列出的每一件事情。它会一直重复,直到细节带限制来临。
所以我犯了一些错误,或者我必须在iReport
中设置一些细节带的属性?
请帮我朋友。提前致谢。
这是生成的结果:
这里是我的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>
嗨,欢迎来到SO。你能更详细地解释你的设计报告格式吗?有一些解释的图片或JRXML文件会很有帮助。 – 2012-03-22 03:07:31
是啊当然...在这里我附加文件,以便您可以看到jrxml文件以及PDF文件也... – 2012-03-22 03:28:45
我无法读取您的jrxml文件,它不适用于priview。你可以用代码块直接粘贴到你的文章中。 – 2012-03-22 03:59:25