JasperReport报表概要
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
一.背景概述
JasperReport应用
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
参照郭总发的“JasperReport应用于java swing 客户端的方案.doc”;
二.客户端与服务端调用概要
1.客户端、服务端职责:
客户端:客户端只考虑、查询条件布局和数据的获取。
服务端:考虑报表以后的升级的易修改性,服务端通过界面提供的数据生成报表,
返回,客户端拿到报表对象只是显示即可。
下图是客户端与服务端调用概要图,客户端EJB调用服务方法,服务返回生成好的报表对象。
。
三. 报表设计及流程图
客户端主要是查询界面的逻辑处理,报表会经常加入或修改报表,需要经常修改代码,工作量大,重复工作多,所以考虑采用在服务层采用XML配置功能实现,考虑如下:
1. 采用客户端启动时从服务层一次性读取报表的列表,服务可以用XML存储报表列表,好处是以后新加报表可以在加入一条数据即可,以后修改查询条件或新加报表客户端无需开发,只需要在XML加入新的配置,,包括几个字段:
…..
< childs>
childs>
……………………………………………………………………….
(1) ID:唯一标识,0表示跟节点,就是入口。
(2) Name:报表名称,界面用来显示。
(3) parameters和parameterItem及里面的参数:用来生成界面和界面的关联关系、服务层查询条件等,注:只有配了tableName和queryField客户端才会把此字段当参数发到服务层。
< parameters >
< parameterItem>….. parameterItem>
parameters >
(4) isVisible:是否显示.
(5) childID:孩子节点的ID,如果为空表示自己就是叶节点.
(6) serverReportClass:服务的负责生成报表的类.
2.获得报表列表流程图
3.生成报表列表流程图:
客户端获得服务数据后,通过Name字段作为界面显示的名称,通过childID标识父子关系,如果为空表示自己就是叶节点.
4.生成查询界面和数据填充流程图
界面生成只跟XML中的parameters和parameterItem相关,通过这里面的属性和依赖关系生成相应查询界面。
5服务层生成报表以及数据库链接流程图。
四.外部接口
1.获得报表列表对象
Public Map
getReportListMap()
参数:无
返回值:Map
(1)String:报表ID。
(2)ReportInfo:报表列表对象,与XML字段相匹配。
2.填充控件数据方法
public List< FillComponentInfo> get FillComponentInfoList(List)
参数:List:参数对象列表。
Class ConditionInfo{
String reportID,//报表ID
String parameterItemID,//参数ID
String condition//查询条件
}
返回值:List< FillComponentInfo>:用来填充界面控件数据对象。
Class FillComponentInfo{
String name;//空间显示的名称
Object object;//库表直正的数据,可用来用来做查询条件
}
3.通过查询条件生成报表对象
public JPanel getReportPanel(List)
参数:List:查询条件列表
Class ReportQueryInfo{
String reportID,//报表ID
String parameterItemID,//参数ID
String condition//查询条件
}
返回值:JPanel:生成好的报表对象面板,客户端直接用来显示,这样SERVERIF中不用载加JasperReport JAR包了。