计划开发一个基于web用户可定制的报表系统

为满足用户定制化需求,设计了一款基于Web的报表系统。该系统包含定制数据搜集、报表渲染输出及数据存储三大模块,采用MVC架构,旨在提供高效灵活的报表解决方案。
   因项目需求,需要一个用户可定制的报表系统,本以为是个很轻松的工作,因为开源社区中有很多很强的开源框架,如JasperReport,openReport,birt等等,但仔细研究以后都很难满足我的需求,关键不是它们的功能不行,主要是他们都基于配置模板文件,虽然都提供了很好的Gui工具,可以很轻松绘制报表,但这都是基于给用户定制报表,如果想让用户定制报表该怎么办?我所说的定制包括,报表样式,group,列,实体,排列规则,筛选规则,及输出格式(html,word,excel,pdf).刚开始我的想法是先让用户提供各种定制参数,然后根据这些构建模板文件(大多是xml格式),然后用开源框架进行绘制。但我很快就放弃了这种想法,原因有两个:1)这些配置文件的格式都比较复杂(比如.jasper文件),自动生成的难度很大,并且也没这个必要;2)效率问题,因为此系统是要针对与多数用户,我担心系统吃不消。
   经过仔细分析,我需要的报表系统的关键不是在报表的绘制,只要能达到清晰,明了的表格效果就足以。关键在于用户的定制。所以用一些大型的报表系统没有必要,我不需要那么多功能。逐渐我就有了自己开发一个基于web用户可定制的报表系统。
   此系统的主要部分有三个,一个是用户定制数据搜集部分,第二个是根据定制数据进行渲染和输出,最后一个把定制数据保存在数据库中。难点也是这么三个,构建数据结构,根据数据结构绘制报表,把数据储存到数据库中。我打算借用swing的架构和思想,用mvc的架构,最初的系统还是基于ssh(struts+spring+hibernate),还是先满足项目需要,然后如果有时间再把它抽出来,只用jsp+sql+xml,还是想把它最后能做成一个独立框架,毕竟我认为是个很好的想法。难度很大,但也不是mission impossible,加油!给自己鼓劲!
在网上我看到有人嚷着要竖行文本,昨天和前天我又研究了DrawText和DrawTextEx,好象没有提供这种功能参数,但可以通过特殊文本矩形框来实现,不过要在代码实现上好象有点烦琐。如果是标签竖着,那可以通过技巧来实现,每行一个字。如果是文本字段,好象没有多大意义,硬是要竖着的话,那就只有减小单元格的宽度来实现。该报表系统完全可以实现许多复杂的报表, 1,明细表, 2,主表和明细表的关联 3,主表如果是1,请使用函数 SetDataSet(‘D‘,Table1) 告诉系统, Table1是明细表。如果是2,SetDataSet(‘M‘,Table2) SetDataSet(‘D‘,Table1) 就可以实现表间关联,如果是3,SetDataSet(‘M‘,Table2) 其中 M->Master, D->Detail,该项还可以在明细区嵌入文本(预览1),这种报表是其他系统都没有实现的。昨天我又增加了一个功能----计算字段,其实他和公式单元完全一样,只是计算字段有了统计功能(总计,小计,平均)。计算字段能实现更复杂的计算功能(函数中嵌套函数--无限的,只要你的计算机足够强大),不过目前只支持一个函数(if(b,t,f) 不足啊!)。可以说该报表系统是非常优秀的。下一段时间我准备增加 标题区和汇总区(最好还能嵌入图片,这样报表就更加精美了),以便于实现更为复杂的分组功能。天生缺陷:没办法实现复杂的单元格的运算如 C1=A1+C2+C3+B1(就象 Excel和华表). 大家有什么问题或建议或合作者可以给我写信 ----lzg_0625@yahoo.com.cn 改写人:liuzhigang 至于代码我现在还不想公布出来。望各位见凉。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值