Jasper reports 在JasperStudio中将主参数传递给子数据集
我用JasperStudio 5.5创建了一个报告,其中有许多在主数据集中定义的参数,以及许多需要这些参数的子数据集(用表定义) 情况: /主要/参数:myPar /main/mySubDataSet1/Jasper reports 在JasperStudio中将主参数传递给子数据集,jasper-reports,report,Jasper Reports,Report,我用JasperStudio 5.5创建了一个报告,其中有许多在主数据集中定义的参数,以及许多需要这些参数的子数据集(用表定义) 情况: /主要/参数:myPar /main/mySubDataSet1/ /main/mySubDataSet2/ … /main/mySubDataSetN/ 子数据集需要在其查询中使用此参数:从选项卡t中选择*其中t.attr=$p!{myPar} 所以,我的问题是,子数据集无法在这个主要参数处访问,在我尝试编译的所有时间里,程序都向我发送“Parameter
/main/mySubDataSet2/
…
/main/mySubDataSetN/ 子数据集需要在其查询中使用此参数:从选项卡t中选择*其中t.attr=$p!{myPar} 所以,我的问题是,子数据集无法在这个主要参数处访问,在我尝试编译的所有时间里,程序都向我发送“Parameter not found:myPar” 如何在子数据集中使用myPar
p、 s:我读了这个线程(基于iReport),但没有成功…好吧,您需要用实际使用的值填充子数据集参数。在这种情况下,列出子数据集中项目的表需要声明必要的参数,并将报表级数据集参数的值分配给它们 在jrxml中听起来:
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="mySubDataSet1" uuid="bbe7937c-a8f1-4838-811a-3f11ec1f8e35">
<datasetParameter name="myPar">
<datasetParameterExpression><![CDATA[$P{myPar}]]></datasetParameterExpression>
</datasetParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
...
</jr:table>
...
有关详细信息:
<subDataset name="dsLines" uuid="a47307ff-90a8-476f-afd1-0fd8aa0517d0">
<parameter name="formalId" class="java.lang.String"/>
<queryString language="SQL">
<![CDATA[
SELECT s.formalid, sl.*
FROM salesorder s INNER JOIN salesorderline sl
ON (s.id = sl.salesorder_id)
WHERE s.formalid = $P{formalId}
]]>
</queryString>
<field name="qty" class="java.math.BigDecimal"/>
...
...
...
另一位用户向我发送了该方法:我的错误是尝试在子数据集声明中使用父报表参数的值指定默认值。这将使该值无效。相反,使用上述解决方案将使其工作。谢谢非常感谢。。。这真的很有帮助
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="dsLines" uuid="3ef5ec78-ab18-4f44-88e6-f99f3eafac07">
<datasetParameter name="formalId">
<datasetParameterExpression><![CDATA[$F{formalid}]]></datasetParameterExpression>
</datasetParameter>
</datasetRun>
<jr:column width="29" uuid="f675a273-7ea6-4bd4-8a55-c7522dfea2a8">
...