新浪首页免费邮件用户注册网站地图
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 高级编程 > 正文
VFP视图技术应用介绍

http://www.sina.com.cn 2001/06/22 16:01 赛迪网-中国计算机报 肖继温

  Microsoft Visual FoxPro 6.0是微软面向对象的程序设计开发工具之一,它在企、事业单位的信息管理系统中发挥了重要作用。本文结合笔者实际工作经验,就数据库视图的广泛应用作较深入地探讨,供读者参阅。

  视图与表、查询的关系及其优越性

  视图是从一个表或多个表或其他视图上导出的表。在应用程序设计中,要创建自定义并且可更新的数据集合,我们需要使用视图。视图兼有表和查询的特点:与查询相类似的是,视图可以用来从一个或多个相关联的表或视图中提取有用信息;与表相类似的是,视图可以用来更新其中的信息,并将更新结果永久保存在磁盘上。我们可以用视图使数据暂时从数据库中分离成为游离数据,以便在主系统之外收集和修改数据。在开发中使用视图有以下几方面的优点:

  1.视点集中:视图机制能使用户把注意力集中在所关心的数据上,使用户看到的数据结构简单而直截了当。

  2.简化操作:视图可以把若干张表或视图连接在一起,为用户隐蔽了表与表、表与视图、视图与视图之间的连接操作。

  3.多角度:视图机制可使不同用户从多角度处理同一数据,当许多不同种类用户使用同一个集成数据库时,这种灵活性显然是很重要的。

  4.安全性:可针对不同的用户形成不同的视图窗口,使不同的用户了解不同的数据,对数据的安全保密性起到了很大作用。

  基本视图的建立过程

  1.新建数据库和表

  进入Microsoft Visual FoxPro 6.0系统,选择“视图技巧项目”并生成“基本数据库”,然后生成“元月工资表”和“二月工资表”,如图1所示。月工资表的具体格式如下:

  元月和二月工资表的具体记录如下:

月工资表字段
字段名 类型 宽度 小数位
编号 c 4  
姓名 c 8  
工资 n 7 2

  分析两表记录内容可知,编号为1的人员为调走人员,编号为6、7、8、9、10、11的人员为新增人员,其他为工作人员。图1显示了建立的情况。


图1

元月工资表的记录内容
编号 姓名 工资
1 张毅晨 1.00
2 马迎莹 2.00
3 李小庆 3.00
4 郭哓胜 4.00
5 孔智文 5.00

  在项目管理器中用鼠标左键点选本地视图,按右边的“新建”按钮,选择“新建视图”,添加元月工资表,再添加二月工资表。添加第二个表或视图时会出现联接条件屏幕,我们选择两个表的编号为联接条件,联接类型为完全联接,按确定按钮后,关闭添加表或视图屏幕,进入视图设计器。

  3.增加新字段的方法

二月工资表的记录内容
编号 姓名 工资
2 马迎莹 2.00
3 李小庆 3.00
4 郭哓胜 4.00
5 孔智文 5.00
6 李娇柔 6.00
7 王丽丽 7.00
8 郑美美 8.00
9 康凡凡 9.00
10 徐襄襄 10.00
11 刘月月 12.00

  所谓新字段是在视图设计器中左边选取框中所没有的字段,增加新字段方法是鼠标左键点击函数和表达式按钮,在表达式生成器屏幕的表达式框中输入正确的表达式,按确定按钮,将该表达式添加到选定字段框中,同时新视图为该字段自动取一个新名字。

  视图技术应用举例

  为了让读者详细了解视图技术,笔者将举例说明。

  1.相同人员两表工资求和

  在求每个职工两个月工资和时,二月工资表中可能有新增职工,但不含调离职工,因此联接条件需要用全联接。在视图设计器中设置如下条件:

  ①新字段1:IIF(ISNULL(元月工资表.编号),二月工资表.编号,元月工资表.编号)

  ②新字段2:IIF(ISNULL(元月工资表.姓名),二月工资表.姓名,元月工资表.姓名)

  ③新字段3:IIF(ISNULL(元月工资表.工资),0,元月工资表.工资)+IIF(ISNULL(二月工资表.工资),0,二月工资表.工资)

  ④新字段4:IIF(ISNULL(元月工资表.编号),"新增人员",IIF(ISNULL(二月工资表.编号),"调走人员","工作人员"))

  ⑤联接条件:FULL JOIN元月工资表.编号=二月工资表.编号

  ⑥添加的表:基本数据库!元月工资表、基本数据库!二月工资表

  注意:字段1和字段2的条件表达式保证字段1和2不为.null.值;联接条件设置为完全联接;字段3为求两个月的工资和,必须设置当该字段是.null.时值为零;字段4为人员的性质,包括调走人员、新增人员和工作人员。

  结果记录内容为

结果记录内容为:
1 张毅晨 1.00 调走人员
2 马迎莹 4.00 工作人员
3 李小庆 6.00 工作人员
4 郭晓胜 8.00 工作人员
5 孔智文 10.00 工作人员
6 李娇柔 6.00 新增人员
7 王丽丽 7.00 新增人员
8 郑美美 8.00 新增人员
9 康凡凡 9.00 新增人员
10 徐襄襄 10.00 新增人员
11 刘月月 12.00 新增人员

  2.两表记录之和

  两表记录联接前首先生成没有重复记录字段的联接条件,并生成“元月工资视图”和“二月工资视图”,如图2所示。

  元月工资视图生成步骤:

  ①选取前三个字段到视图中,即编号、姓名和工资

  ②新字段4:recno()+1000000

  注:设从1000001开始计数,第二个表从1开始计数,若有重复增加此开始数。也可用视图自动设计此号。

  ③选择表:基本数据库!元月工资表

  二月工资视图生成步骤:

  ①选前三个字段到视图中,即编号、姓名和工资

  ②新字段4:增加一个字段表达式为recno()

  ③选择表:基本数据库!二月工资表

  将“元月工资视图”及“二月工资视图”完全联接,形成“两视图记录和”视图,设置条件如下:

  ①新字段1:IIF(ISNULL(元月工资视图.编号),二月工资视图.编号,元月工资视图.编号)

  ②新字段2:IIF(ISNULL(元月工资视图.姓名),二月工资视图.姓名,元月工资视图.姓名)


图2

  ③新字段3:IIF(ISNULL(元月工资视图.工资),二月工资视图.工资,元月工资视图.工资)

  ④联接条件:FULL JOIN元月工资视图.exp_4=二月工资视图.exp_4

  ⑤选择视图:基本数据库!元月工资视图、基本数据库!二月工资视图

  视图的深入讨论

  1.视图是基于表或视图建立的,当基础表记录内容发生变化时,视图的内容随之发生更新。

  2.用视图组织数据时,可组织成任何较易操作的形式,例如表单设计器中使用视图中的字段会较方便,同时显示形式更快捷;在报表生成器中添加视图作为数据环境,设计打印报表会很轻松的。

  3.用视图还可以组织其他形式的数据,在具体应用中加以研究、组织数据。

  4.视图设计器中新增字段不能改变列表头,当原有字段通过属性按钮修改列表头后,显示视图结果时列表头为修改后的列表头。



发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询

 相关链接
VFP 6 中文版安装向导捉虫记 (2001/06/08 14:46)
VFP6.0中ActiveX控件TreeView 使用实例 (2000/09/20 10:54)


科技时代意见反馈留言板 电话:010-82612286   欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息 | 网站律师

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网