【问题标题】:Crosstab Data is empty when using a Java Bean Data Source?使用 Java Bean 数据源时交叉表数据为空?
【发布时间】:2019-10-03 03:12:31
【问题描述】:

我在使用 Java Bean 数据源 使用交叉表中的数据源表达式作为 $P{REPORT_CONNECTION}

时遇到问题

我可以成功填充详细部分的数据,

但是当我尝试在交叉表中使用 bean 数据时;预览时交叉表为空。

有谁知道在这个特定的设置上该怎么做?

【问题讨论】:

    标签: jasper-reports javabeans


    【解决方案1】:

    $P{REPORT_CONNECTION} 是 JDBC 数据库连接,因为您使用的是“Java Bean 数据源”,所以您不应该传递数据库连接,而是通过 JRDatasource

    通过指定dataSourceExpression 将数据源传递给交叉表

    <crosstabDataset>
        <dataset>
            <datasetRun subDataset="Dataset1" uuid="bcc868c0-ea35-4a17-b570-2d51dbe93e8d">
                <dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
            </datasetRun>
        </dataset>
    </crosstabDataset>
    

    然而,

    如果您喜欢使用当前的主报表数据源(如上),您可以简单地不指定任何数据集或连接,这将自动使用主数据源,无需定义子数据集。

    但是,

    您需要小心,JRDatasource 在填充时被“消耗”,因此如果您已经使用过一次(jrxml 中存在详细带),它会被消耗。要更好地理解这一点,请参阅例如 How to use same JRBeanCollectionDataSource on multiple sub reports?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多