VFP程序设计基础授课_第1页
VFP程序设计基础授课_第2页
VFP程序设计基础授课_第3页
VFP程序设计基础授课_第4页
VFP程序设计基础授课_第5页
已阅读5页,还剩314页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VFP程序设计基础 VFP课程 4学分的考试课学时 30 理论 30 上机 评分 Grading 课堂出勤 10 实验 作业 20 期末考试 70 课程简介 学习目标1 理解并熟悉计算机解题的思想和过程 2 以VF为载体学好程序设计及数据库基础 形成良好的程序设计风格 学习方法1 积极调整思维方式 2 理解概念 多做练习 基本要求1 上课认真听讲 课后认真复习 2 按时完成作业 3 上机实习要有准备 实习后要认真总结 4 学习要积极主动 做到事半功倍 第1章VFP数据库基础 本章学习目标 掌握数据库 数据模型 数据库管理系统等基本概念 掌握关系模型 关系模式 关系 元组 属性 域 主关键字和外部关键字等概念 会使用投影 选择 连接等关系运算 了解数据库的实体完整性 域完整性 参照完整性 了解VFP系统的特点与工作方式 各种设计器和向导 本章内容 信息及数据的处理数据管理技术的发展数据库系统的基本概念数据库系统的特点数据模型关系的术语关系的基本性质关系的运算关系的完整性约束 VFP数据库管理系统的特点VFP的启动与退出VFP的系统界面VFP常用的工具VFP的工作方式VFP的环境设置VFP常用的文件类型VFP的命令格式 1 1数据库基础知识 1 2VFP基本概述 VF数据库基础 1 1数据库基础知识 信息及数据的处理数据管理技术的发展数据库系统的基本概念数据库系统的特点数据模型关系的术语关系的基本性质关系的运算关系的完整性约束 1 信息及数据的处理 1 数据是指能被计算机识别和处理的物理符号 是信息具体化的表示形式 其形式多样化 如 文字 字母 数字 图形 图象 动画 声音等 2 信息是客观事物的特征在人脑中的反映 是经过加工处理并对人类客观行为产生影响的数据表现形式 1 1数据库基础知识 3 数据处理是对原始数据进行各种加工处理 使之成为可利用的 有价值的信息 数据管理是数据处理的核心 它主要是指对数据进行分类 排序 编码 存储 检索和维护等操作 2 数据管理技术的发展 数据管理技术经历了由低级向高级的发展过程 这一过程一般可以分为三个阶段 人工管理阶段 文件系统阶段 数据库系统阶段 1 人工管理 数据不保存 数据不具有独立性 数据面向程序 一组数据对应一组程序 无法被其他程序利用 存在大量的冗余数据 2 文件系统 数据可长期保存 由文件系统管理数据 但数据共享性差 冗余度大 程序与数据有了一定的独立性 但独立性差 容易产生不一致性 3 数据库系统 数据采用统一的结构存放 具有集成性 高度共享性 低冗余度 高度独立性 并能避免数据之间的不相容性和不一致性 数据库管理示意图 数据管理三个阶段的比较 新兴阶段 数据仓库 数据库系统和数据仓库系统的区别 3 数据库系统的基本概念 1 数据库DB DataBase 是存储在计算机中结构化的相关数据的集合 它不仅包含描述事物的数据本身 而且包含数据之间的联系 在VFP中 数据库是存放表 Table 视图 View 及其联系的容器 2 数据管理系统 DBMS 是建立 维护 使用和管理数据库的软件 常用的中小型数据库管理系统有SQLServer dBase FoxBase FoxPro VisualFoxPro Access等 DBMS具有数据库描述 DDL 操纵 DML 和控制 DCL 的功能 DB 数据本身 数据间的联系 DBMS属系统软件 3 数据库系统是指引入数据库技术后的计算机系统 它由数据库 硬件系统 数据库管理系统及其相关软件 数据库管理员 DBA DataBaseAdministrator 和其他用户五部分组成 数据库系统的核心是数据库管理系统 4 数据库应用系统是为了解决某个实际问题 开发人员利用DBMS编写的应用软件 例如教学管理软件 财务管理软件等 1 数据结构化 即采用特定的数据模型 是数据库系统与文件系统的本质区别 2 数据共享性高 冗余度低 易扩充 3 具有较高的数据独立性 4 数据由DBMS统一管理和控制 4 数据库系统的特点 从客观事物到信息 再到数据 是人们对现实世界的认识和描述过程 需要经历现实世界 信息世界和数据世界 也称为机器世界 计算机世界 这三个世界的转换 5 数据模型 概念模型 从客观事物到信息 把现实世界中的客观对象抽象为概念模型 也称信息模型 它是按用户的观点来对数据建模 数据模型 从信息到数据 把信息世界中的概念模型转换为数据世界中某一DBMS支持的数据模型 它是按计算机系统的观点对数据建模 1 概念模型 信息模型 1 实体 客观存在并可相互区别的事物 如 工人 王楠 学生 班级等2 实体集 同类型实体的集合称为实体集 例如一个班的全体学生就是一个实体集 3 属性 描述实体的特性 4 实体型 属性的集合表示一种实体的类型 称为实体型 5 联系 实体之间存在的对应关系 反映客观事物的相互关联 实体 联系模型 最常用的概念模型是实体 联系模型 常采用E R图 Entity Relation 建模 所以实体模型有时被简称为E R模型 E R模型图用矩形 椭圆和菱形分别表示实体 属性和联系 实体名 属性名 属性名 实体名 属性名 属性名 联系名 联系的3种类型 一对一联系 1 1 学生与学号之间具有一对一联系 一对多联系 1 n 班级与学生之间具有一对多联系 多对多联系 m n 课程与学生之间具有多对多联系 班级 班级 班长 班长 1 1 1 1联系 课程 选修 学生 m n m n联系 班级 组成 学生 1 n 1 n联系 2 数据模型 数据模型是在计算机世界中建立的模型 该模型由数据结构 数据操作和完整性约束三部分组成 典型的数据模型主要包括层次模型 网状模型 关系模型等 1 层次模型 以属性结构为基础的数据结构 具有明显的上下层的关系 模型简单 直观 处理方便 但不能处理多对多联系的复杂模型 层次模型是用树型结构来表示数据之间的联系 2 网状模型 以网络结构为基础的数据结构 可以表示复杂的数据结构 但实现的算法比较难规范 网络模型是用网络结构来表示数据之间的联系 可以表示多对多的联系 3 关系模型 以二维表格为数据的表示方式 表格中同一行的为一条记录 同一列的为一个数据项或称字段 一个表格对应一个关系 多个关系组成一个关系模型 特点 1 表格中的每一列都是不可再分的基本属性 2 各列被指定一个相异的名字 3 各行不允许重复 4 行 列的次序无关 关系模型 数据结构 关系运算 完整性约束 1 关系 一张二维表 在VFP中一个关系就称为一个数据表 2 元组 指表中一行上的所有数据 在VFP中一行称为一个记录 3 属性 指表中的一列 在VFP中一列称为一个字段 4 域 指表中属性的取值范围 在VFP中字段的取值称为一个字段的宽度 5 关系模式 对关系的描述 一个关系模式对应一个关系的结构 其格式为 关系名 属性1 属性2 属性3 属性n 6 关系的术语 一个关系模型由若干个关系模式组成 6 关键字或码 Key 表中用来唯一确定 标识 一个元组的某个属性或多个属性的组合 如学号可作为学生表的码 学号和课程号的组合可作为选课表的码 一个关系中的关键字必须唯一 关键字的值不能为空 即关键字的值为空的元组或重复的元组在关系中是不允许存在的 关键字的种类 候选关键字 候选码 如果一个关系中存在多个属性或属性组合都能用来唯一标识该关系的元组 这些属性或属性组合都称为该关系的候选关键字或候选码 主关键字 主码 在一个关系的若干个候选关键字中指定作为关键字的属性或属性组合称为该关系的主关键字或主码 非主属性 非码属性 关系中不组成码的属性均为非主属性或非码属性 外部关键字 外键 当关系中某个属性或属性组合虽不是该关系的关键字或只是关键字的一部分 但却是另外一个关系的关键字时 称该属性或属性组合为这个关系的外部关键字或外键 主表与从表是指以外键相关联的两个表 以外键作为主键的表称为主表 外键所在的表称为从表 学生表 课程表 课程号是学生关系的外关键字 不是关键字 但是课程关系的关键字 术语的比较 1 同一个关系中不能出现相同的属性名2 关系中不允许有完全相同的元组3 关系中各行的次序 各列的次序不要求 4 关系必须规范化 每个属性必须是不可分割的数据单元 即表中不能再包含表 7 关系的基本性质 在关系模型中 实体以及实体间的联系采用了单一数据结构 关系来表示 对数据的操作就是对关系的运算 即对记录的集合进行操作 关系的运算可分为两类 传统的集合运算 交 差和并 和专门的关系运算 选择 投影和连接 8 关系的运算 1 并 两个关系的所有元组组成的集合2 交 两个关系共有的元组的集合3 差 设两个关系R和S R差S的结果是由属于R但不属于S的元组组成的集合 要求进行运算的两个关系必须具有相同的关系模式 即相同的结构 1 传统的集合运算 1 选择运算 选择运算是根据给定的条件 从一个关系中选出若干个元组组成一个新的关系 其关系模式不变 选择运算是关系的横向操作 不改变原关系模式 即行数改变 二维表的高度减小 列数不变 二维表的宽度不变 在VFP中的短语FOR 条件 和WHILE 条件 均相当于选择运算 2 专门的关系运算 姓名 出生日期和专业 学生表 2 投影运算是从一个关系中指定若干个属性组成新的关系 并可以重新安排列的顺序 投影运算就是关系的纵向操作 改变了原关系模式 即列数改变 在VFP中短语FIELDS 字段1 字段2 相当于投影运算 2 专门的关系运算 姓名 出生日期和专业 学生表 3 连接运算是将两个关系通过公共的属性拼接成一个更宽的关系 生成的新关系中包含满足连接条件的元组 运算过程是通过连接条件实现关系的横向组合 在VFP中 有单独一条短语JOIN就可以实现两个关系的连接运算 等值连接和自然连接是最常用连接运算 等值连接在连接条件中使用等号 运算符比较被连接列的列值 其连接结果中列出被连接表中的所有列 包括两表的重复属性 只要求属性值相等 不要求属性名相同 自然连接去掉重复属性的等值连接 既要求属性值相等 也要求属性名相同 关系运算 小结 如果需要两个以上的关系进行连接 应当两两进行 利用关系 表 的这三种专门运算可以方便地构造各种新的关系 表 9 关系的完整性约束 数据库完整性是指数据库中数据的正确性和相容性 关系的完整性主要有域完整性 实体完整性和参照完整性三种 数据库完整性由各种各样的完整性约束来保证 数据库完整性约束可以通过DBMS或应用程序来实现 基于DBMS的完整性约束作为模式的一部分存入数据库中 数据结构简单 格式描述统一 概念清除 能反映实体之间的一对一 一对多 多对多三种联系 有严格的数学理论基础 易学习 易理解 符合使用习惯 补充内容1 关系模型的优点 包括结构设计和行为设计 结构设计 主要确定数据库和数据表行为设计 主要确定某种程序设计方法和使用某种语言来编写应用程序 补充内容2 数据库设计基础 1 数据库设计内容 概念单一化 数据表结构要简单 明晰 应避免大而杂 避免重复字段 除外部关键字外 应尽量减少不同表中的重复字段 表中保存原始数据 应避免出现通过计算可得到的字段 合理设计关键字 通过主关键字和外部关键字建立不同表之间的连接 2 数据库设计原则 需求分析 信息需求 处理需求 安全性和完整性需求确定需要的表确定所需的字段确定联系 一对一的联系 一对多的联系 多对多的联系设计求精 3 数据库设计步骤 需求分析 信息需求 处理需求 安全与完整性需求 结构设计 数据库 表 字段 关键字 表间联系 系统设计实施 建立库 表结构 设计 编写应用系统功能模块 调试应用程序 3 数据库设计过程 例1 1设人事管理关系模型中有下列关系模式 1 部门 部门编号 部门名称 2 职工情况 职工编号 姓名 性别 出生日期 学历 职称 3 工资 职工编号 基础工资 职务津贴 奖金 水电费 补充内容3 关系模型举例 由部门 职工情况 工资三个关系模式构成的关系模型如下 例1 2设图书借阅关系模型中有下列关系模式 1 图书 书编号 书名 作者 出版社 单价 分类号 2 借阅 书编号 借书证号 借阅日期 3 学生 学号 姓名 班级 由图书 借阅登记 学生三个关系模式构成的关系模型如下 学生表 1 2VFP基本概述 VFP数据库管理系统的特点VFP的启动与退出VFP的系统界面VFP常用的工具VFP的工作方式VFP的环境设置VFP常用的文件类型VFP的命令格式 1 VFP数据库管理系统的特点 VFP是一个运行于Windows98以上32位操作系统平台上 基于Windows操作系统的小型关系数据库管理系统 VFP既可以进行数据的管理 又可以进行数据库应用软件的开发 不仅支持传统的面向过程的编程技术 而且支持可视化的 面向对象的编程技术 2 VFP的启动与退出 1 VFP的启动 演示 2 VFP的退出 演示 特有关闭法 命令 窗口输入QUIT命令并回车 3 VFP的系统界面 正常启动VFP系统后进入VFP主窗口 它由标题栏 菜单栏 常用工具栏 状态栏 命令窗口和主窗口工作区组成 显示工具栏 执行 显示 工具栏 菜单命令 打开 工具栏 对话框 选择所需打开的工具栏 重设工具栏 在 工具栏 对话框中 单击 重置 按钮 然后单击 定制 按钮 进入 定制工具栏 对话框 可以配置各工具栏中的工具按钮 1 工具栏 2 命令窗口 命令窗口是输入 编辑并执行VFP系统命令的窗口 显示和隐藏命令窗口执行 窗口 命令窗口 菜单命令可以打开命令窗口 在命令窗口中可以进行命令行的编辑 执行等操作 4 VFP常用的工具 项目是指文件 数据 文档和VFP对象的集合 包括表 数据库 表单 报表 查询 类 程序等 项目管理器则是将一个应用程序的所有文件都集合成一个有机的整体 形成一个扩展名为 pjx的项目文件 1 项目管理器 通过右侧的按钮可以实现各种项目文件的新建 修改 添加或移去等一系列操作 向导把一些复杂的操作分解为若干简单的步骤来完成 每一步使用一个对话框 用户只要逐步回答向导提出的问题 向导便可以自动替你完成相应的任务 通过 工具 菜单 向导 子菜单即可启动向导 常用的向导设计器有表向导 报表向导 表单向导 查询向导等 2 向导 设计器是VFP提供给用户的交互式的可视化开发工具设计器 集成了用于设计对象的各种操作 并赋予可视化提示 为用户提供了一个友好的图形界面 用户可以通过设计器创建并定制数据表结构 数据库结构 报表格式和应用程序组件等 常用的设计器有表设计器 查询设计 视图设计器 列表框生成器 报表设计器 数据库设计器 菜单设计器等 3 设计器 生成器是带有选项卡的对话框 为对象方便 快速地设置一些辅助选项 用于简化对表单 复杂控件和参照完成性代码的创建和修改过程 如帮助用户对特定的对象设置属性或者组合子句创建特定的表达式等 与向导不同 生成器是可重入的 可以不止一次地打开某一对象的生成器 常用的生成器有组合框生成器 命令组生成器 表达式生成器 列表框生成器等 4 生成器 5 VFP的工作方式 VFP有两类工作方式 交互方式 菜单命令 和程序方式 批命令 其中前者又分为菜单方式和命令方式 总共3种工作方式 通过右侧的按钮可以实现各种项目文件的新建 修改 添加或移去等一系列操作 选择菜单中的命令或工具栏按钮 即可执行命令完成工作 VFP菜单是一种动态菜单 它会随着打开文件的不同而改变 VFP共有11个菜单 通常只显示其中的一部分菜单 1 菜单方式 2 命令方式 在命令窗口中直接输入命令 回车即可执行 命令窗口的操作 显示 隐藏 命令窗口右上角关闭按钮关闭 窗口 中的 命令窗口 打开 用常用工具栏上的命令窗口按钮显示或隐藏 Ctrl F4关闭命令窗口 Ctrl F2显示 A 在命令窗口中输入命令 按回车键后即执行该命令 执行 B 若命令行太长 可用半角分号 续行 VFP命令是以回车符来结束的 续行 C 执行过的命令将保留在命令窗口中 如果需要再次执行前面输入过的命令 只要将光标移到该命令行的任意位置 按回车键即可 重复 D 可以对命令窗口中的命令进行编辑 修改 复制 粘贴等 操作 编辑 E 在命令窗口中选定若干条命令 按回车键 则连续执行所选命令 批量执行 F 若需清除主窗口工作区的内容 可用clear命令 清屏 G 关于命令窗口的其他操作可以右击命令窗口 从快捷菜单中选择 属性 命令 再 编辑属性 对话框中进行设计即可 设置显示属性 注意事项 6 VFP的环境设置 VFP安装完毕之后 自动使用系统默认的环境参数值 用户可以根据实际需要和个人习惯设置个性化的应用开发环境 这些环境参数可以通过执行 工具 菜单的 选项 命令 再在 选项 对话框的 XXX 选项卡进行设置即可 还可以通过VFP的SET命令进行设置 永久性设置 临时设置 更改仅保存于内存中 退出VFP会丢失所有临时设置 再启动VFP即恢复系统默认值 永久设置 更改保存于注册表而成为系统默认值 操作 环境设置修改后 单击 设置为默认值 确定 环境设置的保存 常用的环境设置 设置默认目录 设置日期的显示格式 SETDEFAULTTO目录 SETDATETO格式 显示4位年 xxxx SETCENTURYON 设置帮助文件 SETHELPTO帮助文件 设置排序序列 SETSTRICTDATETO 显示状态栏 SETSTATUSON 7 VFP常用的文件类型 8 VFP的命令格式 VFP的命令都有固定格式 必须按相应的格式和语法规则书写使用 否则无法识别及执行 一般情况下 VFP命令总是由命令动词 命令的功能 开头 后面接一个宾语 命令的操作对象 和若干短语 命令的操作范围 操作结果 命令动词表示做什么 必须写在命令的开头 短语又称子句 表示操作的对象以及怎么做 其位置任意 命令动词与子句之间 各子句之间都以空格分隔 当命令一行书写不完时 可在行尾用分号 进行续行 便可在下一行继续书写 VFP的命令词不区分字符的大小写 1 VFP命令的基本格式 必选顶 表示命令中必须书写该项 但内容可以根据需要确定 可选项 可根据实际需要选用或省略该项内容 任选项 根据实际需要任选且必选其中一项内容 说明 2 VFP命令的常用子句 相当于关系运算中选择运算 按指定运算逻辑条件选择表中符合条件的记录 共有4种范围子句 RECORD 范围是记录号为N的一条记录 NEXT 范围是从当前记录开始的连续N条记录 包括当前记录 REST 范围是从当前记录开始到表尾的所有记录 包括当前记录 ALL 范围是表中的全体记录 范围子句 对应于关系运算中选择运算 以指定逻辑条件为依据 从表中选择符合条件的记录 条件子句有两种 FOR 选择表中符合条件的所有记录 WHILE 选择符合条件的记录 直到第一个不符合条件的记录为止 其中 由一个逻辑表达式或关系表达式构成 其值为逻辑型数据 条件子句 对应于关系运算中的投影运算 从表中选取命令操作的字段范围 其中字段名表由若干个以逗号分隔的字段名构成 关键字FIELDS有时可省略 格式 FIELDS FIELDS子句 第2章VFP语言基础 本章学习目标 掌握VFP的基本数据元素 常量 变量 函数 表达式等 掌握并熟练使用VFP的常用函数 数据的内涵 数据是数据库管理系统操作和管理的对象 记录了客观事物的属性 其内涵包括两方面 数据内容和数据形式 数据内容用于描述客观事物的特征 即数据的 值 数据形式是指数据内容存储于媒体中的形式和使用方式 即数据的 类型 在VFP中 数据可以存放在常量 变量 数组 字段 记录和对象等数据容器中 常用的数据类型 数据表的字段可使用全部的数据类型 而常量和内存变量只能使用字符型C 数值型N 货币型Y 日期型D 日期时间型T和逻辑型L这6种类型的数据 说明 1 字符型 Character 简写为C 字符型数据是不具计算能力的文字数据类型 字符型数据包括中文字符 英文字符 数字字符和其他ASCII字符 其长度 字符个数 范围是0 254个字符 其界定符有单引号 双引号 方括号 三种 界定符空串和空格串2 数值型数值型数据是表示数量 可以进行数值运算的数据类型 数值型数据由数字 小数点 正负号和表示乘幂的字母E组成 在内存中占用8个字节 数据长度 数据位数 为1 20位 数值精度可达16位 在VFP系统中 按存储 表示形式与取值范围不同 数值型数据又分为数值型 Numeric 浮点型 Float 双精度型 Double 整型 Integer 四种不同类型 2 1数据类型 勘误 P20 相互兼容的数据类型之间才能进行运算 1 数值型 Numeric 简写为N 数值型数据由数字 小数点 正负号和字母E组成 用字母N表示 数值型数据的取值范围是 0 9999999999E 19到0 9999999999E 20 包括正负号 小数点和字母E在内 其长度最大20位 通常用于表示实数 2 浮点型 Float 简写为F 浮点型数据是数值型数据的一种 用字母F表示 它与数值型数据完全等价 只是在存储形式上用浮点格式 主要是为了得到较高的计算精度 3 双精度型 Double 简写为B 双精度型数据是具有更高精度的一种数据型数据 它采用固定长度浮点格式存储 占用8个字节 其小数点的位置是由输入的数据值来决定的 4 整型 Integer 简写为I 整型数据是不包含小数部分的数值型数据 整型数据只用来表示整数 以二进制形式存储 占用4个字节 所以整数字段类型比其他段类型占据的存储空间小 而且不需做ASCII码的转换 勘误 P21 0 9999999999E 19到0 9999999999E 20 3 日期型 Date 简写为D 日期型数据是表示日期的数据 长度固定为8个字节 年月日之间的分隔符不占字节 其定界符为花括号 或者 输入格式可采用严格日期格式 yyyy mm dd 或传统日期格式 mm dd yy yy 是严格日期格式的标志 并按照YMD的格式解释日期型和日期时间型数据 其中 yyyy 代表 年 mm 代表 月 dd 代表 日 年月日之间的分隔符可以是连字符 斜杠 点号 和空格等符号 勘误 P20 相互兼容的数据类型之间才能进行运算 VFP系统默认采用严格的日期格式 并以此检查所有日期型和日期时间型数据的格式是否规范 合法 为与早期版本兼容 用户通过命令或菜单设置改变这一格式 命令设置的格式 SETSTRICTDATETO 0 1 2 其中0表示不进行严格的日期格式检查 1表示进行严格的日期格式检查 它是系统默认的设置 2表示进行严格的日期格式检查 并且对CTOD 和CTOT 函数的格式也有效 省略 0 1 2 表示恢复系统默认值 等价于1的设置 日期型数据的显示格式有多种 具体使用哪一种格式主要与日期格式的设置 SETCENTURYON OFF设置是否显示世纪年份 SETDATETO AMERICAN ANSI BRITISH FRENCH GERMAN ITALIAN JAPAN USA MDY DMY YMD SHORT LONG 设置日期显示格式 相关 日期的默认显示格式是 mm dd yy yy 至于年 月 日之间显示的分隔符可以用SETMARKTO来设置 日期型说明 4 日期时间型 DateTime 简写为T 日期时间型数据是表示日期和时间的数据 长度固定为8个字节 其定界符为花括号 或者 年 月 日分隔符与日期型数据分隔符相同 时 分 秒之间用 分隔 日期与时间之间用空格或逗号 分隔 如输入格式可用 yyyy mm ddhh mm ss am pm 来表示 hh 代表 小时 后面的 mm 代表 分钟 ss 代表秒 其显示格式有多种 具体使用哪一种格式主要与日期格式的设置相关 Sethoursto12 24setsecondson off 5 逻辑型 Logical 简写为L 逻辑型数据是描述客观事物真假的数据类型 表示逻辑判断的结果 其定界符为圆点 表示逻辑值的字母前后的圆点不能省略 逻辑型数据只有真 T t Y 或 y 和假 F f N 或 n 两种 长度固定为1个字节 6 货币型 Currency 简写为Y 货币型数据用来存储货币值 长度固定为8个字节 最多保留4位小数 多于4位则四舍五入 7 备注型 Memo 简写为M 和通用型 General 简写为G 备注型用于存储较多的字符 可看作是字符型数据的特殊形式 用字母M表示 通用型用于存储OLE 对象链接嵌入 对象 用字母G表示 通用型数据中的OLE对象可以是照片 电子表格 声音 图表及字符型数据等 记录在备注型或通用型字段中的信息 并不存放在数据表文件中 实际数据存放在与表主文件名相同但扩展名为 FPT的文件中 所以没有数据长度限制 仅受限于磁盘空间 备注型和通用型数据所占用的长度固定为4个字节的空间用于存放 FPT文件的地址 该文件会自动生成并伴随表文件的打开而自动打开 1 常量 在程序运行过程中其值固定不变的数据 VFP中有字符型 数值型 浮点型 逻辑型 日期型和日期时间型6种类型的常量 1 字符型常量 用定界符括起的字符串 定界符有单引号 双引号和方括号 如 1 ASDF 123GHJK 2 数值型常量 如123 3456 7832 1234 6983 浮点型常量 如145E 12 3 45E 3 2 2常量和变量 4 日期型常量 用大括号括起 如 1999 04 12 传统的日期格式 缺省格式 mm dd yy 月 日都为两位数 年份可以2位或4位 这种格式受命令语句的设置影响 SetdatetoUSA DMY YMDSetCenturyon off 严格的日期格式 1980 03 14 该格式不受命令的影响 可以在任何情况下使用 除了在表中输入数据以外 5 逻辑型常量 用圆点定界符括起 如 T F Y N t y n f 6 日期时间型常量 如 03 14 9912 23 11 7 货币型常量货币型常量用于表示货币值 表示形式与数值型常量相似 但不能用科学记数法 且小数点后最多取四位 在表示时可用 开头 如 568 30 定界符必须是英文半角字符不同定界符可以互相嵌套的 但不允许交错出现 2 变量 在命令操作和程序运行过程中其值可以改变的量 VFP变量可以分为字段变量 内存变量 其中内存变量又可分为简单的内存变量 数组变量 系统变量 变量的命名规则 1 必须以字母 汉字或下划线开头 不能含有空格 如3m 2a是不合法的 2 由数字 字母 汉字和下划线组成 如x a2 城市 Class 1都是合法的 3 长度为1 128个字符 每个汉字占2个字符 4 不能使用VFP的保留字 如DELETE CREATE等都是不合法的 变量的类型 注意 当内存变量与字段变量同名时 优先访问字段变量 若要访问内存变量需要在变量名前面加上前缀M 或M 以区别于字段变量 但对内存变量赋值时不能加前缀 系统默认为内存变量 例2 1 USE学生表 打开学生表 记录指针自动指向第1条记录 姓名 输出字段变量 姓名 的值 即第1记录 姓名 字段的值 李栋 姓名 张三 姓名 为内存变量名 与字段变量同名 取值为 张三 姓名 同名时字段变量优先 所以显示字段变量 姓名 的值 李栋 M 姓名 前面加 M 或 M 指定访问内存变量 姓名 显示 张三 2 3VFP常用的交互式命令 格式 WAIT ACCEPT INPUT 提示内容 TO 功能 从键盘接收用户输入的数据值赋给某个变量 说明 WAIT只能接收单个字符的输入 常用于判断用户输入的 是 或者 否 如输入WAIT 重复请按Y 否则请按其他键 TOch ACCEPT只能接收一个字符串的输入 常用于字符变量的交互式赋值 如想在程序运行时 让用户输入自己的姓名 即可采用命令 ACCEPT 请输入您的姓名 TOxm INPUT可接收多种类型数据的输入 如字符型 数值型 日期型 日期时间型 逻辑型等数据 但是输入时必须包含相应的界定符 如想让用户从键盘输入其出生日期 即可采用命令 INPUT 请输入您的出生日期 TOcsrq 假如用户的出生日期为1988年8月25日 那么输入时就应该加上日期型数据的界定符 即输入格式为 1988 08 25 1 输入命令 示例 1 wait 请确认是否继续输入 Y N toa1b 此命令执行后 等待用户从键盘输入一个字符给变量a1b赋值2 accept 请输入一个任意长度的字符串 toa2b 此命令执行后 等待用户从键盘输入一个字符串给变量a2b赋值3 input 请输入日期型数据 toa3b 此命令执行后 用户可从键盘上输入一个任意类型的数据给变量a3b赋值 注意 上述三个命令都是等待用户从键盘上输入相应的值给其后的变量赋值 而命令中双引号里面的内容属于提示信息 只起说明作用 而不是给其后的变量赋的值 2 输出命令 格式 表达式 功能 计算表达式的值并输出到屏幕或打印机 说明 单问号 在屏幕上先换行后输出 如先执行 x y 后执行 2 3 则这两条命令的输出结果为 x y 5 双问号 在屏幕上当前行直接输出 如先执行 x y 后执行 2 3 则这两条命令的输出结果为 x y 5 三问号 输出到默认打印机 3 反斜杠显示命令 格式 表达式 功能 直接将表达式原样输出到屏幕 并不计算表达式的值 说明 单斜杠 先换行后输出 双斜杠 当前行直接输出 如先执行 x y 后执行 2 3 再执行 2 3 则这两条命令的输出结果为 x y 2 3 5 2 4内存变量的常用操作 格式1 STORETO 格式2 格式3 提示内容 TO变量名 功能 用赋值运算符 或STORE命令定义内存变量并同时赋值 变量名之间用逗号 分隔 格式2和格式3一次只能为一个变量赋值 说明 格式 1 能同时对多个变量赋相同的值 先计算表达式的值 再进行赋值 1 内存变量的赋值 STORE3 4TOy1 y2 该命令出错 无法同时对两个变量赋不同值STORE5TOx1 x2 该命令等价于x1 5 x2 5两条命令 x1 x2 输出结果显示为 55wait 继续输入吗 Y N tox3 假如交互输入字符 Y x3 输出结果显示为 Y x1 x2 换行输出表达式计算结果 显示为 10 x1 x2 换行输出表达式的原样 显示为 x1 x2STORE 张三 TO姓名 用 姓名 作为变量名 值为字符型 张三 姓名 换行输出结果为 张三Accept 请输入学生的姓名 to姓名 假如交互输入字符串 李四 姓名 换行输出结果为 李四 假如下面input语句交互式输入日期型数据 1986 05 01 Input 请输入学生的出生日期 tocsrq csrq 当前行输出结果 显示为 05 01 86x3 5 更改变量x3的值csrq 1986 05 12 性别 T 用汉字 性别 作为变量名 值为逻辑真 T x3 csrq 性别 一次性输出多个表达式的值 例2 2 和 开头的标记都为注释标记 不属于命令行 VFP并不执行 格式 MEMORY LIKE TOPRINTER TOFILE 功能 显示内存变量的当前值 并可输出到打印机或文本文件 说明 DISPLAY 分屏显示 每一屏均停顿 LIST 滚屏显示 中间不停顿 通配符有 和 两种 前者匹配0个或多个字符 后者匹配1个字符 TOPRINTER 输出到打印机 TOFILE 输出到文本文件 2 内存变量的输出 LISTMEMORYLIKEa DISPLAYMEMORYTOFILEaa 将结果输出到aa TXT文件中 LISTMEMORYLIKE c 例如 附注 用 或 命令显示内存变量的值 CLEAR 清除屏幕上内容 以便接着输出其他内容 详见第六章 xm 张三 成绩 86KC 123 xb 男 csrq 1986 05 12 LISTMEMORYLIKEx 显示所有名称以x或X开头的内存变量 LISTMEMORYLIKE 显示所有内存变量 不包括系统内存变量 LISTMEMORY 显示所有内存变量 包括系统变量 例2 3 定义内存变量xm的值为 张三 成绩的值为86 KC的值为 VFP程序设计 xb的值为 男 出生日期为 1986 05 12 并在屏幕上显示出来 其中LISTMEMORYLIKEx 显示结果为 XMPubC 张三 XBPubC 男 变量值 变量名 变量作用域 数据类型 格式 SAVETO ALLLIKE ALLEXCEPT 功能 将当前内存中的内存变量 不包括系统变量 保存到内存变量文件中 说明 内存变量文件的扩展名为 mem LIKE EXCEPT 分别表示保存与通配符相匹配 不相匹配的内存变量 缺省可选项 将所有内存变量 系统变量除外 存放到内存变量文件中 如果要重新使用已保存过的内存变量 可用命令RESTOREFROM从文件进行恢复到内存 该命令会先清空内存并覆盖同名内存变量 若要保留其他当前内存变量 可在该命令后加上可选项ADDITIVE 3 内存变量的保存与恢复举例 为节省存储空间 不用的内存变量应使用清除命令来释放其所占的内存空间 格式1 CLEARMEMORY 格式2 RELEASE 格式3 RELEASEALL LIKE EXCEPT 格式4 CLEARALL 功能 格式1删除内存中所有内存变量 格式2删除变量名表中指定的内存变量 格式3利用通配符选择删除内存变量 若选用LIKE子句 则清除与通配符相匹配的内存变量 若选用EXCEPT子句 则清除与通配符不相匹配的内存变量 注意与清屏命令clear的区别 4 内存变量的释放 注意 上述命令都不清除系统内存变量 2 5数组变量 数组变量 数组 是具有相同变量名并在内存中占有连续存储单元的一组内存变量 数组中的变量称为数组元素或下标变量 其用法同简单变量 一个数组的元素个数称为该数组的大小 下标变量的下标个数称为维数 只有一个下标的数组叫一维数组 类似于向量 存储顺序从左到右 有两个下标的叫二维数组 类似于矩阵 两个下标可分别理解为行数和列数 其存储顺序先行后列 即先从左向右存储第一行 接着从左向右第二行 以此类推 注意 新定义的数组会取代已存在的同名内存变量 命名规则 与简单内存变量相同 数组使用前一般需要先定义 VFP只可定义一维数组和二维数组 格式 DIMENSION DECLARE 功能 定义一个或多个一维或二维数组 多个数组名之间用逗号 分隔 说明 一维数组的大小为下标表达式的值 二维数组的大小为所有下标表达式的乘积 即 数组大小 行数 列数 1 数组的定义 当需要访问一个数组中某个元素时 必须采用它自己专用的访问方法 格式1 下标法 数组名 下标1 下标2 格式2 序号法 数组名 序号 功能 VFP数组的下标是从1开始的正整数 格式 2 中序号的取值范围是从1到数组大小 序号 下标1 列数 下标2 标1 取整 序号 行数 1 下标2 取余 序号 行数 2 数组的访问 在VFP中 刚定义的数组 其数组元素会系统自动赋初值逻辑假 F 与简单内存变量一样 可再通过STORE命令或赋值号 来进行重新对数组元素赋值 同一个数组的不同元素 可以赋不同数据类型的值 格式1 STORETO 格式2 3 数组的赋值 先定义两个数组AA 2 和AB 2 3 数组大小分别为3 6DIMENSIONAA 2 AB 2 3 STORE10TOAA 对数组AA的所有元素均赋值为10AB 1 1 张三 对数组元素AB 1 1 均赋值为 张三 AB 1 2 586 对数组元素AB 1 2 均赋值为586AB 1 3 T 对数组元素AB 1 3 均赋值为逻辑真 例2 4 格式1 SCATTER FIELDS TO BLANK MEMVAR BLANK 功能 把数据表中的数据传送到数组或一组简单内存变量 说明 将当前记录中指定字段表的变量值 按先后顺序传送给数组的各个元素 元素的类型根据记录的字段值决定 若无FIELDS可选项 则传送所有字段 如数组元素的个数多于字段变量的个数 则剩余那些数组元素的值不受影响 否则系统自动扩大数组的个数 4 数组与数据表的数据交换 若有BLANK短语 则会自动生成一个数组 其中各个元素与当前数据库文件相应字段的类型和长度完全相同 但数组是空的 若选用TOMEMVAR短语 则将当前记录传送到一组内存变量中 这些变量不仅与数据库文件相应字段同名 且类型与长度也相同 若选用TOMEMVARBLANK短语 将建立一组具有空值的简单内存变量 数据表 数组 SCATTER 格式2 GATHERFROM MEMVAR FIELDS 功能 把数组或内存变量中的数据传送到数据表 说明 从数组的第一个元素开始 顺序地将其传送到所指定的字段 要求数组元素的类型符合各字段变量的类型 如果数组元素的个数少于字段数 则当前记录中其余字段的值不受影响 反之则不考虑其余的那些数组元素 若选MEMVAR短语 则将若干与字段名相同的内存变量的数据传送到当前的记录中 数据表 数组 GATHER 2 6运算符 运算符是表示常量 变量 函数等数据之间运算方式的符号 不同类型的数据要用不同的运算符 若一个运算符有多个符号组成时 符号间不应该有空格 如大于等于符号 是一个比较运算符 符号 和符号 之间没有空格 VFP的运算符主要有算术运算符 字符串运算符 关系运算符 日期运算符和逻辑运算符 对于运算对象左右两侧的运算符 VFP首先根据优先级决定运算符的计算次序 若优先级相同 则再根据结合性决定运算符的计算次序 算术运算符对数值型数据进行运算 其运算结果为数值型数据 1 算术运算符 例如 2 3结果为812 5结果为212 5结果为 3 12 5结果为3 12 5结果为 2 注意 取余运算结果的符号与除数的符号相同 字符串运算符用于对两个字符型数据进行连接运算 其运算结果依然为字符型数据 2 字符串运算符 例如 a VisualFoxPro b 程序设计 则a b VisualFoxPro程序设计 而a b VisualFoxPro程序设计 注意P28 a字符串后有空格 日期 时间 运算符用于对日期 时间 型 数值型的数据进行运算 仅有 和 两个符号 日期运算符的运算结果为日期型数据或数值型数据 当日期型数据与数值型整数相加或者日期型数据减去一个数值型的整数时 结果为日期型数据 当日期型数据减去日期型数据时 结果为数值型的数据 例如 1949 10 01 10结果为日期型数据 1949 10 11 而进行运算 1949 10 01 1949 10 22 后结果为数值型数据 21 3 日期 时间 运算符 关系运算符即比较运算符 用于对运算对象进行比较的运算 其运算对象可以是数值型 字符型 日期型和逻辑型等数据类型 除外 但两边的数据类型必须一致 其运算结果为逻辑值 4 关系运算符 例如 sdf asdfgsdfjkl 的值为 t asd ASD 的结果为 f dfg dfg 的结果为 t 注意 子串判定 判定前一子串是否包含在后面串中 精确比较 两边的字符串必须完全相同 才返回 t 值 用关系运算符比较大小时 数值型数据按数值大小进行比较 日期型数据早的小 晚的大 逻辑型数据 T 大于 F 在默认状态下 字符型数据按字符的机内码 Machine 从左向右依次进行比较 西文字符小于汉字字符 汉字之间 其中一级汉字 按拼音顺序进行比较 二级汉字按部首顺序进行比较 一级小于二级 当相应的字符不同时 机内码大的大 机内码小的小 用户可以通过命令SETCOLLATETO来改变字符排序方式 其中Machine PinYin Stroke分别表示字符按机内码 拼音 笔画排序 或通过 工具 菜单中 选项 命令 在 数据 选项卡的 排列序列 下拉列表框进行设置 关系运算的说明 附注 字符串的精确比较 完成两个字符串的精确比较 与setexact无关 完成两个字符串的比较时 与setexact有关 Setexactoff 非精确比较 系统默认值 如果右边字符串与左边字符串的前面部分内容相等 则可得到真值 即以右边的字符串为目标 右字符串结束既终止比较 Setexacton 完成精确比较 比较到两个字符串全部结束 如果两串长度不同 先在较短字符串的尾部加上若干个空格 使两个字符串的长度相等 然后再进行比较 逻辑型运算符用于对逻辑型数据进行逻辑运算 运算结果为逻辑值 T 或 F VFP共有3个逻辑运算符 5 关系运算符 例如 5 3 and 4 1结果为 t ABC abc or a A 结果为 t not ABC abc 结果为 f 2 7表达式 表达式是数据之间运算关系的表达形式 它是是由若干常量 变量 运算符 函数 括号等组成的一个有意义的式子 其中 常量 变量和函数都可以看成是一个简单的表达式 如2 x等 当在表达式中出现了各种运算符时 优先级关系为 括号 一律用圆括号 内层括号优先 算术运算符 字符串运算符 日期 时间 运算符 关系运算符 逻辑运算符 表达式既有类型也有值 表达式的结果 其类型取决于表达式最终运算结果的数据类型 如 6 2 2为数值表达式 青岛 理工大学 为字符表达式 x 2ANDy 2为逻辑表达式 05 01 98 10为日期表达式 1 3 4 SQRT 25 5 4 2 2002 12 13 3 CTOD 2001 04 05 3 性别 女 AND三好生OR性别 男 AND 入校总分 600 解析 上面 1 3 两个表达式正确 2 为错误表达式 因两个日期型数据不能相加 SQRT为算术平方根函数名 CTOD为字符转日期函数名 功能见后介绍 性别 三好生和入校总分为本教程所列举的学生情况表的字段变量 例2 5 判断下列表达式形式是否正确 函数实质上是一段具有特定功能的程序 用来实现某些特定的运算 其形式和使用与数学函数类似 函数运算的结果 函数值 又称函数的返回值 函数类型取决于返回值的类型 在构造包含函数的表达式时 一定要注意使运算对象的数据类型相匹配 函数主要包括两类 系统函数和自定义函数 系统函数已经预定义 用户可以直接使用 而自定义函数指的是用户自己定义的函数 2 8常用函数 函数格式 格式 函数名 参数列表 说明 参数 函数返回值分别类似于数学函数中的自变量 因变量 函数名后的括号不可省略 即使没有参数 参数有其规定的数据类型 使用时必须符合规定的类型 常用的系统函数主要有数值函数 字符函数 日期 时间 函数 转换函数 测试函数 1 取整函数 格式 INT 数值表达式 功能 返回数值表达式值的整数部分 不考虑四舍五入 例2 6 INT 45 6 INT 12 34 结果显示为 45 12 INT 21 5 6 8 该函数结果为何 2 四舍五入函数 格式 ROUND 数值表达式 小数保留位数 功能 根据小数保留位数进行四舍五入 返回四舍五入的值 当小数保留位数为n 0 时 则对小数点后第n 1位四舍五入 当小数保留位数为负数n时 则对小数点前第 n 位四舍五入 例2 7 x 12 345 ROUND x 2 ROUND x 1 ROUND x 0 ROUND x 1 结果显示为 12 3512 31210 1 数值函数 函数参数 自变量 函数返回值的类型均是数值型 最常用的数值函数包括 取整函数 四舍五入函数 取余函数 取最大 小 值函数 注意 取整与四舍五入的区别 3 取余函数 格式 MOD 被除数 除数 功能 返回被除数除以除数所得余数 若被除

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论