打印本文 打印本文  关闭窗口 关闭窗口  
用VFP6.0显示MSGRAPHIC图表
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:51:25  文章录入:杜斌  责任编辑:杜斌

用VFP6.0编制应用程序时,都希望用图表方式实时反映销售情况、产值产量情况等内容,笔者使用activeX控件ms graphic97图表功能,实现了图表的实时显示.显示效果如图1所示.

一.创建含有如下控件的窗体

控件名 控件 属性
标签 Label1 caption:图表类型 Font:宋体Fontsize:12
标签 Label2 caption:显示效果

字体类型大小同上

按钮组 Optiongroup1
Option1 caption:二维条状 字体类型大小同上
Option2 caption:三维柱状 字体类型大小同上
线框 Shape1
检查框 Check1 caption:标题 字体类型大小同上
检查框 Check2 caption:栏目标题 字体类型大小同上
ole控件 Oleboundcontrol1

图1

二.程序清单:

(1)窗体Form1的init事件:

#DEFINE CRLF CHR(13)+CHR(10)
#DEFINE TAB CHR(9)
#DEFINE bartype -4099


SET SAFETY OFF
dime xsss(8),xss(8)
sele 10
use xscx
for ii=1 to 8
go ii
xsss(ii) 量
xss(ii)=品名
endf

SET SAFETY ON
use c:\hgd\forms\pics
cGData = ""+TAB+""+CRLF+;
allt(xss(1))+TAB+str(xsss(1),10,2)+CRLF+;
allt(xss(2))+TAB+str(xsss(2),10,2)+CRLF+;
allt(xss(3))+TAB+str(xsss(3),10,2)+CRLF+;
allt(xss(4))+TAB+str(xsss(4),10,2)+CRLF+;
allt(xss(5))+TAB+str(xsss(6),10,2)+CRLF+;
allt(xss(6))+TAB+str(xsss(7),10,2)+CRLF+;
allt(xss(7))+TAB+str(xsss(8),10,2)+CRLF+;
allt(xss(8))+TAB+str(xsss(8),10,2)+CRLF
THIS.LockScreen = .T.
append general gen1 class "msgraph.chart" DATA m.cGData
THIS.OleBoundControl1.ControlSource = "Gen1"
THIS.OleBoundControl1.HasLegend = .F.
THIS.OleBoundControl1.autoformat(bartype,1)
THIS.LockScreen = .F.

(2)按钮组Optiongroup1的click事件:

#DEFINE bartype -4099
#DEFINE coltype -4100
*#DEFINE pietype -4102
DO CASE
CASE THIS.Value = 1
THISFORM.OleBoundControl1.autoformat(bartype,1)
CASE THIS.Value = 2
THISFORM.OleBoundControl1.autoformat(coltype,1)
ENDCASE

(3)检查框Check1的click事件:

#DEFINE C_GRAPHTITLE_LOC "菜肴销售情况表"
THISFORM.OleBoundControl1.HasTitle = !THISFORM.OleBoundControl1.HasTitle
IF THISFORM.OleBoundControl1.HasTitle = .T.
THISFORM.OleBoundControl1.ChartTitle.Caption = C_GRAPHTITLE_LOC
ENDIF

(4)检查框Check2的click事件:

THISFORM.OleBoundControl1.HasLegend = !THISFORM.OleBoundControl1.HasLegend

(5)”退出”命令按钮Command1的click事件:

Thisform.release

  以上程序在中文WINDOWS98,VISUAL FOXPRO 6.0软件环境下运行通过。

打印本文 打印本文  关闭窗口 关闭窗口