![]() ![]() |
|
用VFP3.0绘制统计图形 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:50:53 文章录入:杜斌 责任编辑:杜斌 | |
|
|
Visual Foxpro 3.0(以下简称VFP)提供了一个调用MS-Graph统计图形的向导程序 ,其程序名为WZGRAPH.APP。遗憾的是,利用该向导程序只能以交互的方法绘制统计图,无 法以编程的方式根据不同的需要灵活地控制统计图。而VB 4.0提供了一个绘制统计图形的 Graph控件,该控件是以OLE DLL方式提供的,具有很强的绘图功能,包括直方图、饼图等11 种图形。VFP的OLE容器控制可以调用该Graph控件,达到绘制统计图形的目的。 Graph控件属性 Graph控件提供的属性非常丰富,共有五十多种,详细说明可以参考VB4.0的用户控件手册,下面将介绍几个常用的属性。 ·AutoInc:向统计图数组属性赋值时,是否自动增加计数属性(ThisPoint、ThisSet属性)的值。AutoInc=1自动,AutoInc=0由人工增加。 ·DrawMode:定义图形如何绘制。其赋值如下: DrawMode=0图不出现 DrawMode=1 图形显示为空,但按BackGroup属性的颜色显示背景和显示 GraphCapt ion属性设置的标题 DrawMode=2重新显示图形 DrawMode=3以位图方式显示图形 DrawMode=4将图形拷贝到剪贴板 DrawMode=5打印图形的拷贝 DrawMode=6将图形保存到文件 ·GraphCaption:指定图的标题。 ·GraphTitle:指定数据集的数目。 ·ThisPoint:指定或返回当前点的位置。 ·ThisData:设定作图的数据,该属性是数组属性,数据在图上的位置由 ThisPoint和ThisSet属性确定。 ·LabelText:每个数据点的标号,该属性也是数组属性,数据点在图上的位 置由ThisPoint和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目录下的 Graph32.OCX文件选入,则在OLE控 制列表框中会出现Pinnacle-BPS Graph Control项。 现在完全可以像使用Outline控制那样使用Graph控制,在VFP下既可以使用表单设计器,也可以使用类设计器来编制统计图形程序;在程序中完全可以对图形的每个细节进行 控制。 下面的例子是对Graph控制的简单应用,首先定义了一个表单类,在该表单中加入一个 Graph OLE控制,其OleClass="GraphLib.Graph"。为了简单起见,统计图形数据采用直接 将数据赋值到GraphData和LabelText属性,当然也可以将数据库中的数据赋到该属性中进行 绘图。 本程序的运行环境为:中文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 |
|
![]() ![]() |