锁定老帖子 主题:图表组件设计思路
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-04
fantasy 写道 wslfh2008 写道 我觉得FusionCharts抽取出一个公用方法就可以了,用SQL的话不通用,你的X轴和Y轴不好定,对多系列也不方便
从数据分析里,已经说明了使用SQL可以实现单系列和多系列图,而多系列需要做一次数据分析。为什么X轴和Y轴不好定,能详细说说吗? 比如X轴和Y轴是可以互换的,你现在能实现它们的互换吗?恐怕还要做一些工作吧,所以不如提供JAVABEAN,说明以哪列为X,Y是哪些元素或者字段,当然还有双Y的情况你是怎么考虑实现的? |
|
返回顶楼 | |
发表时间:2010-11-04
最后修改:2010-11-04
wslfh2008 写道 fantasy 写道 wslfh2008 写道 我觉得FusionCharts抽取出一个公用方法就可以了,用SQL的话不通用,你的X轴和Y轴不好定,对多系列也不方便
从数据分析里,已经说明了使用SQL可以实现单系列和多系列图,而多系列需要做一次数据分析。为什么X轴和Y轴不好定,能详细说说吗? 比如X轴和Y轴是可以互换的,你现在能实现它们的互换吗?恐怕还要做一些工作吧,所以不如提供JAVABEAN,说明以哪列为X,Y是哪些元素或者字段,当然还有双Y的情况你是怎么考虑实现的? 对的。我觉得输入SQL,JAVA bean或者XML都可以。在SQL作为输入的情况下,要支持X,Y呼唤就必须在输入的时候增加额外配置信息作为输入,如哪一列是X,哪一列是Y.包括X,Y列的中文描述信息,都必须作为配置信息输入。 双Y是在什么应用场景下会出现? |
|
返回顶楼 | |
发表时间:2010-11-04
fantasy 写道 wslfh2008 写道 fantasy 写道 wslfh2008 写道 我觉得FusionCharts抽取出一个公用方法就可以了,用SQL的话不通用,你的X轴和Y轴不好定,对多系列也不方便
从数据分析里,已经说明了使用SQL可以实现单系列和多系列图,而多系列需要做一次数据分析。为什么X轴和Y轴不好定,能详细说说吗? 比如X轴和Y轴是可以互换的,你现在能实现它们的互换吗?恐怕还要做一些工作吧,所以不如提供JAVABEAN,说明以哪列为X,Y是哪些元素或者字段,当然还有双Y的情况你是怎么考虑实现的? 对的。我觉得输入SQL,JAVA bean或者XML都可以。在SQL作为输入的情况下,要支持X,Y呼唤就必须在输入的时候增加额外配置信息作为输入,如哪一列是X,哪一列是Y.包括X,Y列的中文描述信息,都必须作为配置信息输入。 双Y是在什么应用场景下会出现? 嗯,双Y就是两个Y轴的情况,一搬是两个单位的情况下,比如金额和数量,那么是金额的就以左右为参考,数量的就以右边为参考 |
|
返回顶楼 | |
发表时间:2010-11-04
最后修改:2010-11-04
最近也在做公司的一个报表查询系统,前台主要用Flash图表展示(使用FashionCharts),配合简单的表格。领导要求以后可以在前台任意添加修改报表。因此将报表的数据源等配置信息存放在数据表中,而前台Falsh展示配置使用XML文件,用户可以随时修改,如指定数据表的那个字段为X轴等
后台数据源是从数据库中查询出来的,每张报表对应一条配置记录。数据表中有一个字段存放查询SQL语句(如 select CLASS,FieldA,FieldB from T1),而Flash的XML文件则指定查询结果集的哪个字段作为X轴上的一个系列等 报表配置文件如下: <graph caption="材料采购分析图" xaxisname="类别" yxisName="金额" showValues='0' rotateNames='0' formatNumberScale='0' baseFontSize="12"> <categories fieldName="CLASS" font="宋体" fontSize="14" fontColor="000000"> </categories> <dataset fieldName="FieldA" seriesname="本月采购额"></dataset> <dataset fieldName="FieldB" seriesname="去年同期采购额"></dataset> </graph> 其中属性“fieldName”表示引用SQL查询结果集中的哪个字段的系列值。 用户查询时,系统将根据查询结果数据,结合上面的XML文件,填充为一份完整的XML数据文件,然后传递到前台页面Flash显示 后台根据查询结果集,并根据前面的XML配置文件规则,自动生成如下完整的报表数据XML文件: <graph caption='材料采购分析图' xaxisname="类别" yaxisname="金额" rotateNames='0' rotateYAxisName='0' formatNumberScale="0" baseFontSize="12"> <categories fieldName="CLASS" font="宋体" fontSize="14" fontColor="000000"> <category label="材料一" /> <category label="材料二" /> <category label="材料三" /> <category label="材料四" /> </categories> <dataset fieldName="FieldA" seriesname="本月采购额"> <set value="100" /> <set value="200" /> <set value="300" /> <set value="220" /> </dataset> <dataset fieldName="FieldB" seriesname="去年同期采购额"> <set value="200" /> <set value="150" /> <set value="400" /> <set value="200" /> </dataset> </graph> 这个报表还有待完善的地方: 1、首先需要制作一个向导页面,引导用户对Flash进行配置,最终生成一个报表配置文件(见第一个XML文件) 2、其他略 |
|
返回顶楼 | |
发表时间:2010-11-04
直接用SQL语句来配置,是不是过于复杂了?
|
|
返回顶楼 | |
发表时间:2010-11-04
可否采用数据仓库的思想抽象出万能模型来设计?
|
|
返回顶楼 | |
发表时间:2010-11-04
回复:hellostory
这种方法不错,个人比较支持 |
|
返回顶楼 | |
发表时间:2010-11-04
fantasy 写道 从项目经历来分析,客户经常会需要各种图表来分析网络现状及业务影响,导致我们针对于不同的项目会要定制开发不同的图表,而这部分图表大部分不能产品化。
从技术角度分析,往往一个图表涉及到多个模块,考虑到松耦合,各个模块自己封装自己的接口,而最终需要组合不同模块的接口来获取图表需要的数据。 从重复造轮子的角度分析,业内的报表组件都比较庞大,且使用他们的实施成本和集成成本比较大,如皮肤的一致性,实施的时候多几项配置。 为了能够提高开发图表的效率,节约研发成本,所以有必要开发一个轻量级的图表组件。 图表组件的设计思路为输入为SQL语句,JavaBean。 输出为各种图表或表格。 附件是初略的设计,主要是描述了下设计思路,涉及到很多细节问题未深入设计,欢迎拍砖! FusionCharts是可以保存为图片的。因此不需要JFreeChart,FusionCharts我很早前就用了,可以保存图片的,api里面就有。 |
|
返回顶楼 | |
发表时间:2010-11-04
既然讲究通用性,当然要做的很通用,觉得一开始的切入点就有问题哦,那如果是用NOSQL怎么办呢?呵呵,个人认为你这也不是就像Jfreechart一样在造轮子么?
|
|
返回顶楼 | |
发表时间:2010-11-05
flex作报表挺好,加入flash还不如flex
|
|
返回顶楼 | |