Microsoft Visual FoxPro 应用实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Microsoft Visual FoxPro 应用实例
一、VFP系统安装
打开复制有PVFP6的光盘或硬盘,进入到相应目录内,找到SETUP.EXE文件(见下图),双击进行安装。

按系统提示进行,完成一步后选择“下一步”;在“产品号和用户ID”页,产品ID号为“466-0001992”,用户姓名和公司名称自行输入;其它页面继续选择“确定”或“下一步”。

在安装页面选择“典型安装”;
安装完成后,在“安装MSDN”页面,点击“安装MSDN”,取消选中状态;选“下一步后”进入“现在注册”页面,点击“现在注册”,取消注册;至此完成了整体安装。

二、系统应用
点击“开始”—“程序”—“Microsoft V isual FoxPro 6.0”—“Microsoft Visual FoxPro 6.0”;
第一次使用“Microsoft V isual FoxPro 6.0”时,会出现如下图所示的界面,选择“以后不再显示此屏”,就可以取消此项操作;选择“关闭此屏”就进行到命令窗口状态。

[本次培训练习用的资料在光盘“\TEMP”目录下]
1、确定工作目录:
在系统默认的工作目录下,对具体应用数据库操作时,必须带准确的路径,操作非常不变。

所以最好设置当前目录为系统默认的工作目录。

在命令窗口输入如下命令:set defa to [工作目录完整路径]
2、在各个分区中打开数据库,返回一个已经打开数据库的分区
sele 0 ***转到一个空区
use tmp1 ***在空区中打开数据库文件TMP1,此时该区别名为数据库名TMP1 sele 0 ***再转到一个空区
use tmp2 ***在空区中打开数据库文件TMP2,此时该区别名为数据库名TMP2 sele tmp1 ***转到TMP1区
sele 0
use d:\tmp1 ALIAS tmp ***当打开另一个数据库,但库名与现已打开的库名相同时,可以使用别名,以确保在做其它操作时区分两个数据库
3、将Visual FoxPro数据库另存为其它文件格式
(1)另存为Foxpro25格式的数据库
use tmp1
copy to tmp2 type fox2x
(2)另存为Excel文件
use tmp1
copy to tmp2 type xl5
(3)另存为TXT文本文件
use tmp1
copy to tmp2 type deli
4、浏览数据:browse
use tmp
browse ***可以修改,但不能进行增加记录的操作
browse noedit***不能修改的浏览方式,防止数据在浏览过程中被破坏browse fields 字段1,…,字段n ***浏览指定字段的数据,其它字段不显示browse for 条件***浏览满足条件的记录数据,不符合条件的记录不显示***上述参数可随意组合使用
5、连续显示记录命令:list命令、display命令
use tmp
list ***在屏幕当前窗口进行连续显示,没有停顿,大信息量时不适合使用list to prin ***在屏幕显示的同时,将所有内容输出到打印机,便于查看list next n ***列出从当前记录后N个记录的内容,记录指针指向列出的最后一个记录
list fields 字段1,…,字段n for 条件***参数使用同browse
list 字段1+字段2 ***可对两个或两个以上字段进行运算后再连续显示,
此时显示的是运算后的结果,
display命令与list命令使用方法基本相同,不同的是,它默认只对当前记录进行操作,而list命令默认对所有记录进行操作
6、数据库排序:不改变物理排序,不建立新数据库,只改变显示等操作顺序use tmp
inde on frdm to tmp ***按frdm字段排序,保存到索引文件tmp.IDX中
inde on a50+frdm to tmp1 ***也可以使用两个以上的字段进行组合索引,
以靠前的字段为主
7、新建排序数据库:建立一个新的数据库,实现按关键字段排序的物理结构库use tmp
sort on frdm to tmp1 ***按frdm字段排序,建立一个新的tmp1数据库
sort on frdm /d to tmp2 ***默认是升序排列,加“/d”参数后就可实现降序排列sort on a50 /d,frdm /a to tmp1 ***也可以使用两个以上的字段进行组合索引,
以靠前的字段为主,每个字段都可单独设置排
序方式;“/a”参数可实现降序排列;
8、分类汇总:按一个字段的值进行分类汇总,将值相同的所有记录的数值字段
进行累加。

注意:进行汇总的字段必须经过索引。

use tmp ***打开一个数据库
inde on a50 to tmp ***必须建立一个需要汇总字段的索引
tota on a50 to tmp2 ***按已经索引的字段进行汇总,结果存放在新数据库中
9、建立两个数据库的关联关系:将两个数据库按一个主字段的值建立关联关系。

建立条件:两个数据库必须拥有类型相同、长度相同的字段;
父表需要建立索引,子表以索引字段的值建立关联;
use tmp ***打开父表
inde on frdm to tmp ***建立父表主字段的索引
sele 0 ***打开一个新的空白区
use tmp1 ***打开子表
set rela to frdm1 into tmp ***建立关联关系,两个字段的值相同的被关联;
***frdm1为子表字段名,tmp是父表的数据库名或者是别名
(1)将父表的数据赋值到子表中(在子表建立关联后,子表所在区操作)repl all name1 with for frdm1==tmp.frdm
***将tmp数据库name字段值赋到子表tmp1的字段name1中;注意,如果不加条件”for frdm1==tmp.frdm”,没有被关联的记录name字段值将被清空,加条件后,只有关联记录的值被更新,没有关联的记录值保持不变
(2)将所有子表关键字段的值包含在父表中的记录复制到一个新库中;
copy to tmp2 for frdm1==tmp.frdm
(3)将所有子表关键字段的值不包含在父表中的记录复制到一个新库中;
copy to tmp2 for frdm1<>tmp.frdm
(4)取消关联关系:set rela to
实用举例1:以工业年报为例,查看B101基本情况库中的单位有多少家未报送B103表。

本题的父表为B103表,子表为B101表,查看子表不包含在父表中的记录。

设定frdm字段为两个数据库的关键字段
sele 0
use b103
inde on frdm to tmp
sele 0
use b101
set rela to frdm into b103
copy to tmp for frdm<>b103.frdm ***tmp库即为分离出的结果
实用举例2:以工业月报B202表为例,查看本月数据库中与上月对比新增的产品有哪些。

本题的父表为上月B202表,子表为本月B202表,查看子表不包含在父表中的记录。

产品产量表是以2个主关键字段确
定1条记录,设定frdm和code字段为两个数据库的关键字段sele 0
use cl200303 ***假定上月为3月份
inde on frdm+code to tmp ***以2个主字段建立索引
sele 0
use cl200304 ***打开本月数据库
set rela to frdm+code into cl200303 ***以同样的组合结构建立关联
copy to tmp for .not.(frdm== cl200303.frdm.and. code== cl200303.code)
***两个字段必须完全相同才是正确的关联,而逻辑运算“非”的运算级别高于“与”运算,所以“与”运算要使用括号实用举例3:以工业月报B203表为例,查看本月收入增长5000万的单位。

本题的父表为上月B203表,子表为本月B203表。

设定frdm 字段为两个数据库的关键字段,收入字段为H101,单位千元
sele 0
use D0303
inde on frdm to tmp
sele 0
use D0304
set rela to frdm into D0303
brow for frdm==D0303.frdm .and. h101-D0303.h101>50000
***显示结果即为本月收入超过50000千元的单位
10、逻辑运算及逻辑条件
逻辑运算包括“或”.or.、“与”.and.、“非”.not.,它们的运算级别依次提高,即在一个运算公式内,先运算“非”,再运算“与”的关系,最后运算“或”。

括号的运用与数学计算中括号的作用相同,先运算括号内的,再运算括号外的。

“非”.not.运算,顾名思义就是否、不是的意思,是当前条件的反意。

例如大于的“非”就是小于等于,等于的“非”就是不等于,包含的“非”就是不包含;
“与”.and.运算与一般汉语中“与”的概念有所区别,它是“并且”的概念,即两个条件同时都要满足。

例如,大于50且小于100,在计算机条件中就是>50.and.<100;
区属国有企业,条件是“经济类型=‘国有’.and.隶属关系=‘区属’”。

“或”.or.运算是指条件中只要一个满足即可认定条件成立。

例如,查看国有和集体企业,条件是“经济类型=‘国有’.or. 经济类型=‘集体’”
组合实例:区属单位收入在5000至10000间,条件是:
收入>5000.and. 收入<10000 .and. 隶属关系=‘区属’
组合实例:国有和集体单位收入超10000的,条件是:
收入>10000.and. (经济类型=‘国有’.or. 经济类型=‘集体’)
组合实例:不是国有或集体的单位收入超10000的,条件是:
收入>10000.and. .not.(经济类型=‘国有’.or. 经济类型=‘集体’)
11、数据库结构修改命令:modi stru
对一个已经打开的数据库进行结构修改时,只需输入“modi stru”命令即可出现结构修改窗口。

可进行修改、新增字段、删除字段的操作。

为确保数据库的正确性,只能使用“新增”功能,以满足数据库操作时字段不足或保存数据计算后的中间结果的需要。

例题:我们需要计算劳产率,然后再按劳产率进行排名,找出最高的10家。

(1)先将原始数据库(d0304)复制到临时库中,以保护原始数据不被破坏;
(2)打开临时库,建立新字段Lcl,用以保存劳产率计算结果;
(3)对新字段赋值,即计算劳产率;
(4)用排序的方法查看结果,或者新建1个排序数据库。

use d0304
copy to tmp
use tmp
modi stru
repl all Lcl with (劳产率计算公式) for (除数不为0的条件公式)
inde on Lcl to tmp 或者sort on Lcl /d to tmp1。

相关文档
最新文档