`
zzc1684
  • 浏览: 1227979 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Spring MVC结合ireport采用javabean作为数据源的实现

阅读更多

这段时间一直在研究ireport如何和springmvc结合来实现报表的显示

 

网上查了很多资料,从各位前辈们的经验下结合自己的心得总结了SpringMVC结合ireport采用javabean作为数据源的实现方式,并总结代码如下:

 

Ireport采用javabean作为数据源实现数据的载入,对于java中,使用得到的list集合封装到JRBeanCollectionDataSource中来得到数据。最后通过JRHtmlExporter将结果展现给用户。

 

输出为html格式的设计方案:

 

    @RequestMapping("/customer/reporthtml.do")  
        public void report(HttpServletRequest request, HttpServletResponse response)  
                throws IOException, JRException {  
            String ctxpath = request.getSession().getServletContext()  
                    .getRealPath("/report/beandata.jasper");          
            List<HKCustomer> listInfo = this.hkCustomerService.listAllCustomers();  
            File reFile = new File(ctxpath);  
            Map parameters = new HashMap();//根据变量来查询      
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listInfo);  
            JasperPrint jasperPrint = JasperFillManager.fillReport(  
                    reFile.getPath(), parameters, ds);  
              
            JRHtmlExporter exporter = new JRHtmlExporter();       
            //输出为html格式的报表文件  
            exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint);  
            exporter.setParameter(JRHtmlExporterParameter.OUTPUT_STREAM,response.getOutputStream());       exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);  
          //移除设计报表中的空白行 exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);  
           exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING, "utf-8");  
              exporter.exportReport();  
        }  

 

 

输出为execl表格格式

 

 

@RequestMapping("/customer/reportxls.do")  
    public void exportxls(HttpServletRequest request,  
            HttpServletResponse response) throws IOException, JRException {  
        String ctxpath = request.getSession().getServletContext()  
                .getRealPath("/report/beandata.jasper");          
        List<HKCustomer> listInfo = this.hkCustomerService.listAllCustomers();  
        File reFile = new File(ctxpath);  
        Map parameters = new HashMap();       
        JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listInfo);  
        JasperPrint jasperPrint = JasperFillManager.fillReport(  
                reFile.getPath(), parameters, ds);    
        JRXlsExporter exporter=new JRXlsExporter();       
        exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint);  
        exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream());  
        exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);  
/设置输出的格式  
response.setHeader("Content-Disposition", "attachment;filename=customer.xls");  
response.setContentType("application/vnd_ms-excel");  
exporter.exportReport();

 

设置输出为Pdf格式的文件

@RequestMapping("/customer/reportpdf.do")  
  
         publicvoid exportpdf(HttpServletRequest request,HttpServletResponse response) throwsJRException, IOException{  
  
                   Stringctxpath = request.getSession().getServletContext()  
  
                                     .getRealPath("/report/beandata.jasper");                
  
                   List<HKCustomer>listInfo = this.hkCustomerService.listAllCustomers();  
  
                   FilereFile = new File(ctxpath);  
  
                   Mapparameters = new HashMap();                  
  
                   JRBeanCollectionDataSourceds = new JRBeanCollectionDataSource(listInfo);  
  
                   JasperPrintjasperPrint = JasperFillManager.fillReport(  
  
                                     reFile.getPath(),parameters, ds);             
  
                   JRPdfExporterexporter = new JRPdfExporter();       
  
                   exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT,jasperPrint);  
  
                   exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM,response.getOutputStream());  
  
                   response.setHeader("Content-Disposition","attachment;filename=customer.pdf");  
  
                   response.setContentType("application/pdf");  
  
                   response.setCharacterEncoding("utf-8");  
  
                   exporter.exportReport();  
  
         } 

 

 

 

分享到:
评论

相关推荐

    ireport利用javabean做数据源.docx

    在这个场景中,我们将讨论如何利用javabean作为ireport的数据源来生成报表。首先,我们需要理解javabean和ireport的基本概念。 **javabean** 是Java编程语言中的一种简单对象,遵循一定的规范,通常用于封装数据和...

    iReport使用JavaBean做数据源

    总结来说,通过iReport使用JavaBean作为数据源,开发者可以灵活地利用业务对象的数据,实现报表的动态生成,特别是在复杂的数据处理和跨系统数据共享的场景下,这种方法显得尤为实用。同时,这也使得报表设计与...

    iReport使用JavaBean作为数据源——最简单的示例

    本示例将向你展示如何利用iReport将JavaBean作为数据源,以生成定制化的报告。以下是对这个简单示例的详细解析: 1. **JavaBean作为数据源**:JavaBean是一种遵循特定规范的Java类,它封装了数据并提供了访问这些...

    ireport利用javabean做数据源实例

    【标题解析】:“ireport利用javabean做数据源实例”这一标题表明我们将探讨如何使用iReport工具,一个用于设计JasperReports报表的开源工具,通过JavaBean对象作为数据源来创建和展示报表。JavaBean是一种符合特定...

    ireport+ javaBean 做数据源实例

    本实例将深入探讨如何使用ireport结合javaBean作为数据源来生成报表,帮助初学者快速掌握ireport的使用方法。 【描述】:“一看就会的实例。能够很快上手ireport” ireport因其直观的图形用户界面和强大的报表设计...

    jasperreport+ireport创建javaBean多数据源报表

    2. **配置数据源**: 在ireport中,可以设置JavaBean数据源,指定JavaBean类名和属性映射。 3. **生成.jasper文件**: 保存并编译.jrxml文件,生成.jasper二进制模板。 4. **Java代码集成**: 在Java项目中,加载....

    spring mvc 整合ireport

    通过以上步骤,你可以成功地在Spring MVC项目中整合iReport,实现动态报表生成和展示。这个过程涉及到XML配置、Java代码编写以及报表设计等多个环节,需要对Spring MVC和报表处理有一定的理解。记得在实际操作中,...

    IReport使用Javabean做为数据源导PDF

    本文档将详细介绍如何使用 IReport 工具,结合 JavaBean 集合作为数据源来创建和导出 PDF 报表。相比于传统的 JDBC 数据源,使用 JavaBean 作为数据源具有更高的灵活性与便捷性。本教程不仅包括了基本的报表设计与...

    Spring MVC整合IReport生成PDF及中文不显示、乱码解决

    4. **处理数据源**:报表需要数据来展示,这可以通过JavaBean、Map或者自定义数据源实现。确保中文数据在传递过程中不被编码错误,可以使用UTF-8编码。 5. **生成PDF**:使用`JasperFillManager.fillReport()`方法...

    ireport+javabean实现可视化报表

    ireport支持多种数据源,包括数据库、XML文件、Java对象(如javabean)等。 2. **jasperreports**:这是Apache软件基金会的一个项目,它是一个强大的报表生成库,能够处理各种类型的输出格式,如PDF、HTML、Excel、...

    图示ireport中使用javabean作数据源开发基于jasperreports报表过程

    在这个过程中,我们将深入探讨如何在`iReport`中使用`JavaBean`作为数据源来开发基于`JasperReports`的报表。 首先,我们需要了解`JavaBean`。`JavaBean`是一种符合特定规范的Java类,通常用于封装数据并提供公共...

    ireport中table使用javaBean数据源

    本知识点主要探讨的是如何在iReport中使用JavaBean作为数据源来填充表格(Table)组件。我们将深入理解这个过程,并结合提供的资源进行详细阐述。 1. **JavaBean数据源的原理** JavaBean是一种符合特定规范的Java...

    ireport中使用javabean作数据源开发jasperreports报表

    ### iReport中使用JavaBean作为数据源开发JasperReports报表 #### 创建JavaBean 在iReport中使用JavaBean作为数据源来开发JasperReports报表时,首先需要创建一个简单的JavaBean对象来存储数据。以下是一个名为`...

    ireport用list作为数据源.zip

    ireport用JRDataSource作为数据源案例源码,详细介绍请移步我主页查阅博客文章。初识ireport的同学可以参考本例子动手试试。 压缩包包含内容: 1.JRDataSource实现java源文件 2.jrxml报表文件

    ireport(使用子报表(使用JavaBean集合作为数据源))

    本篇文章将专注于如何在IReport中使用子报表,并结合JavaBean集合作为数据源来生成报告。 首先,理解`子报表`的概念。子报表是报表中的一个区域,它可以独立设计并重复显示主报表中的数据。这样可以将复杂报表拆分...

Global site tag (gtag.js) - Google Analytics