时间:2022-08-28 07:44:44
【前言】MSgraph.chart对象在VFP编程中的应用由文秘帮小编整理而成,但愿对你的学习工作带来帮助。(Jincheng Institute of Technology, Jincheng 048026, China) Abstract: VFP supports OLE technology, we can insert MSgraph.chart objects into general type fields of dbf, and implement dynamic display and printing statements function of statical graph ...
摘要:vfp支持OLE技术,可采取将msgraph.chart对象嵌入dbf表通用型字段的办法,实现统计图表的动态显示和报表打印功能。
关键词:VFP;OLE;MSgraph.chart对象
中图分类号:TP311.13文献标识码:A文章编号:1009-3044(2008)35-2305-02
The Application of MSgraph.chart Objects in VFP Program
BI Wen-cai
(Jincheng Institute of Technology, Jincheng 048026, China)
Abstract: VFP supports OLE technology, we can insert MSgraph.chart objects into general type fields of dbf, and implement dynamic display and printing statements function of statical graph charts.
Key words: VFP; OLE; MSgraph.chart objects
1 引言
VFP是Microsift公司推出的面向对象可视化编程的数据库软件,以数据功能强、可视化程度高、简单易学等特点著称。但VFP的数据库却没有象Excel那样具有灵活方便的图表统计功能,要实现统计图表的显示和报表打印功能,必须使用OLE技术。
2 OLE技术与MSgraph.chart对象
OLE(Object Linking and Embedding)技术是Microsift公司提供的一种可在不同程序间进行对象连接和嵌入的技术,能完成多个不同程序间数据的交换,主要用于处理图片、声音、视频等数据的连接和嵌入。使用OLE技术可扩展VFP的功能,实现程序的快速开发[1]。
OLE技术是基于COM组件技术的应用,连接和嵌入的对象均来自于COM组件。MSgraph.chart对象来是自于Microsoft Graph 2000组件,可进行数据的图表统计,其主要的属性如下:
caption:图表的标题名。
controlsource:图表的数据源。
font.name:图表中文本的字体。
font.size:字体的字号。
charttype:统计图的类型。
haslegend:是否显示图例。
charttitle.font.fontstyle:字体加粗。
hastitle:图表中有无标题。
3 嵌入dbf表的通用型字段
dbf表的通用型字段,可通过APPEND GENERAL命令嵌入OLE对象,其语法格式如下:
APPEND GENERAL FieldName CLASS "MSgraph.chart" DATA cExpression[2]
参数说明:
FieldName:通用字段的字段名。
cExpression:OLE对象能接收的字符串。
下面通过一个例子来进行详细阐述。
tjb1是一个分年度分层次的毕业生预统计表,所有字段为字符型。
tjtb是只有一个通用型字段tp的dbf表。
将tjb1中的数据变为MSgraph.chart对象能够接收的数据:
#DEFINE CRLFCHR(13)+CHR(10)
#DEFINE TAB CHR(9)
tbt1=''
sele tjb1
for j=1 to fcount()
if j
tbt1=tbt1+allt(field(j))+tab
else
tbt1=tbt1+allt(field(j))+crlf
endif
endfor
for i=1 to recc()
go i
for j=1 to fcount()
zd=allt(field(j))
gd=allt(&zd)
if j
tbt1=tbt1+gd+tab
else
tbt1=tbt1+gd+crlf
endif
endfor
endfor
tbt1是MSgraph.chart对象能接收的数据,类型为字符型,内容和格式如下:
将tbt1数据所对应的统计图表嵌入tjtb表的通用型字段:
APPEND GENERAL tb CLASS "MSgraph.chart" DATA tbt1
4 统计图表的动态显示和报表打印
在一个表单中加入一个Activex绑定控件,在数据环境中加入两个表tjb1和tjtb,并用下列代码定义统计图表的属性,就可实现图表的动态显示。
thisform.ole1.controlsource="tb"
&&ole1为Activex绑定控件
thisform.ole1.hastitle=.t.
thisform.ole1.charttitle.caption="预计毕业生统计图"
thisform.ole1.charttitle.font.name="楷体"
thisform.ole1.charttitle.font.fontstyle = "加粗"
thisform.ole1.charttitle.font.size=16
ThisForm.ole1.charttype=54
thisform.ole1.haslegend=.t. && 显示图例
thisform.ole1.legend.font.name="宋体"
thisform.ole1.legend.font.size=10
thisform.ole1.axes(1).ticklabels.font.name="宋体"
thisform.ole1.axes(1).ticklabels.font.size=9
thisform.ole1.axes(2).ticklabels.font.name="宋体"
thisform.ole1.axes(2).ticklabels.font.size=9
统计图表如右图。
在报表中的数据环境中加入tjtb,在细节带区中加入一个OLE绑定控件,其图片来源设置为通用型字段:tjtb.tb,就可实现数据统计图表的报表打印。
参考文献:
[1] 张洪举.Visual Foxpro程序设计参考手册[M].北京:人民邮电出版社,2004.
[2] 夏辉,王冬.Visual Foxpro7.0命令手册[M].北京:清华大学出版社,2003.