用VFP6.0显示MS GRAPHIC图表


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

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

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

字体类型大小同上

按钮组 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软件环境下运行通过。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus