如何将值/变量从子报表传递到主报表?

编程入门 行业动态 更新时间:2024-10-24 08:32:25
本文介绍了如何将值/变量从子报表传递到主报表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我只想从子报表向主报表返回一个值,但在执行报表时总是显示null。使用iReport 5.1.0。

主报表 <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="jasperreports.sourceforge/jasperreports" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="jasperreports.sourceforge/jasperreports jasperreports.sourceforge/xsd/jasperreport.xsd" name="report4" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ce028d85-f7e8-4abd-ad6b-e3b2ba04d14e"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA["C:\Users\DellXFR\"]]></defaultValueExpression> </parameter> <variable name="z" class="java.lang.Integer" calculation="System"> <variableExpression><![CDATA[8]]></variableExpression> </variable> <background> <band splitType="Stretch"/> </background> <title> <band height="79" splitType="Stretch"/> </title> <detail> <band height="125" splitType="Stretch"> <subreport> <reportElement uuid="0c501730-d98a-4982-9953-2939f127ad9e" x="40" y="10" width="200" height="100"/> <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> <returnValue subreportVariable="x" toVariable="z"/> <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report4_subreport1.jasper"]]></subreportExpression> </subreport> <textField evaluationTime="Band"> <reportElement uuid="9020a8d9-5799-4907-b8a3-704f41ffdcc0" x="399" y="73" width="100" height="20"/> <textElement/> <textFieldExpression><![CDATA[$V{z}]]></textFieldExpression> </textField> </band> </detail> <summary> <band height="42" splitType="Stretch"/> </summary> </jasperReport> 子报表 <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="jasperreports.sourceforge/jasperreports" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="jasperreports.sourceforge/jasperreports jasperreports.sourceforge/xsd/jasperreport.xsd" name="report4_subreport1" language="groovy" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="78290b3a-34c2-496e-86ff-e213ca2c1039"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <queryString language="SQL"> <![CDATA[select * from ot;]]> </queryString> <field name="salscheme_id" class="java.lang.String"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <field name="ot_amount" class="java.lang.Double"> <fieldDescription><![CDATA[]]></fieldDescription> </field> <variable name="x" class="java.lang.Integer"> <variableExpression><![CDATA[1]]></variableExpression> </variable> <group name="salscheme_id"> <groupExpression><![CDATA[$F{salscheme_id}]]></groupExpression> </group> <background> <band splitType="Stretch"/> </background> <detail> <band height="125" splitType="Stretch"/> </detail> </jasperReport> 推荐答案

将变量从子报表传递到主报表,如下所示:

  • 在主报表中,创建一个变量:

    <variable name="subReportValue" class="java.lang.Integer"/>

    注意:请勿设置计算值。

  • 在子报表中,还要创建一个变量:

    <variable name="returnValue" class="java.lang.Integer" calculation="First"> <variableExpression><![CDATA[$F{myField}]]></variableExpression> </variable>

    设置计算和要返回的内容。注意:尊重主表变量的类值,需要同类。

  • 在主报表中,设置子报表标签中的子报表返回值:

    <returnValue subreportVariable="returnValue" toVariable="subReportValue"/>
  • 如果要将subReportValue放在表体范围内,只需设置textField的evalutationTime即可,因此需要在子报表之后(否则仍为空)。

    <textField evaluationTime="Band"> <reportElement x="251" y="109" width="100" height="20"/> <textElement lineSpacing="Single"/> <textFieldExpression class="java.lang.Integer"><![CDATA[$V{subReportValue}]]></textFieldExpression> </textField>
  • 如果它不在用于分组的详细信息范围集合evaluationTime="Report"中。要了解不同的评估时间,请参阅EvaluationTimeEnum

    完成后重新编译子报表,因为主报表引用的是已编译的.jasper文件,而不是.jrxml源。

    更多推荐

    如何将值/变量从子报表传递到主报表?

    本文发布于:2023-10-30 11:57:11,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1542780.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:报表   变量   如何将   从子

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!