Vfp 文档 一些经典编程文章 可供初学者学习编程时使用

源代码在线查看: fox02.txt

软件大小: 265 K
上传用户: xiao11tian
关键词: Vfp 编程 文档 初学者
下载地址: 免注册下载 普通下载 VIP

相关代码

				动态统计图在VFP中的实现
				
				  一个好的数据库应用系统中,形象、直观、易懂的统计图形是必不可少的,但现有的几种方法都不太理想。VFP3.0提供了图形向导,用户可以按照向导的提示逐步操作,最终获得图形。但这种方法在实际中并不适用,因为由此得出的图形是静态的,而且用户关心的只是能否按所给数据得出图形,而不愿看到太多的中间操作步骤。Gengraph程序中的Updategrph过程可以用来实现统计图数据更新,但这种方法只适用于Foxpro 
				for Windows 
				  2.5(2.6),在VFP3.0中Gengraph对Updategrph过程不再支持。DDE 
				也可用来实现VFP与EXCEL等具备作图能力的应用程序间的通讯,从而达到作图的目的,但这种方法实现起来较为复杂。笔者通过查阅Micro 
				soft公司的技术开发文档,找到了两种比较简单实用的出图方法。 
				  一、利用EXCEL 
				  首先生成EXCEL APPLICATION OLE对象,然后用EXCEL内嵌的VBA对其进行操作,达到出图的效果。运用这种方法的前提是机器中应装有E 
				XCEL。 
				  程序如下: 
				  *利用EXCEL和VBA做动态统计图 
				  *创建EXCEL对象 
				  oleapp=CreateObject(‘excel.application’) 
				  *添加工作簿 
				  oleapp.WorkBooks.Add 
				  *给各单元格赋值(也可将表中的数据以数组形式注入到各单元格 ) 
				  oleapp.Cells(1,1).value=‘departa’ 
				  oleapp.Cells(2,1).value=‘departb’ 
				  oleapp.Cells(3,1).value=‘departc’ 
				  oleapp.Cells(1,2).value=100 
				  oleapp.Cells(2,2).value=200 
				  oleapp.Cells(3,2).value=300 
				  *选定数据 
				  oleapp.Range(‘a1:b3’).Select 
				  *添加统计图 
				  oleapp.Charts.Add 
				  *使EXCEL可见 
				  oleapp.Visible=.t . 
				  *打印统计图 
				  oleapp.ActiveASheet.PrintOut 
				  这种方法的优点是可以利用VBA直接打印出统计图,不足的是屏幕中出现了EXCEL的菜单栏。 
				  二 利用GENGRAPH和OleBoundControl 
				  Microsoft的技术开发文档中介绍了以编程方式使用"图形向导", 自动创建一个指定的图表,以及如何使用代码控制图表类型和标题。 
				DO(_Gengraph)with,.,...,动态出图。各参数的含义分别为: 
				  parm1:指定统计图是否自动执行。用于自动出图时,此参数值应为‘autograph’。 
				  parm2:指定图形类型。数值型(范围1-14)。各值所代表的具体类型可参见MS-GRAPH 。 
				  parm3:指定图形子类别。数值型(范围1-3)。各值所代表类型可参见MS-GRAPH。 
				  parm4:指定统计图的标题。字符型。 
				  parm5:指定XY轴显示方向。逻辑型。若为.t.,说明每组的各项是按列来安排的。 
				  parm6:指定统计图是否显示图例说明。若为.t.,则显示,否则不显示。 
				  parm7:指定统计图的调整格式。若为.t.,则显示图形时有暗色网格作底色,若为.f. ,则显示图形时无底色。 
				  parm8:指定存储统计图数据的文件名。Gengraph会将更新后的统计图数据保存到该文件中。 
				  parm9:指定生成图形后是否立即显示。若为.t.,则立即显示,否则不显示更新后的统计图。 
				  本方法就是利用Gengraph来更新统计图(不直接显示),并将更新后的数据交给OleBo undControl来显示。如下图所示: 图1 
				  表单的数据环境中用到两个数,表testdata内含用于作图的原始数据,template为统计图数据表。二者结构见后文的说明。表单中各控件的典型属性如下: 
				  thisform.pageframe1.page1.grid1.RecordSource=‘testdata ’thisform.pagefr 
				ame1.page2.oleboundcontrol1.ControlSource= ‘template.olegraph’thisform.page 
				frame1.page2.oleboundcont rol1.AutoActive=1 
				  &&防止因双击图形而进入MS-GRAPH的编辑窗口 
				  范例中,单击‘统计图’按钮,根据表格中的初始数据给出统计图。修改表格中的数据后,再单击‘统计图’按钮,会得出更新后的统计图。‘统计图’按钮clicked事件代码如下: 
				
				  *清除原有的统计图数据 
				  Select template 
				  Zap 
				  *选择数据,自动统计 
				  Select testdata 
				  Do(_Gengraph) with ‘Autograph’,3,1,‘动态统计图示例’, .t.,.t.,.t.,‘te mplate’,.t. 
				  *更新统计图 
				  Select template 
				  Goto bottom 
				  thisform.pageframe1.page2.Refresh 
				  thisform.pageframe1.page2.Zorder(0) 
				  几点说明: 
				  ·Gengraph将生成的统计图数据追加到template尾部,为确保显示更新后的统计图,范例中先清空template,待生成统计图后再将指针定位到最后一条记录。 
				
				  ·实际应用中,可通过改变parm2和parm3来改变图表类型及子类型,通过改变parm4来改变统计图标题,通过改变parm6来指定是否显示图例。 
				  ·Gengraph只对当前工作区中的数据进行处理,当不能直接对数据进行处理时,可以用SELECT命令结合有关函数取得所需统计数据,并置于一临时表中,再交Gengraph处理。 
				
				  ·表template和testdata的结构如下: 表1 
				  以上两种方法在VFP3.0及Windows3.2环境下调试通过。 
				  石家庄军械工程学院 (050003) 王俊 
				《计算机世界报》98年7期 
							

相关资源