Database 版 (精华区)
发信人: Powerpc_Pm@bbs.ustc.edu.cn (四大烂人之零零烂), 信区: cndatabase
标 题: [转贴]用VFP 3.0绘制统计图形
发信站: 中国科大BBS站 (Sat Apr 25 02:15:44 1998)
转信站: Lilac!ustcnews!ustcbbs
Subject: 用VFP 3.0绘制统计图形
Date: 18 Apr 1998 14:57:44 GMT
From: pipishi.bbs@bbs.nju.edu.cn (奔跑的小狮)
Organization: nju_bbs
Newsgroups: cn.bbs.comp.program
\ Visual Foxpro 3.0(以下简称VFP)提供了一个调用MS-Graph统计图
形的向导程序,其程序名为WZGRAPH.APP。遗憾的是,利用该向导程序
只能以交互的方法绘制统计图,无法以编程的方式根据不同的需要灵
活地控制统计图。而VB 4.0提供了一个绘制统计图形的Graph控件,该
控件是以OLE DLL方式提供的,具有很强的绘图功能,包括直方图、饼
图等11种图形。VFP 的OLE容器控制可以调用该Graph控件,达到绘制
统计图形的目的。
Graph控件属性
Graph控件提供的属性非常丰富,共有五十多种,详细说明可以参
考VB4.0的用户控件手册,下面将介绍几个常用的属性。
·AutoInc:向统计图数组属性赋值时,是否自动增加计数属性(Th
isPoint、ThisSet属性)的值。AutoInc=1自动,AutoInc=0由人工增加
。
·DrawMode:定义图形如何绘制。其赋值如下:
DrawMode=0图不出现
DrawMode=1 图形显示为空,但按BackGroup属性的颜色显示背
景和显示GraphCaption 属性设置的标题
DrawMode=2重新显示图形
DrawMode=3以位图方式显示图形
DrawMode=4将图形拷贝到剪贴板
DrawMode=5打印图形的拷贝
DrawMode=6将图形保存到文件
·GraphCaption:指定图的标题。
·GraphTitle:指定数据集的数目。
·ThisPoint:指定或返回当前点的位置。
·ThisData:设定作图的数据,该属性是数组属性,数据在图上的
位置由ThisPoint和Thi sSet属性确定。
·LabelText:每个数据点的标号,该属性也是数组属性,数据点在
图上的位置由ThisPoi nt和ThisSet属性确定。
·GraphType:指定图形的类型。其赋值如下:
GraphType=0 没有图形
GraphType=1 二维饼图
GraphType=2 三维饼图
GraphType=3(缺省)二维直方图
GraphType=4三维直方图
GraphType=5甘道图
GraphType=6线图
GraphType=7日志/线图
GraphType=8区域图
GraphType=9散点图
GraphType=10极状图
GraphType=11高低图
实现方法
首先,将VB4.0中的Graph32.OCX文件拷贝到Windows系统的system
目录下,随后应对该控件进行注册。运行VFP系统,在主菜单中选择"工
具"项,然后选择"选项",在弹出的页框控制窗口中选择"控制"项,选中
OLE控制项。此时在列表框中会列出所有的已注册的OLE控制,选择"
添加"按钮,系统会弹出一个输入文件名的窗口,将system目录下的Gra
ph32.OCX文件选入,则在OLE控制列表框中会出现Pinnacle-BPS Graph
Control项。
现在完全可以像使用Outline控制那样使用Graph控制,在VFP下既
可以使用表单设计器, 也可以使用类设计器来编制统计图形程序;在
程序中完全可以对图形的每个细节进行控制。
下面的例子是对Graph控制的简单应用,首先定义了一个表单类,
在该表单中加入一个Gr aph OLE控制,其OleClass="GraphLib.Graph"
。为了简单起见,统计图形数据采用直接将数据赋值到GraphData和La
belText属性,当然也可以将数据库中的数据赋到该属性中进行绘图。
本程序的运行环境为:中文Windows 95,中文VFP 3.0。
……
frmMyForm=CREATEOBJECT(‘frmGraph') &&创建表单
frmMyForm.Caption=‘统计图形窗口'
frmMyForm.oleGraphObject.GraphTitle=‘统计图形'
*可根据实际情况,用数据库中的数据
*或内存变量中的数据进行绘图
With frmMyForm.oleGraphObject
·NumSets=2
&&共两组数据
·NumPoints=4
&&每组数据点4个
·AutoInc=1
&&自动增加计数
*设置统计数据
·ThisPoint=1
·ThisSet=1
·GraphData=10
·GraphData=20
·GraphData=30
·GraphData=40
·GraphData=20
·GraphData=30
·GraphData=40
·GraphData=50
*设置标号
·ThisPoint=1
·ThisSet=1
·DataReset=4
·LabelText=' 1月'
·LabelText=' 2月'
·LabelText=' 3月'
·LabelText=' 4月'
·GraphType=4
&& 三维直方图
·GridStyle=3
&& 设置网格
Endwith
frmMyForm.Show
&& 显示表单
READ EVENTS
&& 启动事件处理
*定义表单类
Define Class frmGraph As Form
AutoCenter=.T.
Closable=.F.
&& 废止控制菜单框
BackColor=RGB(192,192,192)
Height=350
Width=500
ControlBox=.F.
*创建退出命令按钮
ADD OBJECT cmdMyCmdBtn1 AS CommandButton;
With Caption='退出[<X]',;
Cancel=.T.,:
Left=200,;
Top=310,;
Height=25,;
Visible=.T.,:
PROCEDURE cmdMyCmdBtn1.Click
CLEAR EVEBTS &&结束事件处理,关闭表单
ENDPROC
*创建统计图形对象
ADD OBJECT oleGraphObject as OLEControl;
WITH OleClass="GraphLib.Graph",;
Visible=.T.,;
Height=300,;
Width=500
oleGraphObject.PrintStyle=2 &&彩色方式打印。
ENDDEFINE
--
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.406毫秒