第 15章 VFP应用
? 15.1 概述(主操作界面)
? 15.2 VFP命令结构
? 15.3 VFP的数据类型
? 15.4 数据库操作常用命令
? 15.5 结构化程序设计
? 15.6 可视化程序设计
? 15.7 应用系统开发(工资管理系统)
? 15.8 小结
? 15.9 习题
15.1 概述(主操作界面)
? 安装、启动、关闭
? 主界面 (使用演示)
? 项目管理器 (使用演示)
? 命令窗口
? VFP向导、设计器、生成器
15.1 VFP主界面、项目管理器
15.1 VFP表结构设计器
15.2 VFP命令结构
DISPLAY [<Scope>] [FIELDS <FieldList>] [FOR <exp>] [WHILE <exp>]
命令动词 子 句 ( 动 词 短 语 )
? 命令动词,DISPLAY,LIST,DELETE等
? <Scope>:范围,ALL,NEXT n,REST
? [FIELDS <FieldList>]:字段名列表
? [FOR <exp>] [WHILE <exp>]:条件表达式
15.3 VFP的数据类型
类型 缩写 说明 字节大小 取值范围
字符型 C 任意文本 每个字符占用一个字 节,最大 254个字符 任意字符
货币型 Y 货币量保留 4位小数 8个字节 从 -922337203685477.5808到 +922337203685477.5807
数值型
浮点型
N
F
数字、小数点
和正负号组成
在内存中占 8个字节,
在表中占 1~ 20字节 从 -1E+19到 +1E+20
双精度
型 B 双精度浮点型 8个字节 从 -4.9E+324到 +1.8E+308
整型 I 整型值 4个字节 从 -2147483647到 2147483646
15.3 VFP的数据类型 (续 )
类型 缩写 说明 字节大小 取值范围
日期型 D 包含年、月、日 的数据 8个字节 美国格式为:月 /日 /年ANSI格式为:年 /月 /日
日期
时间型 T
包含年、月、日
和时间的数据 8个字节
从 0100/10/01到 9999/12/31
加上从 00:00:00到 23:59:59
逻辑型 L,真, 或, 假, 的布尔值 1个字节,T,/,F.
备注型 M 数据块 4个字节 只受可用内存空间的限制
通用型 G OLE对象引用 4个字节 只受可用内存空间的限制
15.4 数据库操作常用命令一
? CREATE
? LIST STRU,DISP STRU,MODI STRU
? USE,CLOSE
? APPEND:追加记录; INSERT:插入记录。
? LIST,DISPLAY:显示查询记录。
? BROWSE:浏览
? GO,SKIP:记录指针。
? DELETE:逻辑删除记录 ;PACK:物理删除。
? ZAP:清空库中所有记录。
? SORT:排序。
15.4 数据库操作常用命令二
? INDEX:索引,IDX索引与结构索引文件( CDX)
不同。
? FIND,SEEK:索引查询。
? UPDATE:库文件间的更新操作。
? REPLACE:批量更新。
? COUNT,SUM,CALCULATE,TOTAL:数据运算。
? EOF(),BOF(),FOUND():几个函数。
? 多表操作,工作区,多表间的连接和关联。
15.5 结构化程序设计
? 15.5.1 程序设计基础知识
? 15.5.2 交互式语句
? 15.5.3 分支判断
? 15.5.4 循环结构
? 15.5.5 过程(子程序)
? 15.5.6 程序示例
15.5.1 VFP程序设计基础知识
? 程序文件扩展名为,prg。
? 建立程序命令,MODIFY COMMAND <FileName[.prg]>
? 执行程序命令, DO FileName
? 程序经编译, 连编, 可生成不同的目标代码文件 。 用
DO命令执行时, 如果为指定扩展名, 则按以下顺序执
行,exe文件, app文件, fxp文件, prg文件 。
? 伪编译可生成 FXP 型文件, 不能脱离 Foxpro 环境 。
? 程序编译可生成 EXE型文件, 能脱离 Foxpro 环境 。
? 命令结束用 enter,分行书写用, ;, 号 。
? 注释可用 NOTE或 *标记一行, 或用 &&在行后添加 。
15.5.2 交互式语句
? ACCEPT [<cPromptText>] TO <MemVarName>:将输入的字符型数据送
入到内存变量中 。
? INPUT [<cMessageText>] TO <MemVarName>:可为数值 。
? WAIT [<cExpression>] [TO <MemVarName>][WINDOW[AT< ROW >,<
COL>]][NOWAIT][CLEAR|CLEAR][TIMEOUT<nExpression>]:显示提示
信息, 暂停程序运行, 直到按任意键继续 。
? SET TALK ON|OFF
? SET CONSOLE ON|OFF
? SET DEVICE TO PRINT|SCREEN
? SET PRINT ON|OFF
? @ <ROW,COL) SAY <Expression>
15.5.3 分支判断
? IF语句结构:
IF <条件表达式 >
<语句序列 1>
[ELSE
<语句序列 2>]
ENDIF
? DO CASE 语句 结构:
DO CASE
CASE <条件 1>
<语句序列 1>
...
CASE <条件 n>
<语句序列 n>]
[OTHERWISE
<语句序列 >]
ENDCASE
15.5.4 循环结构
? 步长型循环语句:
? FOR <循环变量 >= <初值
> TO <终值 > [STEP <步
长 >]
? 〈 语句序列 1〉
? [EXIT]
? ……
? [LOOP]
? ……
? ENDFOR|NEXT
? 当型循环语句:
? DO WHILE <条件表达式 >
? 〈 语句序列 1〉
? [EXIT]
? ……
? [LOOP]
? ……
? ENDDO
15.5.4 循环结构
? 扫描循环语句:
? SCAN [<范围 >] [ FOR|WHILE <条件表达式 >]
? <语句序列 >
? [LOOP]
? ……
? [EXIT]
? ……
? ENDSCAN
15.5.5 过程(子程序)
? 1.子程序可以是一段独立的 prg程序文件, 以 RETURN
结束, 有自己的文件名, 其他文件可调用这个文件 。
? 2.调用方法,DO ProgramName1 | ProcedureName
? 3.定义过程或函数命令格式:
? PROCEDURE|FUNCTION <过程名或函数名 >
? <语句序列 >
? [RETURN [<表达式 >]]
? ENDPROC|ENDFUN
15.5.6 程序示例 1:计算 10!
? SET TALK OFF
? CLEAR
? S=1 && 暂存阶乘值
? N=1 && 控制循环次数, 兼产生自然数
? DO WHILE N<=10
? S=S*N
? N=N+1
? ENDDO
??,10!=”,S
? SET TALK ON
? RETURN
15.5.6 程序例 2:求 S=A! +B! +C!
? INPUT, a=” to a
? INPUT, b=” to b
? INPUT, c=” to c
??, s=”, p( a) +p( b) +p( c)
? FUNCTION p( n)
? m=1
? FOR i=2 TO n
? m=m*I
? ENDFOR
? RETURN m
15.6 可视化程序设计
15.7 应用系统开发 --组成部分
? VFP应用系统一般包括以下基本组成部分:
? 一个或多个数据库:每个数据库包括多个基表, 视图等 。
? 用户界面:包括欢迎界面, 注册界面, 主界面 ( 包括菜单,
工具栏 ), 通过主界面的菜单或工具栏中的按钮可分别进
入到各个子模块的窗体中 。
? 事务处理:包括查询, 统计, 汇总, 计算等, 允许用户通
过应用程序完成各种功能 。
? 输出:包括报表, 浏览, 排序等, 一个数据库应用系统一
般应为用户提供多种形式的报表 。
? 主程序:主程序为应用系统的运行起点, 系统从主程序开
始运行, 然后依次调入欢迎界面, 注册界面, 主界面 。
15.7 应用系统开发 —步骤
? 1.创建应用系统目录结构。自动生成项目文件夹,包括
data,forms,menu,progs,reports等。
? 2.在项目管理器中组织应用系统。
? 3.在项目信息窗口中输入项目基本信息,如作者姓名、单
位、城市、省份、国家 /地区、是否加密等。
? 4.利用, 应用程序向导, 和, 应用程序生成器, 简化开
发。
? 5.编写主程序、环境设置程序、退出程序、欢迎界面、注
册界面、主界面、各模块功能界面以及报表等。主程序的
任务一般包括设置应用程序的起点、初始花环境、显示初
始花界面、控制事件循环( READ EVENTS)。退出程序包括
恢复原始开发环境、退出事件循环( CLEAR EVENTS)。
? 6.连编项目。 7.连编应用程序( APP或 EXE或 COM DLL)
15.8 小结
? VFP是一个小型 DBMS,较新版本为 VFP6.0, VFP.Net。
? VFP具有全面的数据库管理功能, 可建立, 修改, 更新,
查询数据库, 并有效保证数据完整性 。
? VFP又是一种高级程序设计语言, 支持结构化程序设计
和可视化面向对象的程序设计 。
? VFP数据类型分为数值型, 字符型, 逻辑型, 货币型,
日期型, 日期时间型 。
? 项目管理器是 VFP应用项目开发的有效管理工具,
? 大量向导是 VFP一大特色 。 库设计器, 表设计器, 表单
设计器, 菜单设计器, 报表设计器都要很好掌握 。
15.9 习题
? 15.1 在 VFP中建立 xsgl数据库及 student,course,sc
三个表, 并输入一些实验数据 。
? 15.2 对 xsgl数据库的 student,course,sc三个表完成
一些查询更新操作, 要求使用 VFP命令和 SQL语句分
别完成 。
? 15.3 如何保证 xsgl数据库 student,course,sc三个表
的数据完整性?
? 15.4 分别用向导和设计器创建 student表单和报表 。
? 15.5 用 VFP开发一小型数据库应用系统, 题目自定 。