JRDataset 属性 CSV 文件

JRDataset property CSV file

我用 .CSV 输入文件作为 DataAdapter 建立了一个报告。之后我需要一个 table 来将一些数据放入它和一个链接的数据集中。问题是:如果我将 Dataset1 中的 "Default Data Adapter" 部分留空,则不会显示任何数据。事实上,要修复此报告,我必须将我的 DataAdapter 导出为 myDataAdapter.xml,然后将此文件放入 Dataset1 的“Default Data Adapter”部分(如附图所示)。

使用数据库我从来没有设置过这个属性。

有没有办法将这个 属性 作为参数传递? (我有一个 java 代码,我在其中调用了 jasperReport 并且我想动态地传递这个对象)。

或者有没有一种方法可以在不设置此 属性 的情况下运行报告?

在Table>数据集部分我有这样的情况:

我在其中设置了 JRDatasource 表达式,但它不起作用...

我还有一个问题。我可以动态地设置我的 .csv 在 DataAdapter.xml 中的位置吗?

是否可以从 java 代码实现 "myDataAdapter.xml" 并将其传递给报告??

提前致谢!

在 Java 代码中,您可以在 net.sf.jasperreports.engine.JasperReport 实例上设置属性,就像在官方存储库中的示例 here 中一样。相关代码如下所示:

...
JasperReport jasperReport = ...
...
jasperReport = (JasperReport)JRLoader.loadObjectFromFile("build/reports/ExcelXlsxQeDataAdapterReport.jasper");
jasperReport.setProperty(DataAdapterParameterContributorFactory.PROPERTY_DATA_ADAPTER_LOCATION, "data/XlsxQeDataAdapter.xml");
...

感兴趣的属性是net.sf.jasperreports.data.adapter,存储在DataAdapterParameterContributorFactory.PROPERTY_DATA_ADAPTER_LOCATION

数据适配器文件是传递一系列参数的便捷方法,net.sf.jasperreports.engine.data.JRCsvDataSource 是从这些参数构建的。如果你想跳过这个 属性,你必须手动提供 net.sf.jasperreports.engine.query.JRCsvQueryExecuterFactory.CSV_BUILTIN_PARAMETERS.

中列出的内置参数