允许用户上传jasperReport文件,然后通过JSF页面进行编译

时间:2011-02-03 12:59:52

标签: web-applications jsf-2 jasper-reports

我已经在网上搜索了好几个星期,以获得一个体面的教程来帮助我使用我正在开发的JSF应用程序

我需要允许用户将Jasper Reports(.jasper或.jrxml)上传到服务器,我已经完成了

现在我遇到的问题是如何让用户点击我创建的文件树中的链接,并在浏览器中以pdf,excel,html等显示报告......

我在网上看到一些关于如何编译它们的教程,但这一切似乎都非常令人困惑,而且从来都不是我想要的

我在JSF托管bean中使用netbeans 6.9.1,JSF2.0和Java

1 个答案:

答案 0 :(得分:2)

要查看报告,您必须先填写报告。要填写报告,您需要做一些事情:报告文件(.jrxml或.jasper),参数映射和数据库连接。如果使用.jrxml文件,则必须先编译它。要编译.jrxml文件,首先加载它:

JasperDesign jasperDesign = JRXmlLoader.load(reportFile);

然后编译它:

JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

传递给JRXmlLoader.load()方法的reportFile变量是一个String,其中包含.jrxml文件位置和文件名的文件路径(“C:\ ReportFile \ TestReport.jrxml”)。

现在您已经加载并编译了.jrxml文件,您可以填写报告。注意:如果使用.jasper文件,则可以直接跳到此步骤。您作为参数传递的compiled_file_name是.jasper文件的文件位置和名称。

要填写报告,请调用JasperFillManager并将其结果分配给JasperPrint变量:

JasperPrint jasperPrint = JasperFillManager.fillReport(compiled_file_name, jasperParameter, jdbcConnection);

注意:如果您正在加载和编译.jrxml文件,如上所示,您只需使用jasperReport作为JasperFillManager.fillReport方法中的第一个参数,因为它保存了您编译的文件。 compiled_file_name是对已编译的.jasper文件的引用。填好的报告将存储在jasperPrint中,这是您将传递的各种查看和导出选项。

现在查看您的文件。查看它的最简单方法是使用JasperViewer:

JasperViewer.viewReport(jasperPrint);

要将报告导出为特定的文件格式,请使用JasperExportManager:

JasperExportManager.exportReportToPdfFile(jasperPrint, file_export_location);

file_export_location是保存文件的文件位置和名称。 JasperExportManager中有各种导出器,您应该在NetBeans中看到它们。我将报告导出到.pdf。为了显示它们,我让我的方法将视图发送到另一个包含<iframe width="800px" height="500px" src="relative location of your file" />

的页面

希望有所帮助。

您可能还想考虑购买The Ultimate Guide to JasperReportsThe Ultimate Guide to iReports。两者都是如何使用JasperReports的很好的指南。

更新:

正如我在下面的评论中所说,我不记得我在哪里得到这个列表(我丢失了链接),但这些是我在项目中使用的.jar文件(我已经尝试过将它削减,但是最终得到错误,所以我采取了新的道路,只包括他们所有):

  

ant-1.7.1,antlr-2.7.5,   BBQ-1.5-beta1,barcode4j-2.0,   batik-anim,batik-awt-util,   蜡染桥,蜡染布,蜡染布,   batik-ext,batik-gvt,蜡染解析器,   蜡染脚本,蜡染svg-dom,   batik-svggen,batik-util,batik-xml,   batik-5.2,bsh-2.0b4,   公地的BeanUtils-1.8.0,   公地集合-2.1.1,   公共沼气池-1.7,   公地javaflow-20060411,   共享记录-1.0.4,   groovy-all-1.7.5,hibernate3,   hsqldb-1.8.0-10,iText-2.1.7,   jaxen-1.1.1,jcommon-1.0.15,   jdt-compiler-3.1.1,jfreechart-1.0.12,   jpa,jxl-2.6.10,log4j-1.2.15,   mondrian-3.1.1.12687,png-encoder-1.5,   poi-3.6,rhino-1.7R1,saaj-api-1.3,   序列化器,servlet,   spring-beans-2.5.5,spring-core-2.5.5,   xalan-2.7.1,xercesImpl-.7.0,
  xml-apis,xml-apis-ext

希望有所帮助。