`
ping8899
  • 浏览: 44254 次
社区版块
存档分类
最新评论
阅读更多


从零开始认识 JasperReport + IReport (JasperReport部分)

因参与公司南非的项目,需要应用在Linux平台,所以报表改用JasperReport.国内的项目报表还是用FastReport(看来还是结晶啊).废话少说,我从delphi平台转到RCP开发才不过两月时间,以前从未接触过JasperReport.(简称为JR)今天上级要求熟悉JR,为节后国际化报表做准备.以下为我从0开始的一些记录.目的: 力求理解JasterReport的各个概念及之间的关系.熟悉打印报表流程的来龙去脉,主要的调用方法(如加载报表,打印,预览).                报表设计器的使用.1. IReport 设计器,就像FastReport一样有这样的设计器.但名字叫IReprot,为安装文件,我安装的版本为    iReport-3.0.0-windows-installer.exe,同事传我的,下载地址百度下下就有了.2. JasperReport为一个开发Jar包,就是相当于FastReport的报表控件.3. 初始化JasterReport private static JasperPrint initJasperReport(String fileName,             Map<String, Object> paramMap, List data) throws IOException,            MalformedURLException, JRException {        ...        InputStream is = fullPathString.toURL().openStream();  //这句以上代码都是处理报表文件路径        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(is);                Object[] objArray = data.toArray();        //JasperReport对象  + Map对象 + List 对象 =JasperPrint对象         final JasperPrint jasperPrint = JasperFillManager.fillReport(                jasperReport, paramMap, new JRBeanArrayDataSource(objArray));        return jasperPrint;    }      4.查找默认打印机(打印服务).public static boolean directPrintByPrintName(final JasperPrint jasperPrint) {        if (jasperPrint != null) {            try {                PrintService[] PSs = PrinterJob.lookupPrintServices(); //java.awt.*包.查找所有打印服务.                PrintService ps = null;                if (PSs != null &amp;&amp; PSs.length > 1&amp;&amp; !Assert.isNull(MzTransParam.PrinterOfSyddyj)) {                    for (int i = 0; i < PSs.length; i++) {                        String sps = PSs[i].toString();                        sps = sps.replace("Win32 Printer : ", ""); //$NON-NLS-1$ //$NON-NLS-2$                        //MzTransParam.PrinterOfSyddyj 我们系统设置的默认打印机名称.                        if (sps.equalsIgnoreCase(MzTransParam.PrinterOfSyddyj)) {                              ps = PSs[i];//得到打印服务对象                            break;                        }                    }                }5.设置打印参数,好多个参数                if (ps != null) {                    long start = System.currentTimeMillis();                    PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();                    printRequestAttributeSet.add(MediaSizeName.ISO_A5);// 处方模板是A5纸  第一个参数对象                        PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();                    printServiceAttributeSet.add(new PrinterName(ps.getName(),null)); //第二个参数对象                    final JRPrintServiceExporter exporter = new JRPrintServiceExporter(); //关键的对象,其它的对象都是为他服务的                    //以下为设置参数                    exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);                    exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET,                                    printRequestAttributeSet);                    exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET,                                    printServiceAttributeSet);                    exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG,                                    Boolean.FALSE);                    exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG,                                    Boolean.FALSE);6.关键的出场,在线程里导出报表.(打印)                Thread thread = new Thread(new Runnable() {                        public void run() {                            try {                                exporter.exportReport(); //就这么一句.exporter对象导出报表.                            } catch (Exception ex) {                                System.err.println(ex.getLocalizedMessage());                            }                        }                    });                    thread.start();7.采用默认打印.                } else { //此处的else接的是5条的if                     Thread thread = new Thread(new Runnable() {                        public void run() {                            try {                                //jasperPrint 对象就是JasperPrintManager生成的.参考上面的代码.                                JasperPrintManager.printReport(jasperPrint,false);  //这一句应该是默认打印.                            } catch (Exception ex) {                            }                        }                    });                    thread.start();                }            } catch (Exception ex) {                return false;            }        }        return true;}未完.         

0
2
分享到:
评论

相关推荐

    使用JasperReport+iReport进行WEB开发

    在"使用JasperReport+iReport进行WEB开发"的实践中,首先需要安装并配置iReport,下载并解压后,可以通过它来设计报表模板。模板设计完成后,将其保存为.jrxml文件,这是JasperReport的XML格式,包含了报表的所有...

    jasperreport+ireport+jfreechart文档及代码1

    jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1

    jasperreport+ireport+jfreechart文档及代码2

    jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2

    Jasperreport+ireport 实践操作及web应用

    JasperReport和iReport是Java世界中常用的报表生成工具,它们可以帮助开发者轻松创建复杂的报表,并在Web应用程序中集成。在JasperReport 2.0.2和iReport 2.0.2版本中,我们可以实现多种功能,包括字段、变量、参数...

    利用Jasperreport+IReport进行报表开发

    【JasperReport与IReport简介】 JasperReport是一款开源的报表生成工具,它允许开发者创建复杂的报表设计,并能够导出多种格式,如PDF、HTML、Excel等。JasperReport的核心是基于XML的报表模板,这些模板可以包含...

    JasperReport+iReport报表开发手册.pdf

    ### JasperReport+iReport 报表开发手册核心知识点详解 #### 一、JasperReport与iReport概述 **JasperReport** 是一款强大的、灵活的报表生成工具,它能够展示丰富的页面内容,并支持将这些内容转换为PDF、HTML或...

    JasperReport+iReport报表开发手册.zip

    它有一个相关的开源工程--IReport,这是一个图形化的辅 助工具,主要用于数据报表设计。JasperReports 完全是由 Java 写成,可以应用于 Java 的应用 程序,包括 J2EE,Web 应用程序中生成动态内容,它主要目的是辅助...

    JasperReport + IReport 开发文档

    7. **jasperreport+ireport开发java报表入门级教程.pdf**:专门针对Java开发者的入门教程,详细解释如何使用JasperReport和IReport构建报表。 8. **jasperReport.pdf**:可能是一个JasperReport的官方文档或者第三方...

    Struts2.0+JasperReport+IReport+Oracle 报表开发

    Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题

    Struts2.0+JasperReport+IReport+Oracle 报表开发 2/3

    Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题

    JasperReport+iReport高级报表设计实战

    【JasperReport+iReport 高级报表设计实战】 在IT领域,报表系统是许多企业级应用的核心部分,用于展示和分析数据。JasperReport是一款强大的开源报表生成工具,而iReport则是它的可视化设计界面,降低了报表设计的...

    Struts2.0+JasperReport+IReport+Oracle 报表开发 3/3

    Struts2.0+JasperReport+IReport+Oracle 报表开发整个项目打包上传,用MyEclipse导入即可调试使用含报表文件、数据库表结构及测试数据,项目中解决了PDF中文

    iReport+JasperReport柱状图

    iReport+JasperReport柱状图开发指南 本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在...

    JasperReport+iReport报表工具详细开发手册

    通过学习《JasperReport+iReport报表工具详细开发手册》和《iReport-JasperReports报表开发指南》,你可以掌握这两个工具的完整功能和最佳实践,从而提升报表开发的效率和质量。手册中应包含了详细的步骤指导、示例...

    Jasperreport+ireport学习笔记4

    ### JasperReport与iReport复合报表深度解析 #### 引言 在报表开发领域,JasperReport因其强大的功能和灵活性而受到广泛青睐。结合iReport工具,开发者能够更加便捷地设计和生成复杂报表。本文旨在深入解析...

    JasperReport+iReport测试工程源码

    在这个"JasperReport+iReport测试工程源码"中,我们可以预期包含以下关键知识点: 1. **报表模板设计**:源码可能包含了使用iReport设计的.jrxml文件,展示了如何定义报表结构、样式和数据绑定。这些模板可以包含...

    JasperReport+iReport报表学习资料

    ### JasperReport+iReport 报表学习资料知识点梳理 #### 一、JasperReport与iReport简介 - **JasperReport**:是一款强大的报表生成工具,主要用于解析特定的`.jasper`文件并将其转换为用户友好的报表界面。该工具...

    JasperReport+iReport 报表工具详细开发手册

    ### JasperReport+iReport 报表工具详细开发手册 #### 1. 简介 JasperReport是一款功能强大的报表引擎,适用于Java应用环境。它能够根据预设的模板生成多种格式的报表,如PDF、HTML、Excel等。iReport则是...

    JasperReport+iReport报表工具

    JasperReport和iReport是Java平台下用于生成报表的工具,它们在企业应用开发中扮演着重要的角色,尤其是在报表的生成、展现和打印方面。JasperReport是一种报表引擎,它能够解析.jasper文件并将其呈现到用户界面中,...

Global site tag (gtag.js) - Google Analytics