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

VFP视图技术应用介绍

打印文章

分享到:
    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.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(元月工资视图.姓名),二月工资视图.姓名,元月工资视图.姓名)
   ③新字段3:IIF(ISNULL(元月工资视图.工资),二月工资视图.工资,元月工资视图.工资)

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

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

  视图的深入讨论

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

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

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

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

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

编程爱好者论坛

本栏最新文章