0

我想做的似乎很简单。

我有一个包含子报表元素的主报表。子报表由 a 填充JRAbstractBeanDataSource,其中包含 0-n 个子报表的集合。

在主报告中,可以找到子报告:

<subreportExpression  class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + $F{subReportFileName}]]></subreportExpression>

这工作正常,SUBREPORT_DIR 作为参数传递给代码中的数据源。

不过,我需要做的是根据子报表属性选择不同的报表名称,例如:

<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "$F{subReportFileName}"]]></subreportExpression>

也就是说,允许数据源上的子报表数据集合中的每个项目指定.jasper文件名(即,允许它选择要使用的子报表)。

也许有更好的方法来思考/解决这个问题。

4

2 回答 2

0

只是附注 - 当您想在问题中包含代码时,请使用合成窗口上方的代码按钮。我们看不到你的例子。如果您单击合成窗口右上角的橙色小方块内的问号,它将带您进入 Markdown 编辑教程。

我有点不清楚你想要完成什么。如果您想在报表中包含所有子报表并需要一种方法来遍历目录中它们的名称,或者您是否希望子报表的选择是动态的,我不确定从集合中。我不知道在主报告中包含多个子报告的方法。如果您想动态选择报告名称,为什么不将子报告名称作为参数从您的代码传递给您的报告。您可以根据您选择的任何标准执行您的逻辑来决定您想要的报告名称。如果这不是您想要的,也许您的问题中的更多细节会有所帮助。

于 2011-01-27T21:26:04.690 回答
0

我试图找到一种方法来设置报告名称,因为主报告迭代了日期源项目。相反,我只是使查询完全动态,作为参数传入。这就是我真正需要为每个子报告更改的内容。

于 2012-02-08T19:43:30.483 回答