JasperReports 报表开发


JaspertReports 报表开发JaspertReports 报表开发 吴江 2010.10 内容目录 ƒ 报表定义 ƒ 常见报表工具常见报表 具 ƒ JasperReports是什么? JRt怎么用?ƒ JasperReports怎么用? ƒ JasperReports开发实例 ƒ JasperReports常见问题 ※ 什么是报表? 百度百科: 报表是用表格 图表等格式来动态显示数据报表是用表格、图表等格式来动态显示数据。 可以用公式表示为:“报表 = 多样的格式 + 动态的数据”。 报表是企业管理的基本措施和途径 是企业的基本业务要求 也是报表是企业管理的基本措施和途径,是企业的基本业务要求,也是 实施 BI 战略的基础。报表可以帮助企业访问、格式化数据,并把数 据信息以可靠和安全的方式呈现给使用者 深入洞察企业运营状况据信息以可靠和安全的方式呈现给使用者。深入洞察企业运营状况 ,是企业发展的强大驱动力。 ※ 什么是报表? ƒ 报表是以各种数据为基础,按业务统计要求编制,用于反映各种业 务指标的,具有一定格式、包含一定信息内容的载体 ƒ 报表是获取信息的一种有效途径 ƒ 报表是一种重要的表达信息的方法 ƒ 报表是人们归纳性地观察世界的最常用的一种手段 ƒ 报表是各级领导了解情况,决定政策,指导管理工作,制定和检查 仪器设备计划的依据 ƒ 报表是了解情况、布置工作、安排计划、阶段总结最经常运用的方报表是了解情况、布置工作、安排计划、阶段总结最经常运用的方 式。 ※ 报表的分类与展现 ƒ 报表基本分类:销售报表、会计报表、财务报表等各种统计分析报 表 ƒ 报表图形展现:柱形图、折线图、饼图、条形图、面积图、散点图 、股价图(K线)、曲面图、气泡图、雷达图、仪表盘等 ƒ 报表文件格式: Excel、Word、PDF、Html、Txt、xml、Flash等 内容目录 ƒ 报表定义 ƒ 常见报表工具常见报表 具 ƒ JasperReports是什么? JRt怎么用?ƒ JasperReports怎么用? ƒ JasperReports开发实例 ƒ JasperReports常见问题 ※ 常见报表工具 ƒ 纯JAVA报表,支持WEB报表:开源JasperReports、OpenReports 、 Eclipse BIRT等,国内主要的商业工具有润乾、帆软、华丹等。 ƒ “支持”JAVA的报表工具:非Java的报表工具,但是可以在Java程 序中调用,一般采用独立报表服务器的,如Bo/Crystal Report, Cognos,和勤等;另一大类是在前端有控件的,如数巨报表等。g ƒ 其他工具:Word、Excel等。其他工具:Word、Excel等。 ※ JAVA报表工具功能 ƒ 基本功能: ƒ 纯Java报表工具,提供了全面API接口 ƒ 提供报表设计IDE工具,如类似于EXCEL ƒ 支持图表展现,可以生成柱图、饼图、折线图、仪表盘等 ƒ 支持报表导出和打印,如Excel、Word、PDF、Html、Txt、xml、 Flash等格式 ƒ 支持多种数据源,如各种数据库、xml、自定义数据源等 ƒ 高级功能:高级功能: ƒ 内置各种函数、单独报表计算引擎、定时自动调度、报表填报 内容目录 ƒ 报表定义 ƒ 常见报表工具常见报表 具 ƒ JasperReports是什么? JRt怎么用?ƒ JasperReports怎么用? ƒ JasperReports开发实例 ƒ JasperReports常见问题 ※ JasperReports是什么? ƒ JasperReports:基于Java的开源报表工具,可以在Java环境下像其它 IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、 CSV、XML等文件输出格式。 ƒ JasperReports是当前Java开发者最常用的报表工具。 ƒ 项目主页: http://jasperreports.sourceforge.net/pjp p g ƒ http://jasperforge.org/projects/jasperreports ※ iReport介绍 ƒ iReport:为JasperReports设计的强大的,直观的,易于使用的可视化 报表设计器采用纯Java开发。这个工具允许用户可视化编辑包含charts, 图片,子报表等的复杂报表。 iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑 XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括: JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), ( Q ) CSV等。它支持多种输出格式包括:PDF,RTF,XML,XLS,CSV,HTM。 ƒ 项目主页:http://ireport.sourceforge.net/项目主页:http://ireport.sourceforge.net/ ƒ http://jasperforge.org/projects/ireport 内容目录 ƒ 报表定义 ƒ 常见报表工具常见报表 具 ƒ JasperReports是什么? JRt怎么用?ƒ JasperReports怎么用? ƒ JasperReports开发实例 ƒ JasperReports常见问题 ※ JasperReports怎么用--学习sample ƒ Step1:下载 jasperreports 375 project zipƒ Step1:下载 jasperreports-3.7.5-project.zip iReport-3.7.5-windows-installer.exe St 2 下载JDK( jdk1 5 0 15 )和At( h t 181)ƒ Step2:下载JDK( jdk1.5.0_15 )和Ant ( apache-ant-1.8.1 ) ƒ Step3:启动Hsqldb数据库 cd jasperreports-3.7.5-project\jasperreports-3.7.5\demo\hsqldb ant runServer S4运行示例( hllii)ƒ Step4:运行示例(the sample applications) cd jasperreports-3.7.5-project\jasperreports-3.7.5\demo\samples\charts ƒ Step4:查看报表 cd jasperreports-3.7.5-project\jasperreports-3.7.5\demo\samples\charts\build\reports ※JasperReports开发过程※ JasperReports开发过程 ƒ 1 创建xml(使用API创建ƒ 1、创建xml(使用API创建 或iReport设计) 2 编译Cil(生成编ƒ 2、编译Compile(生成编 译后文件jasper) ƒ 3、填充Fill(使用各种数据 源,生成jrprint 文件,文件 中包含了报表数据) ƒ 4、展现View(导出Pdf、 Excel、Html等各种格式报 表文件) 核心类※ JasperReports核心类 ƒ 1、模板编译:net.sf.jasperreports.engine.JasperCompileManager ƒ 2、数据填充:net.sf.jasperreports.engine.JasperFillManager、数据填充 jp p g p g ƒ 3、报表打印:net.sf.jasperreports.engine.JasperPrintManager ƒ 4 报表导出:net sf jasperreports engine JasperExportManager4、报表导出:net.sf.jasperreports.engine.JasperExportManager ƒ 5、报表预览: net.sf.jasperreports.view.JasperViewer(生成的报表 已经包含数据),已经包含数据) ƒ 6、设计预览: net.sf.jasperreports.view.JasperDesignViewer(预 览报表设计 不含数据)览报表设计,不含数据) ※ JasperReports核心类使用pp JasperPrintManager ScreenJasperFillManager Parse Compile Fill Printer Print XML JasperDesign JasperReport JasperPrint PdfExport JRXmlLoader JRCompiler Html Xml JRXmlLoader JRCompiler Xml … JasperExportManagerJasperCompileManager ※ iReport的使用 编译 数据源管理 标题区 设计视图 XML视图 预览视图 标题 页头区 数据列头区 组件工具栏数据列头 数据显示区 组件工具栏 数据列尾区 页尾区 属性设置 报表模板结构树 页尾 摘要区 内容目录 ƒ 报表定义 ƒ 常见报表工具常见报表 具 ƒ JasperReports是什么? JRt怎么用?ƒ JasperReports怎么用? ƒ JasperReports开发实例 ƒ JasperReports常见问题 发实例 发境※ JasperReports开发实例--开发环境 ƒ 工程名称: reportexampleƒ 工程名称: reportexample ƒ 开发环境:eclipse3.3 +myeclipse6.5+jdk1.5 l5(数据库脚本 jt\ ldb\ jdbll)ƒ mysql5(数据库脚本: jasperreport\mysqldb\ jasperdb_mysql.sql) ƒ jaspertreports3.7.5 ƒ ant1.8.1 ƒ struts2 ƒ tomcat-5.5.20 ƒ 引用Jar包: reportexample\WebRoot\WEB-INF\lib ƒ 开发实例:官方例子、应用举例 ƒ 地址:http://localhost:8080/jasperreport/ 发实例 官方例子※ JasperReports开发实例--官方例子 发实例 应实例※ JasperReports开发实例--应用实例 发实例 应实例※ JasperReports开发实例--应用实例 ƒ 1 Hello World!ƒ 1、Hello World! ƒ 2、普通报表:省级行政区划一览表(Table) 3 分组报表 河北省行政区划 览表(G )ƒ 3、分组报表:河北省行政区划一览表(Group) ƒ 4、 含参数报表:XX省行政区划一览表(Parameters) ƒ 5、统计图:各省县级行政区划统计图(Chart) ƒ 6、交叉报表:河北省年度统计数据汇总表(Crosstab) 发实例 数据库表※ JasperReports开发实例--数据库表 行政区划信息表(xzqh_info) 注:级次代码1为省级、2为市级、3为县级 级别代码用于查询所有下级区划 发实例 数据库表※ JasperReports开发实例--数据库表 数据统计类型代码表(sjtjlx_dm) 发实例 数据库表※ JasperReports开发实例--数据库表 行政区划数据统计信息表(xzqh_sjtj_info) 内容目录 ƒ 报表定义 ƒ 常见报表工具常见报表 具 ƒ JasperReports是什么? JRt怎么用?ƒ JasperReports怎么用? ƒ JasperReports开发实例 ƒ JasperReports常见问题 常见问题※ JasperReports常见问题 1 jl与 j 报表模板 l文件编译需要耗费时间 部署时可将ƒ 1、 jrxml 与 jasper:报表模板xml文件编译需要耗费时间,部署时可将 编译后的jasper文件发布,避免每次编译。 ƒ 2、导出PDF报错:检查是否存在iText-xx.jar和iTextAsian.jar ƒ 3、导出EXCEL报错:检查是否存在poi-xx.jar ƒ 4、导出PDF文件不显示汉字:模板设计时,Pdf font需要设置为 pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H“ ƒ 5、控制显示输出:利用属性Print When Expression new Boolean(!$P{isDisplay}.equalsIgnoreCase("yes")), 那么只有当参py q g y 数display的值为yes的时候才显示 常见问题※ JasperReports常见问题 ƒ 6、导出Excel报表中包含空白行问题:首先把所有的Field设成一样高, 对齐 ! 把所在Band的高度也设成和Field一样高, 让Field正好放入Band. 然后调 整Field的宽度, 让每个Field都相邻,没有空隙. 最后,记得设置参数:整Field的宽度, 让每个Field都相邻,没有空隙. 最后,记得设置参数: exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_S PACE BETWEEN ROWS Boolean TRUE);PACE_BETWEEN_ROWS, Boolean.TRUE); ƒ 7、去除Excel报表中两侧空白:因为第一行和第A列分别是用来表示page top margin 和 page left margin的 对于Excel来说 纯粹多余 解决方法是top margin 和 page left margin的. 对于Excel来说, 纯粹多余. 解决方法是 把page margin 设成0. 不过如果这个report还需要以PDF等显示, 那么设成 0就不好看了 最好能动态的改变 i 当然 这个改变只能在外部(0就不好看了. 最好能动态的改变page margin. 当然,这个改变只能在外部( 调用Report的地方) 进行. ƒ 8、报表language:默认为Groovy,在报表模板属性中修改为Java ThanksThanks
还剩28页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 3 人已下载

下载pdf

pdf贡献者

crazy/J

贡献于2012-04-27

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf