话说图形报表

来源:互联网 发布:湖南卫视 知乎 编辑:程序博客网 时间:2024/05/22 01:45

原帖:http://bonyfish.cn/logs/20091208-graph-report.html

 

在javaeye上看到有个新闻“Highcharts:非常漂亮的图表API ”,自己也做过图形报表相关的工作,就此对图形报表发表一点自己的想法:
1.图形报表非常醒目
图形报表是一种富格式,粗粒度的报表表现方式。表格样式的报表容纳的信息比较细,没法像图形那样直观。在一些不需要非常详细统计的情况下,图形报表的优势是非常明显的。在业务系统中融合图形报表,几乎就变成了一个必备需求。一个普遍的可以想象的场景是,能够简单明了的展现统计信息趋势等,又能在必要的时候得到详细的统计数据,这就使得系统拥有混合多种报表表现形式的能力。
2.服务端与客户端的图形报表
我认为图形报表可以分成两部分,数据和渲染引擎。渲染引擎就主要是提供接口接受数据并把数据显示出来,或许还提供了一些接口让用户参与交互。现在这个引擎的实现方式可谓多种多样,有些是语言相关的,例如birt,jreport等,他们大体上是通过数据源定制描述文件(例如通用的xml格式),然后自己解析并展现。这种方式的通用性不是很强,因为他比较依赖于服务端环境,就是说你必须要在添加一套组件,多跑一套应用才能使用。另外还有一些是基于客户端技术的,例如flash,css/js等,对于服务端来说只要提供数据就可以了,非常方便。因为这个原因,我更加推荐使用客户端技术。
3.flash图形报表的可用性
看了一些基于客户端的实现方式,个人是比较赞赏flash实现方式的。我是看重flash表现力非常强大,组件化,不懂flash也可以轻松弄出非常漂亮的报表。如果要推荐一个的话,我觉得基于flash技术的FusionChart可以满足绝大多数的需求。像什么直线图,曲线图、区域图、区域曲线图、柱状图、饼图都可以轻松实现。如果使用收费版本的话还有更加强大的功能(当然你也可以选择在网上找破解版),这类工具还可以轻松打印,提供多种格式转换,还可以动态改变报表。这样你就发挥你的创造力了,例如配合ajax来展示个股分时图等等。
4.集成不是个问题
接上面的flash报表的话题。如果我们选择flash报表的话,我们可以预见的是,它本身就提供了一套适用性非常强的接口。再加上这本来就是服务端语言无关的实现方式,从我的工作经验上看,单单这点不会是什么难题的。我觉得flash报表能解决90%的问题,但是如何补充flash报表在功能上的缺陷? 这才是我们要考虑的问题吧。我的想法是,一套flash报表不行,我用多一套其他的总可以了吧?现在服务端主要的功能是提供数据,而客户端做的是接受数据并展示。如果使用多套客户端技术的话,那么服务端的数据再经过一套适配器转换即可。管你使用的是flash,还是css/js,你只要定义数据适配器即可。虽然现在这些只是一些想法,而FusionChart也的确是满足了我所有的需求,但是我还是觉得这是完全可行的。

-----------------------------------------------

欢迎访问我的博客: http://bonyfish.cn

原创粉丝点击