Struts2与JasperReports集成:Web报表开发示例

需积分: 9 6 下载量 196 浏览量 更新于2024-07-23 收藏 171KB DOCX 举报
本文档是一篇关于如何在Struts2框架中集成JasperReport实现Web报表应用的教程。JasperReports是一个强大的开源报表工具,它提供了丰富的报表设计功能,而iReports作为其可视化设计工具,能够帮助开发者轻松创建专业级的报表模板。 首先,准备工作是关键。本文使用的开发环境包括MyEclipse 5.5、Eclipse 3.2、JDK 5.0、Tomcat 5.5以及Struts2.0.6版本。虽然源代码中并未提供所有依赖的jar包,但主要涉及的类库包括JasperReports核心库、iText等。由于文件较大,作者建议读者自行下载并添加到项目中。 报表模板设计是主要内容。本文例中,数据源被设置为JavaBean,模拟了一个People对象,包含属性如编号、城市、姓名和地址。报表展示的是人员的基本信息,并且对同一城市的人员进行汇总。在iReports中,开发者需使用jrxml语言来定义报表布局,例如定义列数、页面尺寸、打印顺序等。示例中提供的WebRoot\jasper\jasper_template.jrxml文件就是一个基础的JasperReport XML文件,包含了报表的元数据和结构定义。 具体步骤可能包括以下几点: 1. 创建JavaBean,定义People类,包含所需的数据属性。 2. 在iReports中,新建报表项目,导入People类,设计报表的表头、行数据和分组元素,以及任何所需的计算字段。 3. 设置报表的输出格式(如宽度、高度)、排序和方向(在这个例子中是垂直方向)。 4. 配置报表参数,以便与Struts2的Action逻辑相连接,传递数据源和动态参数。 5. 在Struts2的Action中,根据用户请求动态获取数据,组装成适合JasperReports处理的格式,并传递给报表引擎。 6. 调用JasperReport的渲染方法,生成PDF或其他格式的报表,然后将其响应返回给前端。 通过这个示例,开发者可以学习如何将Struts2的业务逻辑与JasperReport的报表功能结合起来,创建出动态、交互式的Web报表,提高数据展示的效率和用户体验。对于更复杂的项目,可能还需要考虑数据库连接、安全性、性能优化等因素,但这篇教程提供了一个良好的起点。
2009-06-22 上传
http://download.csdn.net/source/1856731 (最新) 这是个封装给java使用的 web插件报表,这个市场上已经存在,但是是个商业报表: 本人提供的是免费报表,不不敢与商家争长短,但系希望对你有用: 使用方法: 范例使用的是access数据库,首先在odbc 注册ReportDemo.mdb 数据源,名字随你喜好, 然后修改classes文件下的 db.properties 的连接。 然后把项目放在tomcat下运行既可: 起作用的关键文件:RMVIEWP.CAB 文件,客户端插件 Lib下的两个包:RMVIEW.jar,commons-logging.jar 使用接口: package common.rmview; /* * 设计的第一步,首先定义字段的类型, * 然后通过AddRow将结果加入缓存中 * */ import common.rmview.surperInterface.IDataSet; import common.rmview.until.Types; public interface IRMDataSet extends IDataSet { public void addField(String fieldName, Types.filedType type, int fieldLength, Boolean isNull);//1:将段类型加入 public void addField(String fieldName, Types type, int fieldLength);//1:将段类型加入,isNull 默认为 false public void AddRow(IRMDataRecord rmd);//2:在 IRMDataRecord实现类赋值完成一条记录后使用一次,循环加入. } package common.rmview; import common.rmview.surperInterface.IDataRecord; /* * 使用时的第二步 * 通过这个接口设置结果集 */ public interface IRMDataRecord extends IDataRecord { public void SetValue(String fieldName,Object objValue); } package common.rmview; /* * 第三步: * 前面IDataSet,IRMDataRecord实现类完成后,通过此接口的实现类向html也面输出ie到ie以方便ocx的取值使用 */ public interface IRMEngine { final int rmf=1; final int rls=2; public void SetReportFile(String urlandFileName,int fileFormat);//1:设置报表路径及文件名称 public void AddClientDataSet(String dataSourceName,IRMDataSet rmd);//2:设置数据源名称以ocx使用,并把IRMDataSet实现的结果加入 /* * 字符串组装方式:rm报表报表文件流base64码+"&&"+字段类型码+"&&"+结果集+"&&"+数据源名称 */ public String CreateViewer();//3:生成在html页面的编码 } 具体的使用方法请参照 index.jsp 报表的使用方法请自己参照官方的文档 RMDesigner.exe 是个设计器,也可以使用delphi 的RM报表来设计 使用没有任何的限制。使用前多测试,看是否真正是你需要的。 修正:增加支持多数据源,报表显示完成内存化,本地不存任何的数据 新建QQ群:29672297 有疑问请发邮件到 lujianfu123@yahoo.com.cn