1 / 85

普通高等教育“十一五”国家级规划教材

普通高等教育“十一五”国家级规划教材. Visual FoxPro 程序设计基础教程. 刘甫迎 党晋蓉 刘焱. 第 4 章 用自由表( Free Tables ). 4.1 表结构的创建及修改. 4.2 数据(记录)的输入、保存、浏览. 4.3 表的打开、关闭、显示和定位. 4.4 记录数据 的修改和删除. 4.5 表 的排序、索引和查询. 4.6 表 的计算、汇总. 4.7 多表的 关联、连接和更新. 4.8 其它 有关命令操作. 4.1 表文件结构的建立和修改. 4.1.1 表的结构 一、表的结构的建立

harry
Download Presentation

普通高等教育“十一五”国家级规划教材

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 普通高等教育“十一五”国家级规划教材 Visual FoxPro程序设计基础教程 刘甫迎 党晋蓉 刘焱

  2. 第4章 用自由表(Free Tables) 4.1 表结构的创建及修改 4.2 数据(记录)的输入、保存、浏览 4.3 表的打开、关闭、显示和定位 4.4 记录数据的修改和删除 4.5 表的排序、索引和查询 4.6 表的计算、汇总 4.7 多表的关联、连接和更新 4.8 其它有关命令操作

  3. 4.1 表文件结构的建立和修改 • 4.1.1 表的结构 • 一、表的结构的建立 • 表文件的后缀名为.DBF。 • 结构(字段) • 表文件 • 数据(记录) • 1.字段名——由汉字、字母、0—9的数字、“—”下划线组成。 如:学号、NAME、XH-1等。 • 2.字段类型: • (1)字符型(Character)字段(C):存贮所有能打印的ASCⅡ字符及空格符及所有汉字系统的可打印的汉字和各种符号,即任何文本(Text)。 • (2)数值(Numeric)型字段(N):存贮可参与加减乘除运算的0—9的数值。

  4. (3) 逻辑型(Logical)字段(L):存放.真.或.假.两个逻辑值。 输入T(t)或Y(y)为真,输入F(f)或N(n)为假。如,姓别: 男或女,婚姻:真或假。 (4) 日期型(Date)字段(D):存贮日期数据。VFP规定输入 和显示的默认格式为YYYYMMDD,对应年月日(年取4 位)。可用SET DATE等设置命令改变为YY.MM.DD等 多种格式。日期型字段可进行日期运算。 (5) 备注型(Memo)字段(M):用以存贮大量的文字信息, 表文件中如果包含有备注字段,则除了该表表文件外, 还有一个与表文件同名扩展名“.FPT”的备注型文件,用 来存放备每一条记录的注型字段的内容,而备注型字段 本身只存放其内容在备注型文件中的地址。因此备注型 字段除了能进行编辑、显示和打印外,不能进行其它操 作。它是不定长度的长字符串输入,如:报告、文章、 简介、说明等。

  5. (6) 通用型(General)字段(G):它类似一个备注型字段, 但主要用来支持Microsoft的对象链接和嵌入 OLE(Object linking and embedding)。通用数据型字段 的内容也存贮在所分配的.FPT备注文件中,它可以包 括任何类型的链接或嵌入的对象。 (7) 日期时间型(Date Time)字段(T):既可以存贮日期, 也可以存贮时间或者两者兼有的值。其值是以 “yyyymmddhhmmss”字符格式存贮的,即年月日时 分秒的形式。可用设置命令设置格式。 (8) 浮点数值型(Float)字段(F) (9) 双精度数据型(Double)字段(B) (10) 整数型 (Integer) 字段(I) (11) 货币型(Currency)字段(Y) (12) 二进制 (binary)字符型字段 (13) 二进制(Binary)备注型字段

  6. 3.字段宽度——字段中能够存放的最大字符数或数字的最 大位数字符型字段不得大于254个字符,否则用 备注 型字段存贮。3.字段宽度——字段中能够存放的最大字符数或数字的最 大位数字符型字段不得大于254个字符,否则用 备注 型字段存贮。 数字型字段(N)的宽度=整数位数+ 小数位数+1(小数点) 逻辑型字段宽度为1, 日期型、日期时间型、货币型、双精度数据型字段宽 度为8 备注型、通用型、整数型以及二进制备注型 (Binary)字段宽度为4。 浮点数值型字段(F)的宽度=整数位数+小数位数+1(小 数点)二进制字符型(Binary)为1到254个字节。 4.小数位:字段的类型是数字型(N)和浮点型(F),就须给出小数位数。

  7. 4.1.2 建立表结构的命令CREATE 命令格式:CREATE [<文件>|?] 功能:建立一个新的表文件。 例1:建立文档管理系统的表结构,DF.DBF 字段名(NAME) 类型(Type) 宽度 (Width) 小数位(Dec (1)登录号(DEN) 字符型(C) 9 (2)登录时间(STIM) 日期型(D) 8 (3分类号(NO) 字符型(C) 11 (4)行文者号(WO) 字符型(C) 10 (5)文档名(BK) 字符型(C) 50 (6)行文者名(WR) 字符型(C) 0 (7)行文地(AD) 字符型(C) 50 (8)登出刊物(UN) 字符型(C) 20 (9)行文时间(TIM) 日期型(D) 8 (10)页数(P) 数字型(N) 3 (11)涉及金额(S1) 数字型(N) 11 4 (12)该文处理情况(Z) 字符型(C) 50 (13)摘要(CO) 备注型(Memo) 4

  8. 方法: 1、在命令窗口键入create DF.DBF 2、用鼠标单击:文件菜单笺(主菜单)—新建(弹出的子菜 单)—表(对话框)—新文件。

  9. 例2:建立学生成绩档案STU2.DBF。字段有学号,姓名,体育, 高数,计算机基础,英语,平均成绩,总分,排名,备注。例2:建立学生成绩档案STU2.DBF。字段有学号,姓名,体育, 高数,计算机基础,英语,平均成绩,总分,排名,备注。 用二种方式来建立: (1)窗口用命令建立 (2)用菜单方式建立 STU1.DBF结构 字段名(NAME) 类型(Type) 宽度 (Width) 小数位(Dec) 学号 C 7 姓名 C 8 性别 L 1 体育 N 6 2 高数 N 6 2 计算机基础 N 6 2 英语 N 6 2 平均成绩 N 6 2 总分 N 6 2 排名 N 6 2 备注 M 4

  10. 4.1.3 表结构的修改 命令格式:MODIFY STRUCTURE 功能:显示表文件结构,并允许修改此表的结构。 1、命令方式:进入表设计器。

  11. 2、菜单方式:单击显示菜单笺——表设计器进入。2、菜单方式:单击显示菜单笺——表设计器进入。

  12. 4.2 表数据的输入 一、建立表结构时输入 二、追加记录命令 APPEND 命令格式:APPEND [BLANK] 作用:在当前表的尾部(无论表中有无记录)追加新一条记 录(或一条空记录)。 *当前表指正在操作的表。 三、在表中插入记录命令INSERT 命令格式:INSERT [BEFORE] [BLANK] 作用:在表文件中间插入一条新录。 说明:在表中,系统有一个用来指示记录位置的指针,指针当前所在的记录称为当前记录。任选项[BEFORE]表示在当前记录前插入,否则在当前记录之后插入。[BLANK]表示插入空记录。

  13. 例1:INSERT &在当前记录后插入一记录。 INSERT BEFORE & 在当前记录前插入一记录。 INSERT BEORE BLANK &在当前记录前插入一个空记录 在插入记录后,其后所有记录的记录号加1,空记录只有记录号 例2:(1)要在STU1表文件第2个记录之前插入一个新记录(学号 为111111): (2)在第3条记录之后插入一个空记录。 命令: USE STU1 &&打开stu1表文件 GOTO 2 &&指针移到第2个记录 Insert before &&完成(1) GO 3 &&指针移到第3个记录 insert afert blank &&完成(2) LIST &&显示表全部记录

  14. 四、用BROWSE命令追加数据记录 BROWSE是VFP最有用的命令之一。 命令格式:BROWSE 作用:主要用于打开浏览窗口,查阅表文件并同时进行修改

  15. 4.3 表的打开、关闭、显示和定位 4.3.1 打开和关闭表文件命令USE 命令格式1:USE [<文件名>] 作用:打开<文件名>指定的表文件,该表如有备注型字段, 则自动同时打开相应的备注文件。 命令格式2:USE 作用:关闭当前打开的表文件。 命令格式3: close all 作用: 关闭打开的全部文件。

  16. 4.3.2 表的显示和列表 1.显示表的记录 LIST命令 作用:连续显示表(.DBF)的内容。 格式:LIST [OFF] [<范围>][[FIELDS]<表达式表>][WHILE<条件>][FOR<条件>][TO PRINT|TO FILE<文件名>] 说明:用户可根据自己的需要确定上面的任选项,组合LIST命令的各种功能、形式。 选项功能: [OFF]-------不显示记录号 [<范围>]----指定对哪些记录进行操作。 包括: RECORD n 第N条记录 NEXT n 自当前记录开始的共N条记录(n可是表达式) REST 自当前记录开始至文件末尾的所有记录。 ALL 所有的记录。如末选[<范围>]项则隐含范围为ALL。

  17. [[FIELDS]<表达式>]-----每个表达式可以是字段名表,也可以是一般的表达式,但之间用“,”分隔。[[FIELDS]<表达式>]-----每个表达式可以是字段名表,也可以是一般的表达式,但之间用“,”分隔。 WHILE<条件>]-----自当前记录开始查找,直至发现第一个不满足条件的记录,就停止查找。这个选项常用于经过排序或索引的表文件。 [FOR<条件>]-----从<范围>内的第一个记录开始查找所有<条件>满足 的记录,直到范围内的记录搜索完毕 注:<条件>是逻辑表达式,它只有真(T、Y)或假(F、N)两个值。 [TO PRINT]----在打印机上打印出来。在执行命令前按Ctrl+P,也能联机打印。 [TO FILE<文件名>]-----将结果输出到用<文件名>指定的磁盘文件。

  18. 例如1:查看STU1表中所有计算机基础成绩大于或等于80分 的学生的信息例如1:查看STU1表中所有计算机基础成绩大于或等于80分 的学生的信息 命令: LIST ALL FOR 计算机基础>=80 例如2:查看STU1表中所有计算机基础成绩为80分及以上学生的 学号,计算机基础成绩,体育成绩。

  19. 例如3:查看STU2表中所有就读方式为统招的男生的学号,姓名例如3:查看STU2表中所有就读方式为统招的男生的学号,姓名 必须先打开表文件STU2.DBF

  20. DISPLAY命令 命令格式:DISPLAY [OFF][<范围>][[FIELDS]<表达式>][WHILE<条件>][FOR<条件>][TO PRINT|TO FILE<文件>] DISPLAY 与LIST命令功能不同点: (a) VFP的DISPLAY命令每显示一个窗口的信息暂停一次。 按任意键继续显示,而LIST显示不暂停。 (b) DISPLAY命令省略范围选择项时,仅显示当前记录,而LIST命令则显示所有记录。

  21. 例4:显STU2表的第4条记录的内容。

  22. 2.显示表的结构(进入表设计器) 命令格式1:LIST STRUCTURE [TO PPRINT|TO FILE<文件名>]

  23. 菜单方式:显示表结构(并可修改)

  24. 4.3.3 记录的定位 命令格式1:GO[TO] [ RECORD <n>] 定位到记录号为n的记录 GO[TO] TOP 定位到第1条记录 GO[TO] BOTTOM 定位到最后一条记录 例5: USE stu1 GO BOTTOM DISPLAY

  25. GO TOP DISPLAY GO 3 disp

  26. 命令格式2:SKIP [±n] 作用:以当前记录为基准前移(-)或后移(+)N条记录。 说明:不选任选项,则默认n=+1。 注意:SKIP命令是相对移动,GOTO命令是绝对移动。 SKIP命令上移不能超过首记录,下移不能超过末记录。

  27. 例6:

  28. 4.4 记录数据的修改和删除 4.4.1 修改表数据 1、命令格式:EDIT 功能:显示需修改的记录。 例7

  29. 2、浏览修改命令BROWSE 命令格式:BROWSE[FIELDS<字段名表>][LOCK<数值表达式>][FREEZE<字段名>] [NOMENU][NOAPPENAD][NOMODIFY][WIDTH<数值表达式>] 功能:BROWSE可打开一个浏览窗,并显示表文件中的记录。 注:能用BROWSE方便地用全屏幕编辑键移动光标来编辑和修改 数据,因此不仅具有浏览和修改的功能,还可增加记录、删 除记录等操作。 选项说明: [LOCK<数值表达式>]----指定屏幕左边锁定字段的个数,当屏幕左右平移时,这些锁定的字段保持在原来的位置不动,便于用户对照。

  30. [FREEZE <字段名>] -----使光标冻结在这个字段上,用户只能修改该字段的数据,其它字段只能显示不能修改,提高了数据的安全性和操作效率。 [NO MENU] ----是否从显示菜单中取消Browse项。 [NO APPEND] ----禁止向表中追加记录。 [NO MODIFY] ----禁止修改或删除表记录。 [WIDTH <数值表达式>] ----限定所选择的字符型字段的最大显示宽度,但用←→键使字段内容左右平移。 [FOR<表达式>] -----按指定条件进行判断,当<表达式>的值为真时,方可显示记录。

  31. 例如 8: use STU1 browse lock 1 freeze 数学 NO APPEND

  32. 3、表运算替代命令 命令格式: REPLACE [<范围>] <字段名1> WITH <表达式1>[,<字段2> WITH <表达式2>[ADDITIVE]…][FOR<条件>][WHILE<条件>] 功能:用表达式的值代替命令中与之相对应的字段的内容,对满足<条件>和<范围>的记录可成批自动、快速地修改。 例9:use stu1

  33. 4、修改通用(General)字段 VFP支持微软公司的Windows对象链接和嵌入(OLE),MODIFY GENERAL命令可在任何活动表的当前记录编辑、修改装有OLE对象通用(General)字段。 命令格式:MODIFY GENERAL<通用字段> 菜单操作:直接用鼠标双击通用(General)字段, 打开了指定 的通用字段的编辑窗口,用户可进行修改等操作.

  34. 4.4.2 删除表记录 1. 删除记录命令DELETE 格式:DELETE [<范围>][WHILE<条件>][FOR<条件>][IN<工 作区号>|<表别名>] [NOOPTIMEZE] 功能:给要删除的记录作删除标记。 例 10

  35. 2、恢复加删除标记的记录 格式:RECALL[<范围>][FOR<条件>][WHILE<条件>] 功能:取消记录的删除标记。

  36. 3、彻底删除命令PACK 格式:PACK [MEMO] [DBF] 功能:永久地将当前表中有删除标记的所有记录删除 掉。

  37. 3.表记录全部删除命令ZAP 命令格式:ZAP[IN<工作区号>|<表别名>] 功能:将所有的记录从表中删去,只留下表的结构

  38. 以上的所有操作都可在浏览表后,操作主菜单中“表”进行。以上的所有操作都可在浏览表后,操作主菜单中“表”进行。

  39. 4.4.3 删除表文件 DELETE FILE命令删除文件。 例11: DELETE FILE stu1.DBF

  40. 4.5 表的排序、索引和查寻 4.5.1 什么是排序与索引 排序是改变表物理顺序的过程,索引是排列其逻辑顺序的过程。由包含被索引的字段组成的表达式称关键字表达式。 4.5.2 表的排序 表的排序: 对表记录进行物理整理,生成一个新表文件。 命令格式:SORT TO <文件名> ON <字段名1> [/A][/D][/C][,<字段名2>[/A][/C][/D]]… [<范围>] [FIELDS<字段表>] [FOR<条件>] [WHILE<条件>] 功能:按关键字段的值从小到大(升序/A)或从大到小(降序 /D)将表的记录重新排列,生成一个新的表文件(.DBF)。

  41. 说明:(1)新表文件的结构与原表结构一样。说明:(1)新表文件的结构与原表结构一样。 (2)选项>[/A]是升序,[/D]是降序。如有[/C]选是指按字典排列,大小写一样:0——9,Aa——Zz;如无[/C]选是指按ASC‖码顺序排列:0——9,A——Z,a——z。 (3)使用排序表文件时,必先打开。如添加了新记录,必须重新排序,生成一个新表文件。 例12:用姓名字段来排序,生成XM.DBF文件

  42. 4.5.3 表的索引 对表记录进行逻辑整理,生成一个索引文件。 1.索引的类型与建立 压缩文件,选[COMPACT] . IDX文件,只包含一单个索引。 非压缩文件 类型 . CDX文件,(复合索引文件),包含多个索引,每个索引叫一个索引标识。 结构复合索引文件,其文件名与表 名相同,打开表时自动打开。 独立复合索引文件

  43. 建立.IDX索引文件: 命令格式: INDEX ON <关键字表达式> TO <文件名> [COMPACT] [ADDITIVE] 功能:对当前表中各记录<关键字表达式>的值的大小,以升序 进行记录逻辑上的重新排序,并将逻辑顺序存入TO后指定的索引文件名的索引文件中。

  44. 建立.CDX索引文件 命令格式:INDEX ON <关键字表达式> TAG <标识名> [OF< 文件名>] [FOR <条件>] 功能:对当前表根据关键字表达式的值以升序进行记录的逻辑排 序,并将逻辑顺序存入与表文件名同名或[OF<文件名>]所 指的复合索引文件的一个标识中。

  45. 使用表设计器(Table Designer)来生成索引 进入表设计器,单击索引标识卡,在索引名文本框中输入该索引标识的名字,在类型下拉表中可选择索引类型(Primary 主索引、Candidate侯选、Unigue唯一等,表达式框可输入索引表达式(Expression);筛选框可形成筛选条件的索引。 注:1、使用表设计器(Table Designer)生成的索引文件为结构复合索引文件(.CDX)。 2、打开或新建的索引文件在表设计器中才可见。

More Related