用VFP6.0編制應(yīng)用程序時,都希望用圖表方式實(shí)時反映銷售情況、產(chǎn)值產(chǎn)量情況等內(nèi)容,筆者使用activeX控件ms graphic97圖表功能,實(shí)現(xiàn)了圖表的實(shí)時顯示.顯示效果如圖1所示.
一.創(chuàng)建含有如下控件的窗體
控件名 控件 屬性
標(biāo)簽 Label1 caption:圖表類型 Font:微軟雅黑Fontsize:12
標(biāo)簽 Label2 caption:顯示效果 字體類型大小同上
按鈕組 Optiongroup1
Option1 caption:二維條狀 字體類型大小同上
Option2 caption:三維柱狀 字體類型大小同上
線框 Shape1
檢查框 Check1 caption:標(biāo)題 字體類型大小同上
檢查框 Check2 caption:欄目標(biāo)題 字體類型大小同上
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軟件環(huán)境下運(yùn)行通過。
一.創(chuàng)建含有如下控件的窗體
控件名 控件 屬性
標(biāo)簽 Label1 caption:圖表類型 Font:微軟雅黑Fontsize:12
標(biāo)簽 Label2 caption:顯示效果 字體類型大小同上
按鈕組 Optiongroup1
Option1 caption:二維條狀 字體類型大小同上
Option2 caption:三維柱狀 字體類型大小同上
線框 Shape1
檢查框 Check1 caption:標(biāo)題 字體類型大小同上
檢查框 Check2 caption:欄目標(biāo)題 字體類型大小同上
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軟件環(huán)境下運(yùn)行通過。