荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: 用VFP 3.0绘制统计图形
发信站: BBS 荔园晨风站 (Wed Jan 27 17:41:25 1999), 转信


\  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.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店