首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

用VFP 3.0绘制统计图形

打印文章

分享到:
北京有色冶金设计研究总院(100039) 祝建荣  

  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

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章