如何将 Jasper Report 输出直接存储在数据库表中,中间没有任何步骤
Posted
技术标签:
【中文标题】如何将 Jasper Report 输出直接存储在数据库表中,中间没有任何步骤【英文标题】:How to store Jasper Report output directly in a database table without any steps in between 【发布时间】:2016-09-30 14:03:31 【问题描述】:这似乎是一个简单的问题,但是否可以将 JasperReport 的输出直接存储在数据库表中,而无需任何其他步骤? 据我所知,Jasper 会生成一个输出(例如 PDF),我可以下载和/或在浏览器中显示。要将其存储到数据库中,我需要一个额外的步骤来将 PDF 从文件系统传输到数据库表。 该请求的原因是,我必须生成并保留交易收据。
我的编程环境是:
Oracle APEX Oracle 数据库 11.0.2 Apache Tomcat有什么想法吗?谢谢!
【问题讨论】:
感谢戴夫,您的回答。当然,我可以使用 APEX 将结果 PDF 存储在数据库中,这不是问题。我想直接从 Jasper 存储它,中间没有任何其他步骤。 JasperReports 是一个 Java 库。 Jaspersoft Studio 是一个 IDE,用于开发使用所述库填写的报告模板。 IDE 和 JasperReports 都没有将填充的报告流式传输到数据库的内置功能。需要定制软件。见here 和here。 【参考方案1】:我找到了一个很好的解决方案。要使用 JasperReports 从 Oracle APEX 生成 PDF,有一个名为 JasperReportsIntegration 的集成框架 该框架包含多个将 Oracle APEX 与 Jasper 连接起来的函数。还有一个功能可以将报告作为 blob 获取。这个 blob 可以很容易地保存在数据库表中。
begin
xlib_jasperreports.set_report_url('<url of the Application>');
xlib_jasperreports.get_report(p_rep_name => :p_rep_name,
p_rep_format => :p_rep_format,
p_data_source => :p_data_source,
p_rep_locale => :p_rep_locale,
p_rep_encoding => :p_rep_encoding,
p_additional_params => :p_additional_params,
p_out_blob => :p_out_blob,
p_out_mime_type => :p_out_mime_type);
end;
这对我来说很完美。
【讨论】:
以上是关于如何将 Jasper Report 输出直接存储在数据库表中,中间没有任何步骤的主要内容,如果未能解决你的问题,请参考以下文章
Jasper report用JSON文件调试预览(附解决JSON报错)