gpt4 book ai didi

jasper-reports - 如何将参数传递给表组件?

转载 作者:行者123 更新时间:2023-12-04 17:17:11 31 4
gpt4 key购买 nike

我正在使用Jaspersoft Studio创建报告,但发现将参数传递到表时遇到问题。

报告布局和结果

Report layout Result

从这些图片中可以看到,当我尝试使用参数设置表头时,我得到了null

为了获取值,我在报表参数列表和表数据集参数列表中创建了相同的参数名称。显然,它根本不起作用。

我尝试按照以下说明进行操作:jaspersoft-passing-parameter-to-tables

但是我的数据源来自net.sf.jasperreports.engine.data.JRBeanCollectionDataSource参数,我找不到成功完成本教程的方法。

相关代码:

<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="subreport" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="19165c65-293a-42f1-9c92-0f4ceacaaa39">
.....
<subDataset name="ATableDataset" uuid="f7f9da25-c513-46bb-92c2-5a97ee76eb5e">
<parameter name="tableHeadA" class="java.lang.String"/>
<parameter name="column1AHead" class="java.lang.String"/>
<parameter name="column2AHead" class="java.lang.String"/>
<parameter name="column3AHead" class="java.lang.String"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="column1A" class="java.lang.String"/>
<field name="column2A" class="java.lang.String"/>
<field name="column3A" class="java.lang.String"/>
</subDataset>
.....
<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="ATableDataset" uuid="8ac10f33-c9e3-4678-8280-2830a76f72c6">
<dataSourceExpression><![CDATA[$P{AtableDatasource}]]></dataSourceExpression>
</datasetRun>
....
</jr:table>
......
</jasperReport>

完整代码请参见 gitHubsample\src\main\resources\subreport.jrxml

最佳答案

要将参数传递给表组件,您需要:

1.使用所需的类在数据源中定义参数

例子

<subDataset name="TableDataset" uuid="da383fc2-e830-42d2-a822-6a65972efe4c">
<parameter name="myParameter" class="java.lang.String"/>
.......
</subDataset>

2.使用datasetParameter标签向传递报告参数,变量或字段

例子

<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="TableDataset" uuid="5c37a139-a9dc-4f1b-b231-5dd82794ae4f">
<datasetParameter name="myParameter">
<datasetParameterExpression><![CDATA[$P{reportParameter}]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[....]]></dataSourceExpression>
</datasetRun>
......
</jr:table>

在您的代码中,我找到了1,但没有找到2。

关于jasper-reports - 如何将参数传递给表组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35300072/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com