gpt4 book ai didi

jasper-reports - 如何将 CSV 数据源传递给子报表

转载 作者:行者123 更新时间:2023-12-02 20:10:25 25 4
gpt4 key购买 nike

我需要您的帮助将 csv 数据源传递到 subReports 。

我非常感谢您的建议或解决方案。

我使用的是iReport 5.0专业版
我有一个非常复杂的报告,该报告从多个(大约 10 个)csv 文件中获取数据。

我已经为报告的每个部分创建了子报告,并且每个子报告作为单独的报告都可以正常工作。

但是当我尝试将所有子报表集成到主报表中时,我无法将数据源传递给子报表。

在主报告中,我创建了一个名为 CSVDS 的参数,其类型为 net.sf.jasperreports.engine.data.JRCsvDataSource ,其默认值如下:new net.sf.jasperreports.engine.data.JRCsvDataSource(new File("D:\\client\\data\\SR1.csv"))为了确保 CSVDS 从 SR1.CVS 获取值(value),我添加了一个带有以下表达式的文本框,它返回 true

$P{CVSDS}.next() -- 返回 true -- 这意味着 CSVDS 从 SR1.csv 的数据中填充

此外,我将 $P{CVSDS} 作为数据源传递给子报表

<subreport>

<reportElement uuid="2f0d77ac-ce39-4487-8f31-0e15e03f5dfd" x="0" y="0" width="592" height="437"/>

<dataSourceExpression><![CDATA[$P{CSVDS}]]></dataSourceExpression>

<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "P1.jasper"]]></subreportExpression>

</subreport>

但子报告变为空白。

所以,总的来说,我想知道如何将 csv 数据源传递给 subReports 。

PS:我已经尝试了 Stack Overflow 和 Jasper 社区网站上几乎所有可用的解决方案,但没有任何效果。

最佳答案

您需要将数据源表达式转换为正确的类型:

<subreport>

<reportElement uuid="2f0d77ac-ce39-4487-8f31-0e15e03f5dfd" x="0" y="0" width="592" height="437"/>

<dataSourceExpression><![CDATA[(net.sf.jasperreports.engine.data.JRCsvDataSource)$P{CSVDS}]]></dataSourceExpression>

<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "P1.jasper"]]></subreportExpression>

</subreport>

关于jasper-reports - 如何将 CSV 数据源传递给子报表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19013304/

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