【发布时间】:2021-04-11 18:26:35
【问题描述】:
我需要在主报表中放置一个变量,该变量的值来自子报表。我按照网上的说明进行操作,但我总是得到空值。为了测试,我将“18”放在子报表变量的表达式中,但返回null。
有人可以帮助我吗?我会把JRXML放在下面。
我在主报告中创建了一个变量 var1:
- 名称:var1
- 计算:系统
- 重置类型:报告
- 增量类型:无
在子报表中,我创建了变量 returnValue
- 计算:无计算函数
- 表达式:18
- 增量类型:无
- 重置类型:报告
在master中,我配置了返回值:
- 来自变量:returnValue
- 到变量:var1
- 计算类型:无
以下两个xml文件
大师
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 4.0.2 -->
<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="master" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<variable name="var1" class="java.lang.Integer" calculation="System"/>
<title>
<band height="79" splitType="Stretch">
<staticText>
<reportElement x="153" y="26" width="100" height="30"/>
<text><![CDATA[MASTER]]></text>
</staticText>
</band>
</title>
<summary>
<band height="246" splitType="Stretch">
<subreport>
<reportElement x="80" y="10" width="360" height="50"/>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<returnValue subreportVariable="returnValue" toVariable="var1"/>
<subreportExpression><![CDATA["sub1.jasper"]]></subreportExpression>
</subreport>
<textField>
<reportElement x="149" y="147" width="100" height="30"/>
<textFieldExpression><![CDATA[$V{var1}]]></textFieldExpression>
</textField>
</band>
</summary>
</jasperReport>
子报告
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 4.0.2 -->
<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="sub1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<variable name="returnValue" class="java.lang.Integer">
<variableExpression><![CDATA[18]]></variableExpression>
</variable>
<title>
<band height="79" splitType="Stretch">
<staticText>
<reportElement x="212" y="24" width="100" height="30"/>
<text><![CDATA[SUB 1]]></text>
</staticText>
</band>
</title>
</jasperReport>
【问题讨论】: