JasperReport报表概要设计

合集下载

jasperreport中文学习入门教程之编译报表设计

jasperreport中文学习入门教程之编译报表设计

jasperreport中文学习入门教程之编译报表设计
jasperreport中文学习入门教程之编译报表设计
我们在前面的章节中产生的JasperReport模板(JRXML文件)。

这个文件不能直接用于生成报告。

它必须被编译成JasperReport的“本地二进制"格式,称为Jasperfile。

在编制我们把JasperDesign对象转换成JasperReport的对象:
接口net.sf.jasperreports.engine.design.JRCompiler编译过程中起着核心的一部分。

这个接口有根据用于报表表达式语言,它可以只要编译器可以实现在运行时计算它被用Java编写的,Groovy,JavaScript的或任何其他脚本语言的几个实现。

我们可以通过以下两种方式编译JRXML文件:
1.提供编程编译。

2.编译通过ANT任务。

JRXML提供编程编译
JasperReports的API提供了一个门面类
net.sf.jasperreports.engine.JasperCompileManager用于编译JasperReport。

这个类包含几个公共静态方法编制的报告模板。

模板的源可以从文件,输入流,内存中的对象。

该jrxml文件(jasper_report_template.jrxml)的内容如下。

它被保存在目录C:\tools\jasperreports-5.0.1\test:。

JasperReport 报表总结

JasperReport 报表总结

为了开发报表,已经拜读了一大堆的资料,其中大部分是重复的。

可以看得出,国人还是比较热衷于copy&paste的工作。

所以找了一大堆的资料都是相同的,或者可以用一个词来形容,换汤不换药的。

有必要对于jasper Report的学习进度进行一下总结,一来可以更新一下以前的资料中的一些旧得不能再旧的不再适用的东西,二来让后来者可以轻松的上手。

首先,jasperReport是一个以java实现的报表工具,(好像是句废话)。

可以实现多种格式的报表。

再我们先理解一下jasperReport的实现过程。

笔者不再画图,网上到处都是。

1)定制报表格式。

有二种方式,一种就是写jrxml文件,其实就是xml文件,只不过是后缀名不一样罢了。

另一种方式更直接,就是生成一个JasperDesign类的实例,在japsperDesign中自己定义模板。

jrxml文件也是通过一个JRXmlLoad加载过来,转成JasperDesign类的实例。

也就是说写jrxml文件还需要进行解析,加载。

现实中我们使用的报表一般格式比较固定,因而可以通过先使用iReport工具生成模板,再加载解析的方式。

这种方式简单,而且可见性强。

2)填充数据。

在最新版(2007.4.30发布)的jasperReports1.3.3中,支持了很多的格式,包括了对于Hibernate的支持。

填充数据对于我们经常使用的来说,一般是二种方式,一种方式是通过JDBC连接提供数据源,一种就是通过javaBean的集合提供数据源。

当然还有web Service的xml文件提供的。

我的建议是,如果你的程序中的统计直接使用Jdbc就可以完成,那么就使用jdbc数据源的方法,反之,使用javaBean的集合是不错的选择,因为这样不会在意你的数据的来源,你也可以任意处理,比如说,要通过权限检查的数据才在报表中生成的话,就可以过滤到不符合权限的数据。

3)显示或打印。

显示,即将JasperReport生成的文件直接显示出来,打印所使用的方式其实就是生成文件,然后调用打印来对文件进行打印。

跟我学JasperReports报表框架——在Java应用程序中显示所创建的报表

跟我学JasperReports报表框架——在Java应用程序中显示所创建的报表

1.1跟我学JasperReports报表框架——在Java应用程序中显示所创建的报表1.1.1在J2SE的程序中(胖客户端方式)显示报表1、所需要的各种JAR包commons-beanutils-1.7.jar、commons-collections-2.1.jar、commons-digester-1.7.jar、commons-logging-1.0.2.jar、itext-1.3.1.jar、jasperreports-2.0.5.jar、jtds-1.2.jar(或者为mysql-connector-java-5.1.6-bin.jar)2、常见API介绍(1)net.sf.jasperreports.engine.JasperCompileManager类。

使用这个类的几个静态方法即可完成对报表的编译工作,编译完成后JasperCompileManager类有两种处理方式:1)返回一个JasperReport对象2)在.jrxml文件所在的目录生成一个.jasper文件这两种方式是由程序员自己选择的,一般采用使用.jasper文件,毕竟报表的结构不是每天都在改动,所以每次重新编译报表并不是很划算。

pileReportToFile()方法,这个方法由三个重载版本,你可以查JasperReport的API文档看到,这里我们仅解释一下其中一个版本:void compileReportToFile(String arg0,String arg1);arg0指事先创建的.jrxml文件的全路径,包括文件名arg1指经过编译后生成的.jasper文件的文件名,当然你也可以写上路径,这样你就可以在固定路径上查看.jasper文件,不过这个文件放在哪儿无所谓,注意这个参数的String 串必须以.jasper结束。

(2)net.sf.jasperreports.engine.JasperFillManager类这个类的作用是用数据填充报表。

JasperReport报表开发说明(深入浅出)

JasperReport报表开发说明(深入浅出)

1.报表制作流程实例:我们实现一个简单的JasperReports示例,展现其基本的开发、使用流程。

Jasper Studio是基于Eclipse的报表设计工具(不熟悉Eclipse的看官先去熟悉一下基本知识吧),默认工作区设置为当前用户主目录下的JaspersoftWorkspace文件夹,并且不可更改。

首先,我们创建一个报表工程,本例中命名为DemoProject,然后创建一张新的报表(File --> New–->Jasper Report),就会出现类似下图所示的窗口让我们选择一个模板。

此例我们选Coffee模板,然后点Next。

在接下来的页面里,我们给报表模板起个名字(Demo1.jrxml)并放在DemoProject的根目录下,然后点Next,于是进入了数据源选择界面:数据源是填充报表的关键,我们必须制定一个数据适配器(Data Adapter),此时我们有三种选择:1、选择“OneEmpty Record - Empty rows”,这样我们就可以专注于报表的设计,而暂时不指定数据源,创建完报表之后,我们随时可以制定别的数据源。

2、选择“SampleDB - Database JBDC Connection”,这是JaspersoftStudio安装时提供的一个示例数据库。

3、点击“New”按钮创建一个新的数据源。

这正是本例要采用的方式,我们将创建一个连接到本机MySql数据库的world的数据源。

首先点击“New”,在弹出的向导页中选择“Database JDBC Connection”,然后点“Next”弹出下图所示的页面:配置好基本的数据库连接信息,点击“Test”测试通过之后,一个数据源就配置好了,我们点击“Finish”结束配置。

初次配置MySql数据源需要在Driver Classpath页面指定MySql驱动包的路径:配置并选择数据适配器之后,我们需要指定数据查询的语句,该语句查询出的字段将直接用于报表中的数据字段。

Struts中Jasperreports开发的报表系统设计与实现

Struts中Jasperreports开发的报表系统设计与实现
Ke r s Sr t; p r S se d v lp n ;mp e e tto ywo d : t s Re o y tm; e eo me t i lm nain u t
随着 信息 技 术的 发展 ,报表 已经在 各 个政 府 部 也 就成 了一 个十分 重 要 的 问题 。 文章 介 绍 的是 一个
覃 宇 飞,苗 放 ,胡 俊
( 成都理 工 大学 信息工程 学院,成 都 6 0 5 ) l 0 9 摘 婴:描述一 个 国有 资源 管理 系统 中报 表系统的研 发过 程 , 开 发工具 的选择 ,再到 根据 开发平 台 , 从 整个 系统 框架的选择 和设 计 ,以及 用所选报 表开 发工具 来研 究并 最终开 发 出满足 需求 的报 表 系统 。在项 目 开 发过 程 中主要 对 Js erp r 产生 报表 的机 制及 数据 源 的配置进行研 究,并 配合 l p r对报 表 ly u 进 ap r ot e s r ot e ao tFra bibliotek维普资讯
1 5桎 I I
V0I1 .5 N0 1 .l
团固
推与用 广应
芟 编 :10 -4 1( 0 6 1 0 30 0 585 2 0 )1- 3 3 0
Srt中 Jserp r 开发 的报 表系统设 计与实现 t s apr ot u e s
收 稿 日期 :2 0 -53 0 60 - 1
] 公司 扮演越 来越重 要 的 角色 ,报表 系统 的 开 发 为 成 都 市 财政 局服 务 的 在 线 的 国 有资 源 管理 系统 , 和 本 系统 基于 J E 2 E MVC模式 的 Srt,为 B S结构 。 tus / 主 要 讨论 系 统 中使 用 J s e Re o t 开 发报 表 的 部 a p r p rs

跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例

跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例

1.1跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例1.1.1利用iReport工具操作报表1、编译报表由于Jasperreport在运行时需要的就是一个*.jasper后缀的文件,编译过程其实就是把*.jrxml后缀的文件生成*.jasper后缀的文件。

(1)有关的菜单(2)编译过程中的状态输出(3)编译后所产生出*.java程序和*.jasper后缀的文件2、执行报表Jasperreport提供了两种运行的方式-------静态运行和动态运行,动态运行是带数据源的运行,比如带数据库运行。

前者就是静态文本运行,和数据源无关。

因此,在静态运行方式下,如果报表中出现和数据源有关的对象,则以null显示。

(1)静态运行的菜单(2)动态运行的菜单最好采用动态连接(前面已经设置了动态连接),从而能够动态地获得数据库表中的数据值。

将出现下面的结果3、预览显示报表在iReport中提供了JRViewer的预览显示方式,JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。

Jasperreport提供默认的JRViewer输出类,这是iReport 自身带的PDF格式预览。

选择其菜单然后再选择“执行报表(使用动态连结)”,将出现下面的结果4、导出为其它格式的报表iReport的出格式可以支持以下几种:PDF、HTML、CSV、JA V A2D、Excel、纯文字等形式。

选择其他格式的预览,系统会以这种格式保存到磁盘中。

保存位置读者也可以选择,在iReport菜单栏中选择Options,在其中选择Compiler标签,选择编译好的文件以及各种形式的报表保存位置。

在一些应用程序环境下,将JasperReport生成的文档从其特有的格式导出到其他更为流行的格式如PDF,HTML是非常有用的。

这样一来,其他人就可以在没有安装JasperReport 的情况下查看这些报表,特别是当这些文档要通过网络发送出去的时候。

java报表方案

java报表方案

java报表方案随着信息技术的发展,报表在企业的决策分析、业务管理和数据展示中发挥着重要的作用。

而Java作为一种高度灵活的编程语言,也为报表的生成和展示提供了丰富的解决方案。

本文将探讨几种常见的Java报表方案,分别是JasperReports、POI和BIRT。

一、JasperReports报表方案JasperReports是一个开源的Java报表生成框架,它提供了强大的报表设计和生成功能。

使用JasperReports,可以将数据从各种数据源读取出来,然后通过定义报表模板和样式进行格式化、整理和展示。

最终,可以将报表输出为PDF、HTML、Excel等多种格式。

JasperReports的核心是报表模板,它是使用XML定义的布局文件。

通过在布局文件中添加元素,设置数据源和样式,我们可以设计出丰富多样的报表。

而在应用程序中,我们可以使用Java代码来填充数据,并将数据源与报表模板进行绑定,完成报表的生成和展示。

二、POI报表方案POI(Poor Obfuscation Implementation)是Apache软件基金会下的一个开源项目,提供了Java操作各种Office文档的API。

其中,HSSF用于操作Excel文件,XSSF用于操作Excel 2007及以上版本的文件。

通过POI,我们可以使用Java代码来读取、创建和修改Excel文件,从而实现报表的生成和展示。

可以将数据逐行逐列地写入指定的单元格,设置字体、颜色、边框等样式,甚至可以插入图表和图片。

最后,将数据保存为Excel文件,就得到了我们所需的报表。

三、BIRT报表方案BIRT(Business Intelligence and Reporting Tools)是一个开源的商业智能和报表工具,由Eclipse基金会开发和维护。

BIRT提供了一套完整的报表设计、生成和展示功能,并且易于集成到Java应用程序中。

使用BIRT,我们可以通过可视化界面来设计报表模板,其中包括布局、数据源和样式。

jasperreports报表(实例)

jasperreports报表(实例)

jasperreports报表(实例)1.建立数据库联线。

2.由sql語法取出資料,准备好传入的 parameters。

3.將parameters及取出的資料傳入Jasper中。

會由 .jasper檔產生出 .jrprint 檔。

4.再由 .jrprint 檔產生出 .pdf的目的檔。

//建立连线方法public Connection createConnection(){Connection conn;try{String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";String url="jdbc:microsoft:sqlserver://10.0.0.151:1433;DatabaseName=Northwind"; Class.forName(driver);conn = DriverManager.getConnection(url, "sa", "sa"); //建立连线conn.setAutoCommit(false);return conn;}catch(SQLException ex1){System.out.println("建立连线錯誤="+ex1.toString());}catch (ClassNotFoundException ex2){System.out.println("建立连线錯誤="+ex2.toString());}return null;}//关闭资料连线public void CloseConnect(Connection conn){try{mit();conn.setAutoCommit(true);conn.close();}catch(Exception e){System.out.println("连线关闭错误="+e.toString());}}//建立PDF輸出public void createPdfReport(){String fileName="";String strDate="";String sql="";//取得今天日期Calendar cal=Calendar.getInstance();cal.setTimeInMillis(System.currentTimeMillis());strDate=String.valueOf(cal.get(Calendar.YEAR))+"-";if(cal.get(Calendar.MONTH)<9)strDate+="0";strDate+=String.valueOf(cal.get(Calendar.MONTH)+1)+"-";if(cal.get(Calendar.DATE)<9)strDate+="0";strDate+=String.valueOf(cal.get(Calendar.DATE));Map parameters=new HashMap();parameters.put("rptToday",strDate); //傳入的parameters引數sql =" select CompanyName ,ContactName , ";sql+=" ContactTitle , City , Country ";sql+=" from Suppliers ";sql+=" where ContactTitle like '%Sales%' "; //在此試捉出與Sales有關sql+=" order by Country , ContactTitle ";Connection conn = this.createConnection(); //建立資料庫連線try {Statement stm = conn.createStatement();ResultSet rs = stm.executeQuery(sql);fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jasper"; JasperFillManager.fillReportToFile(fileName,parameters, newJRResultSetDataSource(rs));fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jrprint"; JasperExportManager.exportReportToPdfFile(fileName);}catch (Exception ex) {System.out.println("Error : "+ex.toString());}finally {CloseConnect(conn);conn = null;}}由createConnection、CloseConnect 及createPdfReport 这三个方法,即可产生出一個 PDF 档。

JasperReport详解_(1)

JasperReport详解_(1)

报表设计基础及JasperReort,JFreeChart简明教程摘要本文先从通用的角度定义了与报表相关的各种概念。

然后介绍了怎么应用JasperReport和Ireport设计报表,最后介绍了怎么使用JfreeChart生成图形报表。

文章中出现的很多概念和定义都出自作者自己的思考,没有通用性,在阅读时请不必深究它的准确性。

1、什么是报表,什么是报表应用程序1.1 什么是报表报表是数据统计结果的呈现。

常见的报表格式有表格、数据立方体(多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。

总结各种报表的共同特征,可以这样来定义报表的结构。

一般来说,Report = Title + Page(s) + Report FooterPages(s)表示一个报表可能有一页或多页Page = PageHeader + Content + PageFooterContent则代表真正的数据,它一般由若干列和若干行组成。

Content = ColumnHeader + Row(s) + ColumnFooter一个报表的结构可以表示为下图所示的树形:这棵树中的所有叶结点,就构成了报表的实体。

一个叶结点一般称作一个Band,从上到下排列,一个Report的组成如下图所示:下图是一个报表的例子。

它有3页。

1.2 计算机上的报表与报表应用程序可以利用计算机处理数据和界面设计的功能来生成、展示报表。

计算机上的报表的主要特点是动态化。

已经有各种各样的计算机报表设计工具,它们一般提供格式设计和数据填充等功能。

广义地讲,EXCEL、WORD、甚至写字板都可以算作报表设计工具,但是它们没有定义专门的报表结构,也无法实现报表格式和报表数据的动态决定,无法实现计算机报表的“动态化”特性,也就是说不能用它来开发“报表应用程序”,所以它们一般不能视为报表设计工具。

而所谓报表应用程序,指的是能够在运行时动态地决定报表格式和报表数据的应用程序,它必须要实现数据格式和数据内容之间的分离,也就是报表和数据源之间的分离。

跟我学JasperReports报表框架——在J2EE Web应用系统中显示所创建的报表

跟我学JasperReports报表框架——在J2EE Web应用系统中显示所创建的报表

1.1跟我学JasperReports报表框架——在J2EE Web应用系统中显示所创建的报表1.1.1在Web的程序中(以HTML形式)显示报表1、设计一个显示的页面-----以HTML形式输出<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ page import="java.util.*" %><%@ page import="java.sql.*" %><%@ page import="java.io.*" %><%@ page import="net.sf.jasperreports.engine.*" %><%@ page import="net.sf.jasperreports.engine.util.JRLoader" %><%@ page import="net.sf.jasperreports.view.JasperViewer" %><%@ page import="net.sf.jasperreports.engine.export.JRHtmlExporter" %><%@ page import="net.sf.jasperreports.engine.export.JRHtmlExporterParameter" %><%!String xmlFileName = "/我的第一个Web报表.jrxml";String jasperFileName = "/我的第一个Web报表.jasper";String printFileName = "/Web/我的第一个Web报表.jrPrint";String MSSqlServer_DBDriver= "com.mysql.jdbc.Driver";String MSSqlServer_URL = "jdbc:mysql://localhost:3306/webbank";String dbUserName="root";String dbUserPassWord="root";Connection con=null;public Connection getConnection(){Connection con=null;try{Class.forName(MSSqlServer_DBDriver);}catch (ng.ClassNotFoundException e){System.out.println("不能正确地加载JDBC驱动程序");}try{con = DriverManager.getConnection(MSSqlServer_URL, dbUserName, dbUserPassWord);}catch (java.sql.SQLException e){System.out.println("不能正确地连接数据库并且出现SQLException");}catch (NullPointerException e){System.out.println("不能正确地连接数据库并且出现NullPointerException");}return con;}%><%con=getConnection();try{pileReportToFile(application.getRealPath(xmlFileName));HashMap params = new HashMap(); //建立参数表params.put("userID","1426387490"); //本示例中没有应用到参数值设置File reportFile = new File(application.getRealPath(jasperFileName));JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, con); //填充数据生成JasperPrint后,就可以通过JasperPrintManager、JasperExportManager或者JasperRunManager等,进行各种数据输出,包括导出html、excel、pdf等JRHtmlExporter exporter = new JRHtmlExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);exporter.exportReport();}catch (JRException e){e.printStackTrace();}try{con.close(); //释放数据库连接}catch (SQLException e){System.out.println("不能正确地关闭数据库连接,异常的详细内容为:"+e.getMessage());}%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'showHTMLReport.jsp' starting page</title></head><body></body></html>2、在Web站点中包含报表的模板文件3、部署并执行该页面http://127.0.0.1:8080/J2EEWebApp/showHTMLReport.jsp后,将出现下面的结果,与在IReport中的显示结果保持一致。

jasperreports中文教程之报表参数

jasperreports中文教程之报表参数
dataBeanList.add(produce("Manisha", "India")); dataBeanList.add(produce("Dennis Ritchie", "USA")); dataBeanList.add(produce("V.Anand", "India")); dataBeanList.add(produce("Shrinath", "California"));
</title>
<columnHeader>
<band height="23">
<staticText>
<reportElement mode="Opaque" x="0" y="3"
width="535"
height="15"
backcolor="#70A9A9" />
<box>
<bottomPen lineWidth="1.0"
try { JasperFillManager.fillReportToFile( sourceFileName, parameters, beanColDataSource);
} catch (JRException e) { e.printStackTrace();
} } } POJO 文件的内 容 C:\tools\jasperreports-5.0.1\test\src\com\yiibai\DataBean.java 如下所 示:

JasperReport教程之报表设计

JasperReport教程之报表设计

JasperReport教程之报表设计在JRXML模板(或JRXML文件)中的JasperReport都是标准的XML文件,以.JRXML扩展。

所有JRXML文件包含标签<jasperReport>,作为根元素。

这反过来又包含许多子元素(所有这些都是可选的)。

JasperReport框架,可以处理不同类型的数据源。

在本教程中,我们将展示如何生成一个基本的报表,只是通过传递Java数据对象(使用Java Bean)集合传给JasperReport引擎。

最后报表应显示的人的名单的名字和国家。

本章介绍如何设计一个JasperReport。

下面的步骤将在本章中:∙创建一个JRXML报表模板。

∙预览XML报表模板。

创建一个JRXML报表模板创建JRXML文件,该文件是jasper_report_template.jrxml使用文本编辑器,并保存此文件按照我们的环境设置,在C:\tools\jasperreports-5.0.1\test。

<queryString><![CDATA[]]></queryString><field name="country"class="ng.String"><fieldDescription><![CDATA[country]]></fieldDescription></field><field name="name"class="ng.String"><fieldDescription><![CDATA[name]]></fieldDescription></field><columnHeader><band height="23"><staticText><reportElement mode="Opaque"x="0"y="3"width="535"height="15"backcolor="#70A9A9"/><box><bottomPen lineWidth="1.0"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><staticText><reportElement x="414"y="3"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Country]]></text></staticText><staticText><reportElement x="0"y="3"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Name]]></text></staticText></band></columnHeader><detail><band height="16"><staticText><reportElement mode="Opaque"x="0"y="0"width="535"height="14"backcolor="#E5ECF9"/><box><bottomPen lineWidth="0.25"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><textField><reportElement x="414"y="0"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font size="9"/></textElement><textFieldExpression class="ng.String"><![CDATA[$F{country}]]></textFieldExpression></textField><textField><reportElement x="0"y="0"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"/><textFieldExpression class="ng.String"><![CDATA[$F{name}]]></textFieldExpression></textField></band></detail></jasperReport>下面是在上述报表模板主要字段的详细信息:∙<queryString>:这是空的(因为我们传递的数据通过Java Beans)。

ireport summary 用法

ireport summary 用法

ireport summary 用法
iReport Summary是JasperReports报表设计工具中的一个功能,该功能可以为报表数据生成一个摘要视图,便于用户快速了解报表数据的情况。

在设计报表时,用户可以将某些字段指定为摘要字段,并在iReport Summary中进行设置,这样生成的报表数据就会按照这些字段进行汇总和展示。

使用iReport Summary可以为报表添加一个高效的概览页,对于忙碌的用户来说非常实用。

除了iReport Summary功能外,JasperReports报表设计工具还提供了丰富的功能,例如数据透视表、图表设计、样式管理等。

这些功能可以帮助用户快速高效地设计出符合需求的报表,提高工作效率。

总之,iReport Summary是JasperReports报表设计工具中的一个实用功能,可以帮助用户快速了解报表数据的情况,同时该工具还提供了其他丰富的功能,使得用户可以高效地设计出符合需求的报表。

JasperReports最终用户手册中文版第四章 报表设计

JasperReports最终用户手册中文版第四章 报表设计

JasperReports最终用户手册中文版第四章报表设计jasperreports最终用户手册中文版第四章报表设计第四章报告设计thereportdesignrepresentsatemplatethatwillbeusedbythejasperreportsenginetodeli verdynamiccontenttotheprinter,tothescreenortotheweb.datastoredinthedatabaseiso rganizedduringthereportfillingprocessaccordingtothisreportdesigntoobtainreadyt oprint,pageorienteddocuments.通常,“报告设计”包括数据填充后形成的文件的结构和内容有的其他方面的信息。

这些信息包括将要输出到报表上的各种文本,图像元素的位置,内容,以及要进行的数据计算,自定义计算,分组,操作等信息。

通常情况下,报表设计包含所有与文档结构和视图相关的信息,这些信息将在提供数据时生成。

这些信息涉及文档中出现的各种文本或图形元素的位置和范围、它们的外观、生成文档时应执行的客户计算、数据分组和数据处理等。

一般,“报表设计(reportdesign)”用一种特殊的结构定义在xml文档中(我们会在稍后详细分析),在被填充数据前,这一过程属于jasperreports报表的编辑阶段。

但是“报表设计(reportdesign)”也可以用jasperreportsapi以编程的方式在内存中构造.随jasperreports项目源文件一起提供了一个noxmldesign(noxmldesign)例子介绍了如何直接在内存中创建“报表设计(reportdesign)”,而不用编辑xml文档。

4.1 DTD文件参考用xml文档来编辑“报表设计(reportdesign)”时,jasperreports用它自己内部专用的验证本文件内容的DTD文件。

jasperReportStudiojava报表设计(详细)

jasperReportStudiojava报表设计(详细)

jasperReportStudiojava报表设计(详细)⼀、环境搭建 在spring-mvc.xml加⼊<!-- jasperReports--><import resource="classpath*:spring-mvc-jasperreports.xml"/>spring-mvc-jasperreports.xml具体配置代码:<beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context" xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-4.2.xsd/schema/context /schema/context/spring-context-4.2.xsd/schema/mvc /schema/mvc/spring-mvc-4.2.xsd"><!-- jasperReports报表集成视图解析器 --><bean id="jasperReportsViewResolver"class="org.springframework.web.servlet.view.jasperreports.JasperReportsViewResolver"><!-- 执⾏优先级,值越⼩优先级越⾼ --><property name="order" value="0"/><!-- 处理视图返回 --><property name="viewClass" value="com.silverdata.smart.report.jasperreports.JasperReportsView"/><property name="prefix" value="/WEB-INF/jasper/"/><property name="suffix" value=".jasper"/><!-- 可通过配置此项⽤来过滤是否执⾏此视图解析器 --><!-- <property name="viewNames" value="rpt*"/> --><!-- 报表数据源 --><property name="jdbcDataSource" ref="dataSource"/><!-- 扩展参数 --><property name="exporterParameters"><map><!-- 指定格式报表的内容编码 --><entry key="net.sf.jasperreports.engine.JRExporterParameter.CHARACTER_ENCODING"><value>UTF-8</value></entry><!-- 通过Web访问时图⽚的URI --><!-- <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_URI"><value type="ng.String">/jasper/image.jsp?image=</value></entry> --><!-- 图⽚⽬录的绝对路径 --><!-- <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IMAGES_DIR_NAME"><value type="ng.String">D:\\work\\***\\framework\\tmp</value></entry> --><!-- 是否输出图⽚到⽬录 --><!-- <entry key="net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR"><value type="ng.String">true</value></entry> --></map></property></bean></beans>jar包需要:<!-- jasperreports --><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId></dependency><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports-fonts</artifactId></dependency>⼆、jasperreports报表设计步骤1.新建项⽬配置jar包若jar包unbond未找到~检查是否⽬录路径是纯英⽂的~中⽂不识别2.新建报表模版~⼀般中国的报表直接⽤空⽩A4去做3.若要⽤测试数据展现表格配置然后根据需要查询字段表~加⼊测试数据⼀般也不使⽤4.页⾯设计5.配置样式编译java代码部分:开发代码:public ModelAndView apply(ModelAndView modelAndView,@PathVariable("id") Long id) { 注释部分为⼆维码⽣成/*List<Order> list = Lists.newArrayList();Order order;for (int i = 0; i < 100; i++) {order = new Order(i, "供应商" + i, "厦门市" + i + "号楼", i % 2 == 0 ? "厦门" : "周⼝", new Timestamp(System.currentTimeMillis()));list.add(order);}ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();QRCodeUtils.encode("PE12873619284611231213", 100, 100, byteArrayOutputStream);InputStream file = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());Map<String, Object> m = new HashMap<String, Object>();m.put("QRCodeString", "PE12873619284611231213");m.put("QRCode", file);m.put("image", "E:\\ideaWorkSpace\\pipegallery\\pipegallery-operation\\src\\main\\webapp\\WEB-INF\\jasper\\silhouette.jpg");return ReportUtils.toPdf("Silhouette4", m, list);*/List<ApplyDetails> applyDetailsList = Lists.newArrayList();Map<String, Object> m = new HashMap<String, Object>();List<Map> list =materialsIeApplyDetailsService.getAllByDynamicWhere(id);MaterialsIeApply materialsIeApply=materialsIeApplyService.get(id);m.put("APPLICANT",materialsIeApply.getApplicant());//申请⼈m.put("ORDERNO",materialsIeApply.getOrderno());m.put("IEAPPLYTYPE","0".equals(materialsIeApply.getIeApplyType())?"租⽤":"使⽤");m.put("PLANGETDATE",materialsIeApply.getPlanGetDate());//领⽤时间m.put("PLANRETURNDATE",materialsIeApply.getPlanReturnDate());//归还时间m.put("AUDIT",materialsIeApply.getAuditId());//审核⼈m.put("AUDITDATE",materialsIeApply.getApplyDate());//审核时间//(0未提交、1待审核、2已审核、3未通过、4打回、5部分出库、6全部出库、7作废)m.put("APPROVALSTATE", ReturnMaterialsIeApplyString.returnString(materialsIeApply.getApprovalState()));//申请单状态m.put("APPLYDATE",materialsIeApply.getApplyDate());//申请提交时间m.put("REASON",materialsIeApply.getReason());m.put("REMARK",materialsIeApply.getRemark());m.put("AUDITOPINION",materialsIeApply.getAuditOpinion());//审核意见ApplyDetails applyDetails;for (Map map:list){applyDetails=new ApplyDetails(map.get("materialsname").toString(),map.get("suppliername").toString(),Integer.parseInt(map.get("amount").toString()),map.get("remark").toString(),map.get("spec").toString(),"1"); applyDetailsList.add(applyDetails);}return ReportUtils.toPdf("MaterialsIeApply", m, applyDetailsList);}。

JasperReports报表生成初步

JasperReports报表生成初步

1. 扩展名为.jrxml的文件为标准的xml文件,该文件定义了报表的格式和数据构成。

可以通过jasperReports的“
黄金搭档”iReport以可视化的方式生成并编辑这个文件。

2. jrxml文件经过JasperReports API 编译后将生成扩展名为.jasper的二进制文件。

3. 可以调用JasperReports API针对jasper文件进行数据和参数的填充,生成扩展名为.jrprint的文件。

4. 调用JasperReports API可以将jrprint文件最终导出成PDF、Excel、Html等各种格式的文件。

下面将采用iReport + JasperReports 生成如下图的PDF格式报表,表格中的数据来源于数据库,是在固定格式报表基础上,由JasperReport填充得到的。

整个报表的生成过程需要两个步骤:
1. 使用iReport生成规定报表格式和数据构成的jrxml文件。

或使用工具栏的按钮,在报表页面中添加静态文本框,将
中$F{字段名称}表示该字段的查询值。

或单击工具栏按钮保存生成的
iReport的编译工具对生成的报表文件进行测试,单击工具栏的按钮编译报表文件,如果无误可单击工具栏的按钮将显示报表生成的样式,如果单击工具栏的按钮,
圈子
HelloWorld 之JasperReports初步_李翊_新浪博客
感谢你的这遍文章,
!!
插入表情
发评论
/s/blog_4a157f470100a7iu.html[2009-4-13 23:10:50]。

基于JasperReports的web数据报表的设计与实现

基于JasperReports的web数据报表的设计与实现

lm ->j r 固xl- .e l- ̄ 固pl . 瓣 I j r r- - a s
( )ap r eot的 特 点 1Js eR pr s
Jse eo s apr pr 是一个 强大的, 的报表 生成工具 , R t 灵活 一个 J a 库, a 类 v 能够生成 P F T L X E , M 等格式 的报 表。这个工具是 开源的, D, M , C L L H E X 我们可以免费的使用它, 完全使用 j a 并且 a 写成 , v 可以用在各种 j a a 应 v 用 程序 中, 包括 i aCS应用 、 b中应用生成报表。除 了以文本方式 生 a / v We 成报表外, s r eo s J p R pr 还可 以生成包含图片 、 ae t 图表和 图形 的专业报表 。 JseR pr 的主要特点包括 : apr eot s 灵活的报表排版 以文本或图形方式显示数据 允许用户以多种方式提供数据 支持多种数据源
2.ASPERREPo RTS J
() 3 使用 Jse e o s a r p r 提供 A I pR t P 中的 Jse iM ngr a r U aae 类填充编译 pF 后的 * apr . e 文件, j s 填充后生成一个 *j r t .pi 文件 。 r n () 4 使用导 出管理 器( se xo M ng ) 者各 种格式的文件导 J pr pr a a r或 a E t e 出器(R xE pr r将 * rr 文件导 出成各种格式 的报表文件 。也可 J X x xot ) .pi e j t 以使用 J Ve e 工具类来直接浏览报 表。流程如图 l 2 Ri r w 、。
生 成 水 印
图 1
生成子报表 ( )apr eot 2JseR p r s的设计原理 JseR p r apr eot s的开发是 由一份 X ML格式 的报 表的文件 开始 的, 设

JasperReport报表概要设计

JasperReport报表概要设计

JasperReport报表概要设计预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制JasperReport报表概要设计一.背景概述JasperReport应用方案参照郭总发的“JasperReport应用于java swing 客户端的方案.doc”;二.客户端与服务端调用概要1.客户端、服务端职责:客户端:客户端只考虑、查询条件布局和数据的获取。

服务端:考虑报表以后的升级的易修改性,服务端通过界面提供的数据生成报表,返回,客户端拿到报表对象只是显示即可。

下图是客户端与服务端调用概要图,客户端EJB调用服务方法,服务返回生成好的报表对象。

三.报表设计及流程图客户端主要是查询界面的逻辑处理,报表会经常加入或修改报表,需要经常修改代码,工作量大,重复工作多,所以考虑采用在服务层采用XML配置功能实现,考虑如下:1.采用客户端启动时从服务层一次性读取报表的列表,服务可以用XML存储报表列表,好处是以后新加报表可以在加入一条数据即可,以后修改查询条件或新加报表客户端无需开发,只需要在XML加入新的配置,,包括几个字段:tableNameLoadData =””fieldLoadData =””defaultLoadData=””isCondition =””>…..< childs>……………………………………………………………………….(1)ID:唯一标识,0表示跟节点,就是入口。

(2)Name:报表名称,界面用来显示。

(3)parameters和parameterItem及里面的参数:用来生成界面和界面的关联关系、服务层查询条件等,注:只有配了tableName 和queryField客户端才会把此字段当参数发到服务层。

< parameters >排序” uiType=”dateUI/listUI/selectUI/comboboxUI” relevanceID=”点击此空件后触发的控件id”tableNameLoadData=”表名,用于填充自己控件”fieldLoadData =”表字段,用于填充自己控件”defaultLoadData=”true/fals e加载时下载数据”reportQueryField=”报表查询条件的字段名,为空表示不做为报表查询条件”>< parameterItem>…..(4)is Visible:是否显示.(5)childID:孩子节点的ID,如果为空表示自己就是叶节点.(6)serverReportClass:服务的负责生成报表的类.2.获得报表列表流程图3.生成报表列表流程图:客户端获得服务数据后,通过Name字段作为界面显示的名称,通过childID标识父子关系,如果为空表示自己就是叶节点.4.生成查询界面和数据填充流程图界面生成只跟XML中的parameters和parameterItem相关,通过这里面的属性和依赖关系生成相应查询界面。

跟我学JasperReports报表框架——应用JasperReports和iReport报表工具改善应用系统中的数据显示效果

跟我学JasperReports报表框架——应用JasperReports和iReport报表工具改善应用系统中的数据显示效果

1.1跟我学JasperReports报表框架——应用JasperReports和iReport报表工具改善应用系统中的数据显示效果1.1.1应用报表改善数据的显示1、在Web开发报表的时候,我们都会碰的这样的问题:(1)统计图和表格混合。

网页中只有表格的数据,缺乏统计图表,浏览数据不够直观。

在客户的强烈要求下添加图表,解决表和图混合一起的问题要编写多个JSP或Servlet,并且还不好解决,还有重点注意图片的链接。

(2)上下翻页,跨页翻页。

报表多页时,上下翻页是个问题。

现在流行的方法都只能解决表数据的问题,报表有图表又应该怎样解决呢?(3)导出电子文档保存。

查询结果(报表)存档问题,特别是在金融行业,他们的一般都会要求统计查询的结果保存起来,一般会要求以Word,Excel等格式下载保存。

你在开发的过程中是否对查询结果做了两套:针对Web显示编写一套代码,针对Word下载又编写一套代码2、常见的报表格式报表是数据统计结果的呈现。

常见的报表格式有表格、数据立方体(多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。

3、JasperReports历史(1)JasperReports由Teodor Danciu于2001年创立那时他接受一项任务,为他参预的项目做报表工具的评估。

他发现现存的方案对他们的项目预算来说都过于昂贵,于是他决定编写自己的报表工具。

后来,这个项目被取消了。

于是他开始在业余时间开发JasperReports,并于2001年9月在注册了这个项目。

不久以后,他就开始收到来自潜在用户的邮件,尽管他还没有提交任何代码。

(2)JasperReports于2001年11月发布了它的0.1.5版从那以后,JasperReports被广泛地使用。

如今,它已是最流行的报表工具之一。

作为JasperReports享有巨大声望的一个证明,用Google搜索java reporting tool,返回的第一条结果就是JasperReports网站。

使用jasperReport制作报表

使用jasperReport制作报表

兴明软件DRP开发团队 兴明软件DRP开发团队
基础知识-为什么选用jasperReport+ireport?
不足:
1、文档缺少 2、不可移植 3、运行速度慢 4、可视化设计器不够完善
兴明软件DRP开发团队 兴明软件DRP开发团队
基础知识-jr和ir是什么关系?
jasperReport是报表引擎,用来解析编译xml格式的报 jasperReport是报表引擎,用来解析编译xml格式的报 表设计文件,填充数据,打印、导出、显示。最新版本 1.2.7 Ireport是jasperreport模块文件的可视化设计器。最新 Ireport是jasperreport模块文件的可视化设计器。最新 版本1.2.7 版本1.2.7 注意:jasperreport的版本升级时,ireport也必定升级。 注意:jasperreport的版本升级时,ireport也必定升级。
兴明软件DRP开发团队 兴明软件DRP开发团队
• • • • • • • • • • JRBeanArrayDataSource JRBeanCollectionDataSource JRJpaDataSource JRCsvDataSource JRHibernateIterateDataSource JRHibernateListDataSource JRHibernateScrollDataSource JRMapArrayDataSource JRMapCollectionDataSource JRTableModelDataSource
使用jasperReport制作报表
基础知识 高级进阶 参考资料
兴明软件DRP开发团队 兴明软件DRP开发团队
基础知识-为什么选用jasperReport+ireport?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JasperReport报表概要设计
一.背景概述
JasperReport应用方案参照郭总发的“JasperReport应用于java swing 客户端的方案.doc”;
二.客户端与服务端调用概要
1.客户端、服务端职责:
客户端:客户端只考虑、查询条件布局和数据的获取。

服务端:考虑报表以后的升级的易修改性,服务端通过界面提供的数据生成报表,返回,客户端拿到报表对象只是显示即可。

下图是客户端与服务端调用概要图,客户端EJB调用服务方法,服务返回生成好的报表对象。

三.报表设计及流程图
客户端主要是查询界面的逻辑处理,报表会经常加入或修改报表,需要经常修改代码,工作量大,重复工作多,所以考虑采用在服务层采用XML配置功能实现,考虑如下:
1.采用客户端启动时从服务层一次性读取报表的列表,服务可以用XML存储报表列
表,好处是以后新加报表可以在加入一条数据即可,以后修改查询条件或新加报表
客户端无需开发,只需要在XML加入新的配置,,包括几个字段:
<reportList>
<report id=”” name=”” isVisible=””serverReportClass=”class”>
<parameters>
<parameterItem id=””uiType=””relevanceID=””
tableNameLoadData =””fieldLoadData =””defaultLoadData=””
isCondition =””>
</parameterItem>
<parameterItem>…..</parameterItem>
</parameters>
< childs>
<childID><childID>
<childID><childID>
</ childs>
</report>
<report>
……………………………………………………………………….
</report>
</reportList>
(1)ID:唯一标识,0表示跟节点,就是入口。

(2)Name:报表名称,界面用来显示。

(3)parameters和parameterItem及里面的参数:用来生成界面和界面的关联关系、服务层查询条件等,注:只有配了tableName和queryField客户端才
会把此字段当参数发到服务层。

< parameters >
<parameterItem id=”控件唯一标识,此字段为数字,界面顺序从小到大
排序” uiType=”dateUI/listUI/selectUI/comboboxUI” relevanceID=”点击
此空件后触发的控件id”tableNameLoadData=”表名,用于填充自己
控件”
fieldLoadData =”表字段,用于填充自己控件”
defaultLoadData=”true/false加载时下载数据”
reportQueryField=”报表查询条件的字段名,为空表示不做为报表查询
条件”>
</parameterItem>
< parameterItem>…..</ parameterItem>
</ parameters >
(4)is Visible:是否显示.
(5)childID:孩子节点的ID,如果为空表示自己就是叶节点.
(6)serverReportClass:服务的负责生成报表的类.
2.获得报表列表流程图
3.生成报表列表流程图:
客户端获得服务数据后,通过Name字段作为界面显示的名称,通过childID标识父子关系,如果为空表示自己就是叶节点.
4.生成查询界面和数据填充流程图
界面生成只跟XML中的parameters和parameterItem相关,通过这里面的属性和依赖关系生成相应查询界面。

5服务层生成报表以及数据库链接流程图。

四.外部接口
1.获得报表列表对象
Public Map<String , ReportInfo > getReportListMap()
参数:无
返回值:Map<String ,ReportInfo>
(1)String:报表ID。

(2)ReportInfo:报表列表对象,与XML字段相匹配。

2.填充控件数据方法
public List<FillComponentInfo> get FillComponentInfoList(List<ConditionInfo>)
参数:List<ConditionInfo>:参数对象列表。

Class ConditionInfo{
String reportID,//报表ID
String parameterItemID,//参数ID
String condition//查询条件
}
返回值:List<FillComponentInfo>:用来填充界面控件数据对象。

Class FillComponentInfo{
String name;//空间显示的名称
Object object;//库表直正的数据,可用来用来做查询条件
}
3.通过查询条件生成报表对象
public JPanel getReportPanel(List<ReportQueryInfo>)
参数:List<ReportQueryInfo>:查询条件列表
Class ReportQueryInfo{
String reportID,//报表ID
String parameterItemID,//参数ID
String condition//查询条件
}
返回值:JPanel:生成好的报表对象面板,客户端直接用来显示,这样SERVERIF 中不用载加JasperReport JAR包了。

相关文档
最新文档