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