使用 Java Bean 数据源时交叉表数据为空?
Crosstab Data is empty when using a Java Bean Data Source?
我在使用 Java Bean 数据源 的 jasper 报告中遇到问题,在交叉表中使用数据源表达式作为 $P{REPORT_CONNECTION}
我可以在详细信息部分成功填充数据,
但是当我尝试在交叉表中使用 bean 数据时;交叉表在预览时为空。
有人知道在这个特定设置上该怎么做吗?
$P{REPORT_CONNECTION}
是 JDBC 数据库连接,因为你使用的是 "Java Bean Datasource",你不应该传递数据库连接,而是 JRDatasource
.
通过指定 dataSourceExpression
将数据源传递到交叉表
<crosstabDataset>
<dataset>
<datasetRun subDataset="Dataset1" uuid="bcc868c0-ea35-4a17-b570-2d51dbe93e8d">
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
</datasetRun>
</dataset>
</crosstabDataset>
不过,
如果您想使用当前的主报表数据源(如上),您可以简单地不指定任何数据集或连接,这将自动使用主数据源,无需定义子数据集。
但是,
您需要小心,JRDatasource
填充时是 "consumed",因此如果您已经使用过一次(jrxml 中存在详细信息带),它就会被消耗掉。要更好地理解这一点,请参见
我在使用 Java Bean 数据源 的 jasper 报告中遇到问题,在交叉表中使用数据源表达式作为 $P{REPORT_CONNECTION}
我可以在详细信息部分成功填充数据,
但是当我尝试在交叉表中使用 bean 数据时;交叉表在预览时为空。
有人知道在这个特定设置上该怎么做吗?
$P{REPORT_CONNECTION}
是 JDBC 数据库连接,因为你使用的是 "Java Bean Datasource",你不应该传递数据库连接,而是 JRDatasource
.
通过指定 dataSourceExpression
<crosstabDataset>
<dataset>
<datasetRun subDataset="Dataset1" uuid="bcc868c0-ea35-4a17-b570-2d51dbe93e8d">
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
</datasetRun>
</dataset>
</crosstabDataset>
不过,
如果您想使用当前的主报表数据源(如上),您可以简单地不指定任何数据集或连接,这将自动使用主数据源,无需定义子数据集。
但是,
您需要小心,JRDatasource
填充时是 "consumed",因此如果您已经使用过一次(jrxml 中存在详细信息带),它就会被消耗掉。要更好地理解这一点,请参见