话说图形报表(旧)

| Comments

这个是09年底写的。这几年更多看到关于html5、css3、javascript的图形展现显示,效果更好,功能也很强大, 随着html5、css3的普及,以后会有更多的应用出现。例如淘宝团队可视化JavaScript库[Datav.js][2],在数据分析展示方面效果就很不错。

在javaeye上看到有个新闻Highcharts:非常漂亮的图表API,自己也做过图形报表相关的工作,就此对图形报表发表一点自己的想法:

图形报表非常醒目

图形报表是一种富格式,粗粒度的报表表现方式。表格样式的报表容纳的信息比较细,没法像图形那样直观。 在一些不需要非常详细统计的情况下,图形报表的优势是非常明显的。在业务系统中融合图形报表,几乎就变成了一个必备需求。 一个普遍的可以想象的场景是,能够简单明了的展现统计信息趋势等,又能在必要的时候得到详细的统计数据,这就使得系统拥有混合多种报表表现形式的能力。

服务端与客户端的图形报表

我认为图形报表可以分成两部分,数据和渲染引擎。渲染引擎就主要是提供接口接受数据并把数据显示出来,或许还提供了一些接口让用户参与交互。 现在这个引擎的实现方式可谓多种多样,有些是语言相关的,例如birt,jreport等,他们大体上是通过数据源定制描述文件(例如通用的xml格式),然后自己解析并展现。 这种方式的通用性不是很强,因为他比较依赖于服务端环境,就是说你必须要在添加一套组件,多跑一套应用才能使用。 另外还有一些是基于客户端技术的,例如flash,css/js等,对于服务端来说只要提供数据就可以了,非常方便。因为这个原因,我更加推荐使用客户端技术。

flash图形报表的可用性

看了一些基于客户端的实现方式,个人是比较赞赏flash实现方式的。我是看重flash表现力非常强大,组件化,不懂flash也可以轻松弄出非常漂亮的报表。 如果要推荐一个的话,我觉得基于flash技术的FusionChart可以满足绝大多数的需求。像什么直线图,曲线图、区域图、区域曲线图、柱状图、饼图都可以轻松实现。 如果使用收费版本的话还有更加强大的功能(当然你也可以选择在网上找破解版),这类工具还可以轻松打印,提供多种格式转换,还可以动态改变报表。 这样你就发挥你的创造力了,例如配合ajax来展示个股分时图等等。

集成不是个问题

接上面的flash报表的话题。如果我们选择flash报表的话,我们可以预见的是,它本身就提供了一套适用性非常强的接口。 再加上这本来就是服务端语言无关的实现方式,从我的工作经验上看,单单这点不会是什么难题的。我觉得flash报表能解决90%的问题, 但是如何补充flash报表在功能上的缺陷?这才是我们要考虑的问题吧。我的想法是,一套flash报表不行,我用多一套其他的总可以了吧? 现在服务端主要的功能是提供数据,而客户端做的是接受数据并展示。如果使用多套客户端技术的话,那么服务端的数据再经过一套适配器转换即可。 管你使用的是flash,还是css/js,你只要定义数据适配器即可。虽然现在这些只是一些想法,而FusionChart也的确是满足了我所有的需求,但是我还是觉得这是完全可行的。

Comments