GraphChart简单使用

前不久的项目里需要实现一个简单的统计功能,要求生成统计图,给用户以直观的对比效果。
听说目前使用比较多的是ChartDirector,而且这个组件的应用也很简单。找来试用了一下,确实实现比较方便,可惜没有动态效果,只有静态的图片。
不知同事从哪里找来了一个名叫GraphChart的压缩包,说是里面有几个例子,看看能不能用它实现。打开来一看,里面有几个html静态网页和xml文件,还有些swf格式的FLASH文件。打开网页一看,确实有动态的生成统计图的效果,可惜同事都没有用过,网上也找不到相关的资料。
找不到学习资料,只好从网页的源代码里入手:
打开几个网页的源代码,发现都有个<OBJECT>标签,标签的大多数子标签都一样,唯一不同的是<embed>子标签,在几个网页的源代码中,<embed>子标签的
src属性都是这样的字符串:<embed src="xxx.swf?IsLocal=1&dataURL=data.xml"></embed>
仔细一看,这里居然有FLASH文件名和XML文件名?尝试着把前面的xxx.swf用不同的FLASH文件替换,生成的统计图数据没变,样式却变了(柱状图、饼图、曲线图);用其它的XML文件替换掉data.xml,统计样式没变,数据却变了。
哈哈,终于有了点眉目:统计图的数据和样式是分离的,FLASH文件负责画统计图,并且产生动态效果;而统计图的数据来源,则是指定的XML文件。
但问题是,要做的是桌面应用,该如何指定它的FLASH和XML文件呢?FLASH组件也有类似于上面的src属性吗?
先试试再说:
1>用 regsvr32命令注册FLASH8.ocx组件
2>在.NET的工具栏里添加刚刚注册的FLASH组件(注册后的组件名为AxShockwaveFlashObjects)
3>从工具栏里把刚添加的FLASH控件添加到Windows窗体中(类型为AxShockwaveFlash)

那现在如何指定统计图的样式和数据来源的XML文件呢?
去网上搜索AxShockwaveFlash的用法,发现可以这样设置:
//flashplayer是AxShockwaveFlash控件对象
flashplayer.movie = "xxx.swf?IsLocal=1&dataURL=data.xml";
flashplayer.play();

运行之后,果然能出来统计图。哈哈!
现在还有个问题,如何根据需要生成统计数据呢?
打开几个作为统计数据源的XML文件,发现它们的节点结构都一致,都是这样的结构:
<graph background="FFFFFF" font="Arial" caption="chart title">
   <set name="a" value="1" color="000000" link="www.test.com"/>
   <set name="b" value="2" color="223344" />
   <set name="c" value="3" color="556677" />
</graph>
试着修改其中的数据,并观察运行效果,多试几次之后发现了XML各节点的作用:
graph是XML文件的根节点,graph的属性定义了统计图的风格,它的属性设置是可选的,下面列出常用的几个:
background     背景颜色
basefontsize  字体大小 
xaxisname    X轴坐标的名称
yaxisname      Y坐标名称
caption        统计图的标题
subCaption     统计图的副标题
gridbgcolor    统计表格的背景颜色
numdivlines    统计图的分割线(即将统计图分多少个统计段)
divlinecolor   分割线的颜色(一般为浅色)

set节点是graph下的子节点,每一个set节点就是一条统计数据:
name           统计条目的名字
value          统计值
color          显示时的颜色
link           超链接(鼠标单击该条目时可转向的链接)(可选)

理解了XML文件的节点结构,剩下用程序操作XML文件,自然就很简单的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值