use*_*250 19 jasper-reports subreport
我有一个JasperReport,我将报告日期从主报告传递到子报告.这很好用.我还有另一个我将相同参数传递给具有多个SubReports的子报表.当我在Ireports中预览它时,它的所有页面都显示为空白,这意味着正在调用子子报告,但报告日期未被传递,因为所有子子报告SQL都以报告日期为条件.如何将报告日期字段输入子子报告?当我预览SubReport并在报告日期中输入所有报告日期工作时,所有四个页面都填充了正确的数据.
Ahm*_*lem 35
按照以下步骤将参数传递到子报表:
DATE_PARAM
.该参数从主报表传递到子报表.
Jac*_*oen 17
我猜他们正在使用默认值.
假设主报表中的参数名称是,TEST_DATE
并且子报表中的名称是,TEST_DATE2
那么您需要subreport
在XML中的开始元素和结束元素之间添加以下内容:
<subreportParameter name="TEST_DATE2">
<subreportParameterExpression><![CDATA[$P{TEST_DATE}]]></subreportParameterExpression>
</subreportParameter>
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里有一个包含主报表和子报表的示例,只需将值更改为SUBREPORT_DIR
指向放置它们的位置即可.
report1.jrxml
<?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="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="7e2bc622-d768-437e-8c33-fc777bc06f8c">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="TEST_DATE" class="java.util.Date"/>
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["C:\\Reports\\"]]></defaultValueExpression>
</parameter>
<pageHeader>
<band height="83" splitType="Stretch">
<textField>
<reportElement uuid="4a2cf434-4473-48db-a89f-17a19d25cc4c" x="0" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$P{TEST_DATE}]]></textFieldExpression>
</textField>
<subreport>
<reportElement uuid="54c02e96-6d47-49db-9b9c-58e1dd153242" x="0" y="30" width="200" height="35"/>
<subreportParameter name="TEST_DATE2">
<subreportParameterExpression><![CDATA[$P{TEST_DATE}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report1_subreport1.jasper"]]></subreportExpression>
</subreport>
</band>
</pageHeader>
</jasperReport>
Run Code Online (Sandbox Code Playgroud)
report1_subreport1.jrxml
<?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="report1_subreport1" language="groovy" pageWidth="200" pageHeight="35" whenNoDataType="AllSectionsNoDetail" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="3cedac90-63cb-43cb-9d0f-e401543e65dd">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<parameter name="TEST_DATE2" class="java.util.Date" isForPrompting="false"/>
<pageHeader>
<band height="35" splitType="Stretch">
<textField>
<reportElement uuid="ca7f3da6-79f0-4d95-92db-6c5dbf777df9" x="0" y="15" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$P{TEST_DATE2}]]></textFieldExpression>
</textField>
</band>
</pageHeader>
</jasperReport>
Run Code Online (Sandbox Code Playgroud)
Sha*_*rad 11
如果您使用iReport创建报告Subreport
,请在iReport中打开主报告,然后选择并转到property
报告部分,单击Parameters
属性并单击Copy from master
选项卡.从那里,您可以选择要传递给子报告的参数.
归档时间: |
|
查看次数: |
68955 次 |
最近记录: |