在将csv数据源传递给subReports时,我需要您的帮助。
我将非常感谢您的建议或解决方案。
我使用的是iReport 5.0专业版。
我有一个非常复杂的报告,该报告从多个csv文件中获取数据。
我已经为报告的每个部分创建了subReports,每个subReport都可以作为indivisual报告正常工作。
但是,当我试图将所有subReports集成到一个主要报告中时,我就无法将数据源传递给subReports。
在主报告中,我创建了一个名为net.sf.jasperreports.engine.data.JRCsvDataSource类型的CSVDS参数,其默认值为:new net.sf.jasperreports.engine.data.JRCsvDataSource(new File("D:\\client\\data\\SR1.csv")),为了确保CSVDS从SR1.CVS获得值,我添加了一个具有以下表达式的textbod,并返回true
$P{CVSDS}.next() --返回true --这意味着CSVDS从SR1.csv的数据中填充。
此外,我将$P{CVSDS}作为数据源传递给subReport。
<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>但subReports却是一片空白。
因此,总的来说,我想知道如何将csv数据源传递给subReports。
PS :我已经尝试了几乎所有可用的解决方案,在Stack溢出和Jasper社区网站,但没有对我有效。
发布于 2014-09-04 06:08:53
您需要将数据源表达式转换为正确的类型:
<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>https://stackoverflow.com/questions/19013304
复制相似问题