我被要求使用 Jaspersoft studio 来生成报告模板来开发报告,然后使用 jaspersoft 服务器让用户使用 CSV 文件中的数据而不是数据库来按需生成报告。
我已经能够使用 studio 在本地生成报告,将报告上传到服务器,但我无法从那里生成报告。
我一直在四处寻找,提出的每个解决方案都是将数据注入数据库,然后使用它生成报告。但在 jaspersoft 社区的其他帖子中,据说 CSV 支持将在 2014 年初添加,所以我猜它已经存在了。
所以,我认为可以解决这个问题的是:
1)将CSV文件添加到服务器,但如何链接报告(.jrxml)和dataAdapter(.xml)?
现在,我已将其上传到/contentFiles/xls/energy.csv,但如果我将其放在数据适配器上,jaspersoft 找不到它:
我假设因为服务器没有IP,所以它可能认为这是一个本地文件。如果我使用服务器的IP,在我的例子中,http://...***:8080/jasperserver/(*出于安全原因)并在/contentfiles/xls/energy之后添加.csv 它仍然可以找到它。那么,如何将适配器链接到服务器上的csv文件呢?
另外,由于这个 csv 文件会不时生成:
2)jaspersoft 服务器上有一个文件夹可以放置或生成要更新的 csv 文件吗?
为了在 JasperReports Server 中正确部署基于文件的
dataAdapter
,需要执行几个步骤。以下步骤是使用 Jaspersoft Studio 6.4.0 和 JasperReports Server Pro 6.4.0 执行的。
(我正在使用 csvdatasource 示例中的 CsvDataSouce.txt)
首先从存储库资源管理器视图中指向您的文件并设置列名称来创建数据适配器。
然后,右键单击新创建的适配器并选择“导出到文件”选项,将其导出到文件 (我将其与 CSV 文件一起保存)
选项
<property name="ireport.jasperserver.url" value="http://localhost:8080/jasperserver/"/>
<property name="ireport.jasperserver.user" value="jasperadmin"/>
<property name="ireport.jasperserver.report.resource" value="/public/CsvReport_files/main_jrxml"/>
<property name="ireport.jasperserver.reportUnit" value="/public/CsvReport"/>
您的 CSV 文件现在是 JasperReports Server 存储库资源,您可以随时通过 Studio 或 Server 的 UI 更新该资源。如果您不希望它驻留在 JasperReports 服务器端,您可以在创建/编辑 dataAdapter 文件时简单地使用指向您的文件的外部 URL。