我已添加主报表的子报表,通过从发票数据库表中获取详细信息来打印发票ID,duedate和total的值。 但我无法使用参数打印字段。 请任何人都可以帮助我。我是jasper报告设计的新手。
我的代码:
<?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="Subscription_details" pageWidth="595" pageHeight="70" whenNoDataType="AllSectionsNoDetail" columnWidth="595" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" >
<property name="com.jasperassistant.designer.GridHeight" value="12"/>
<property name="com.jasperassistant.designer.GridWidth" value="12"/>
<property name="com.jasperassistant.designer.SnapToGrid" value="false"/>
<property name="com.jasperassistant.designer.Grid" value="false"/>
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="customerId" class="java.lang.String"/>
<parameter name="invoiceId" class="java.lang.Integer"/>
<parameter name="totalWithTax" class="java.lang.String"/>
<parameter name="carriedBalance" class="java.lang.String"/>
<queryString>
<![CDATA[select i.amount as amount,i.due_date as duedate,i.id as invoiceId from invoice i where i.id=$P{invoiceId};]]>
</queryString>
<field name="description" class="java.lang.String"/>
<field name="price_per_item" class="java.math.BigDecimal"/>
<field name="quantity" class="java.lang.Integer"/>
<field name="amount" class="java.math.BigDecimal"/>
<columnHeader>
<band height="34">
<staticText>
<reportElement x="12" y="10" width="100" height="16" />
<textElement>
<font size="11" isBold="false"/>
</textElement>
<text><![CDATA[Racun od]]></text>
</staticText>
<staticText>
<reportElement x="180" y="10" width="70" height="14" />
<textElement>
<font size="10" isBold="false"/>
</textElement>
<text><![CDATA[Nacl Pl.]]></text>
</staticText>
<staticText>
<reportElement x="374" y="10" width="70" height="14" />
<textElement>
<font size="10" isBold="false"/>
</textElement>
<text><![CDATA[Iznos]]></text>
</staticText>
<line>
<reportElement x="12" y="33" width="543" height="1" />
<graphicElement>
<pen lineWidth="0.5"/>
</graphicElement>
</line>
<staticText>
<reportElement x="263" y="12" width="100" height="14" />
<textElement>
<font size="10"/>
</textElement>
<text><![CDATA[Broj Racuna]]></text>
</staticText>
<staticText>
<reportElement x="484" y="12" width="71" height="14" />
<textElement>
<font size="10"/>
</textElement>
<text><![CDATA[Otvoreno]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="17">
<textField>
<reportElement x="154" y="0" width="100" height="11" >
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$P{duedate}]]></textFieldExpression>
</textField>
</band>
</detail>
<summary>
<band height="20">
<staticText>
<reportElement x="261" y="1" width="113" height="15" forecolor="#000000" />
<textElement textAlignment="Left" verticalAlignment="Bottom">
<font size="10" isBold="false"/>
</textElement>
<text><![CDATA[Ukupno CHF . . . .
]]></text>
</staticText>
<textField>
<reportElement x="344" y="0" width="100" height="13" >
<printWhenExpression><![CDATA[new Boolean($F{amount}!==null)]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$P{amount}]]></textFieldExpression>
</textField>
<line>
<reportElement x="12" y="1" width="543" height="1" />
<graphicElement>
<pen lineWidth="0.5"/>
</graphicElement>
</line>
<line>
<reportElement x="254" y="17" width="301" height="1" />
<graphicElement>
<pen lineWidth="0.5"/>
</graphicElement>
</line>
</band>
</summary>
</jasperReport>
答案 0 :(得分:1)
向iReport添加子报告有几个步骤。我会尽力一步一步解释
<强>步骤进行:强>
1)使用将在未来子报表中用作参数的值创建空白报告
2)将子报表元素拖动到详细信息区域 。
3)当弹出向导时 - 使用现有报告或创建新报告。
4)使用设计查询删除子报表中需要的字段
5)确保使用与填写主报告相同的连接
6)现在将字段等放在子报表上并进行设计。您创建参数的任何值,如“Part.num”,那么您必须将其包含在初始主报告中。
7)转到主报告并单击子报告框,然后向下滚动属性选项卡。在哪里可以看到“参数”字段。双击打开并点击添加。 M ***确定你将此参数命名为与在子报表***中命名的方式完全相同,然后只需搜索该字段并点击即可。
8)编译它们并继续为您添加或从子报表/子报表中删除的每个参数执行完全相同的步骤。
我希望这有帮助,如果您有任何问题,请告诉我。
消息来源: http://community.jaspersoft.com/wiki/subreports-jaspersoft-studio