`
Ivan_Pig
  • 浏览: 386795 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JasperReports Web Application Sample (翻译)

阅读更多

Web Application Sample

This sample Web application was created to show that the JasperReports library is perfect for using in Web environment.
这个web示例说明了JasperReports能够胜任web环境开发。

You can see here how to generate reports on the server side using Java Server Pages or Java Servlets and how to view them on the client side, either by using Java Applets or by exporting them to PDF, HTML, XLS or RTF format.
你能看见如何在服务端用jsp或servlet来发布报表和如何在客户端查看,可以使用applets或pdf,html,xsl,ptf格式都可以。


Attention! Try the application menu options in the same order in which they are displayed. Otherwise, important steps involved when working with the JasperReports library might get skipped and error messages will be displayed, instead of the expected output.
注意!按照标签显示的顺序来执行他们。否则,关键步骤被跳过的话可能就会报错,而不会出现期望的结果了。

JRXML Report Design Compilation

Note that in the majority of cases, the JRXML report template compilation process is an application build-time process and not a runtime process.
注意了,在多数情况下,JRXML格式的报表模板的编译都是在应用程序的创建时候进行的而不是在运行时进行的


Normally, report templates have to be compiled only once, just like we compile Java source files and then we deploy them with the application. If the report templates are not dynamic, there is no point on recompiling them at runtime. Report definitions are static and only the data supplied to them is different with every report filling operation.
通常情况下,报表模板只需要编译一次,就像我们编译java源代码一样。然后我们把它们发布到应用程序上去。如果报表模板不是动态的,在运行时他们不会再编译一次了。报表时静态的,而变得只是填充的数据。


However, sometimes applications do require runtime report template compilation, so here you can see how this can be achieved in Web environment.
但是,有时候应用程序需要在运行时编译报表模板,所以这里你能看见在web环境下是如何完成编译的。


The following example performs the compilation of the WebappReport.jrxml file and produces the WebappReport.jasper file.
下面的例子编译WebappReport.jrxml文件并产生WebappReport.jasper文件。

jsp 代码
  1. <%@ page import="net.sf.jasperreports.engine.*,net.sf.jasperreports.engine.util.JRProperties" %>   
  2.   
  3. <%   
  4.     JasperCompileManager.compileReportToFile(application.getRealPath("/reports/WebappReport.jrxml"));   
  5. %>   

 

Filling Reports with Data

The servlet and the JSP below both show how a compiled report template (.jasper file) could be filled with data. They place the resulting net.sf.jasperreports.engine.JasperPrint object onto the HTTP session from where subsequent report viewing and exporting servlets and JSPs in this sample application will reuse it.
下面的servlet和jsp都显示了如何向编译过的报表模板里填充数据。填充数据后会获得net.sf.jasperreports.engine.JasperPrint 类型的结果。将其放到HTTP session里。在后面的viewing和exporting里还会用到。

jsp 代码
  1. <%@ page import="datasource.*" %>   
  2. <%@ page import="net.sf.jasperreports.engine.*" %>   
  3. <%@ page import="net.sf.jasperreports.engine.util.*" %>   
  4. <%@ page import="net.sf.jasperreports.engine.export.*" %>   
  5. <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>   
  6. <%@ page import="java.util.*" %>   
  7. <%@ page import="java.io.*" %>   
  8.   
  9. <%   
  10.     String reportFileName = application.getRealPath("/reports/WebappReport.jasper");   
  11.     File reportFile = new File(reportFileName);   
  12.     if (!reportFile.exists())   
  13.         throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");   
  14.   
  15.     Map parameters = new HashMap();   
  16.     parameters.put("ReportTitle""Address Report");   
  17.     parameters.put("BaseDir", reportFile.getParentFile());   
  18.                    
  19.     JasperPrint jasperPrint =    
  20.         JasperFillManager.fillReport(   
  21.             reportFileName,    
  22.             parameters,    
  23.             new WebappDataSource()   
  24.             );   
  25.                    
  26.     session.setAttribute(BaseHttpServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);   
  27. %>   

 

Exporting Reports to Other Formats Like PDF, HTML, XLS and RTF

Before testing the exporting functionality exposed on this page, the report has to be already filled using the fill report menu option so that the generated net.sf.jasperreports.engine.JasperPrint be available on the HTTP session for exporting.
在测试将报表显示到页面上之前,需要先fill report以得到net.sf.jasperreports.engine.JasperPrint并将其保存到HTTP session中。 

jsp 代码
  1. <%@ page import="datasource.*" %>   
  2. <%@ page import="net.sf.jasperreports.engine.*" %>   
  3. <%@ page import="net.sf.jasperreports.engine.util.*" %>   
  4. <%@ page import="net.sf.jasperreports.engine.export.*" %>   
  5. <%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>   
  6. <%@ page import="java.util.*" %>   
  7. <%@ page import="java.io.*" %>   
  8.   
  9. <%   
  10.     File reportFile = new File(application.getRealPath("/reports/WebappReport.jasper"));   
  11.     if (!reportFile.exists())   
  12.         throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");   
  13.   
  14.     JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());   
  15.   
  16.     Map parameters = new HashMap();   
  17.     parameters.put("ReportTitle""Address Report");   
  18.     parameters.put("BaseDir", reportFile.getParentFile());   
  19.                    
  20.     JasperPrint jasperPrint =    
  21.         JasperFillManager.fillReport(   
  22.             jasperReport,    
  23.             parameters,    
  24.             new WebappDataSource()   
  25.             );   
  26.                    
  27.     JRHtmlExporter exporter = new JRHtmlExporter();   
  28.   
  29.     StringBuffer sbuffer = new StringBuffer();   
  30.   
  31.     session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);   
  32.        
  33.     exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);   
  34.     exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);   
  35.     exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");   
  36.        
  37.     exporter.exportReport();   
  38. %>   
分享到:
评论
1 楼 liangzedong 2011-01-20  
哥,这个好像没有完哦!能不能全部放上去啊

相关推荐

    JasperReports 在web中的应用

    下面将详细介绍JasperReports在Web应用中的关键知识点。 **1. JasperReports基本概念** JasperReports是一个用Java编写的库,它支持多种数据源,如数据库连接、CSV文件、XML数据等。报表设计是通过JasperDesign(....

    jasperreports-flash 3.7.0web多页打印及其预览

    jasperreports-flash来实现web客户端打印的功能,避免了applet客户端打印在客户端安装jre的限制。jasperreports-flash只需要求客户端有能浏览swf文件的flash player就行了。可以根据自己的需求修改example.mxml文件...

    JasperReports-Server-Web-Services-Guide.pdf

    《JasperReports Server Web Services Guide》是一份详尽的指南,专为希望深入了解JasperReports Server网络服务功能的开发者和IT专业人士设计。该文档聚焦于版本4.7,提供了全面的指导,涵盖从REST到SOAP服务的各种...

    iReport+jasperReports开发java Application报表

    iReport和JasperReports是两个强大的开源工具,专门用于设计和实现这些报表。本文将深入探讨这两个工具,以及如何利用它们来开发Java应用报表。 iReport是JasperSoft公司推出的一款基于Eclipse的报表设计工具,它...

    iReport+jasperReports制作WEB报表pdf

    ### iReport+jasperReports 制作 WEB 报表 PDF 格式详解 #### 第一部分:环境配置 在开始介绍 iReport+jasperReports 如何制作 WEB 报表 PDF 格式之前,我们需要首先确保开发环境已经正确搭建好。下面将详细介绍...

    JasperReports webapp应用

    JasperReports 是一款功能强大的开源报表工具,它允许开发者创建复杂的报告并将其嵌入到Java应用程序、Web应用或独立的Java应用程序中。在JasperReports 3.0.0 版本中,引入了对Web应用程序的支持,使得报表的生成和...

    Jasperreports的文件包

    - **添加依赖**:将jasperreports-6.0.0.jar包引入到Web应用的类路径中,如将jar包放入WEB-INF/lib目录。 - **创建报表模板**:使用iReport设计报表模板(.jrxml文件),并将其部署到Web应用服务器上。 - **编写Java...

    JasperReports -- 客户端打印(WEB网页打印)

    **JasperReports -- 客户端打印(WEB网页打印)** JasperReports 是一个功能强大的开源报告生成库,广泛应用于Java应用程序中,用于创建复杂的报表和图表。它支持多种数据源,包括数据库查询、XML、CSV等,并且可以...

    jasperreports 3.7.5

    jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports,jasperreports

    jasperreports-applet-5.1.0.jar

    总结,JasperReports Applet 5.1.0是JasperReports在Web环境下的一种创新尝试,它通过applet技术实现了报表的在线打印,为开发者提供了更灵活的报表展示方案。理解并掌握这个特性,有助于提升Web应用的报表功能,为...

    jasperreports所有的jar包

    虽然GWT主要用于开发客户端Web应用,但其也可能通过GWT-RPC与服务器端的JasperReports进行交互,展示报表数据。 4. **jasperreports-javaflow-4.5.0.jar、jasperreports-4.5.0.jar、jasperreports-4.0.1.jar**:...

    JASPERREPORTS 安装

    JasperReports is a content-rendering library, not a standalone application. It cannot run on its own and must be embedded in another client- or server-side Java application. JasperReports is a pure ...

    jasperreports-4.5.0整套的jar包

    `jasperreports-applet-4.5.0.jar` 包含了在 Web 应用中嵌入 JasperReports 报表的 Applet 相关组件。在早期的 Web 开发中,Applet 是一种将 Java 代码运行在客户端浏览器上的方式,这使得用户可以在网页中直接查看...

    jasperreports

    JasperReports支持多种数据源,包括SQL查询、Java集合、XML文件、Web服务等。数据集(Dataset)是JasperReports处理数据的基本单元,可以进行聚合、过滤和排序操作。 6. **报表渲染与导出** 完成设计后,...

    JasperReport+Servlet Web应用之:打印预览

    **JasperReport与Servlet在Web应用中的打印预览** JasperReport是一款强大的开源报表工具,它允许开发者在Java应用程序、Web应用甚至独立的Java应用程序中创建复杂的报告。Servlet是Java Web开发中的一个重要组件,...

    jasperreports主要jar包

    commons-beanutils-1.7.0.jar;commons-collections-3.2.1.jar;commons-digester-2.1.jar;commons-logging-1.1.1.jar;itext-asian.jar;itextpdf-5.5.8.jar;jasperreports-6.1.1.jar;...jasperreports-javaflow-6.1.1.jar

    jasperreports-fonts.zip

    标题“jasperreports-fonts.zip”暗示这是一份与JasperReports相关的字体资源包,而描述中的“jasperreport支持中文jar包”则指出这个压缩文件包含的是为了使JasperReports能够正确显示中文字符的特殊组件。...

    jasperreports-6.1.1 jar包

    通过使用Java API或JSP标签,开发者可以方便地在Web应用中嵌入报表。此外,JasperReports还支持服务器部署,例如JasperServer,以实现更复杂的企业级报表管理和分发。 总之,jasperreports-6.1.1 jar包提供了全面的...

    JasperReports 3.6 Development Cookbook

    《JasperReports 3.6 Development Cookbook》是一本专注于JasperReports 3.6版本开发实践的书籍,旨在帮助开发者深入理解和应用这个强大的报表工具。JasperReports是Java平台上广泛使用的开源报表库,它允许开发者...

Global site tag (gtag.js) - Google Analytics