论坛首页 Java企业应用论坛

动态报表系统实现思路

浏览 16347 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-09   最后修改:2010-10-09

最近参与到一个报表系统的建设,对于如何实现动态报表系统的,简单谈下自己实现思路,还请大家多指教。

 

开始之前简单描述下用户的需求:

1.报表模板在系统运行之前定义并设计好,生成可视化的html页面(包含表格数据和图形展示),保存到指定的存储目录下。

2.存储过程在指定的时间点启动,按照业务逻辑汇总报表数据,为报表提供数据源。

3.应用程序查询存储过程汇总的数据,并将数据插入到指定的报表模板中,生成用户需要的展示格式:pdf、excel、html等。

 

优势:

模板提前定义好,方便管理。

 

缺点:

可扩展性差,用户无法实现根据业务的需要修改报表的模板。

 

动态报表系统的类型:

1.用户可以修改报表模板

 

思路:

1.1html报表模板提前定义并存储好。

1.2提供一个html在线编辑工具,用户可以在线编辑定义好的模板,添加或者删除指标。

1.3报表模板的指标保存到数据库中。

1.4数据库端有job监控报表模板数据表,如果某一条数据发生变化,则根据变化规则修改相应的存储过程,实现数据汇总的动态修改。

 

2.用户可自由添加、删除报表模板

2.1提供一个html在线编辑工具,用户可以在线添加报表模板,并填写报表汇总的规则:例如几点几分开始汇总该报表的数据。

2.2报表模板数据保存到DB中。

2.3定时任务实时监控模板数据表,发现添加了一个报表模板数据,则根据数据规则动态生成存储过程和执行job。

2.4job启动存储过程,实现汇总数据。

 

第二种设计暂时有个细节尚未考虑清楚:存储过程和执行job的生成如何实现,感觉可以实现,但还有待进一步验证。

当然后面两种实现方式是我个人的一些想法,肯定不会用到当前的项目中的,因为客户没提这样的要求、时间有限等等。

 

仅供大家参考,欢迎有报表研发经验批评指正,谢谢。

 

 

 

 

 

 

   发表时间:2010-10-09  
一个方案,dsoframer+excel

直接用excel作为模板
0 请登录后投票
   发表时间:2010-10-09  
报表就是报表,不要把ETL混进来,不然你前期设计的太复杂,很难去完成
0 请登录后投票
   发表时间:2010-10-09  
kimmking 写道
一个方案,dsoframer+excel

直接用excel作为模板




可有实例?上卷,下钻,多表头,多维能实现否?
0 请登录后投票
   发表时间:2010-10-09  
shiren1118 写道
kimmking 写道
一个方案,dsoframer+excel

直接用excel作为模板




可有实例?上卷,下钻,多表头,多维能实现否?

http://setting.iteye.com/blog/206038
0 请登录后投票
   发表时间:2010-10-09  
kimmking 写道
一个方案,dsoframer+excel

直接用excel作为模板


这个想法不错,也符合实际要求,但是原型已经做出来了,不能再改了。
0 请登录后投票
   发表时间:2010-10-09  
kimmking 写道
shiren1118 写道
kimmking 写道
一个方案,dsoframer+excel

直接用excel作为模板




可有实例?上卷,下钻,多表头,多维能实现否?

http://setting.iteye.com/blog/206038



果然是不错,很有意思~~~等我抽空也弄一个~~


0 请登录后投票
   发表时间:2010-10-09  
shiren1118 写道
报表就是报表,不要把ETL混进来,不然你前期设计的太复杂,很难去完成


你说的没错。
我只是描述了一个思路,实现肯定不会按照最难实现的方案取执行,呵呵。
1 请登录后投票
   发表时间:2010-10-09  
搞得太复杂了,JasperReport+iReport不行吗?
0 请登录后投票
   发表时间:2010-10-09  
直接用报表工具吧
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics