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.视图设计器中新增字段不能改变列表头,当原有字段通过属性按钮修改列表头后,显示视图结果时列表头为修改后的列表头。
视图与表、查询的关系及其优越性
视图是从一个表或多个表或其他视图上导出的表。在应用程序设计中,要创建自定义并且可更新的数据集合,我们需要使用视图。视图兼有表和查询的特点:与查询相类似的是,视图可以用来从一个或多个相关联的表或视图中提取有用信息;与表相类似的是,视图可以用来更新其中的信息,并将更新结果永久保存在磁盘上。我们可以用视图使数据暂时从数据库中分离成为游离数据,以便在主系统之外收集和修改数据。在开发中使用视图有以下几方面的优点:
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 )
【编程爱好者论坛】