已阅读5页,还剩105页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i Visual FoxPro 程序设计讲义程序设计讲义 目目 录录 VISUAL FOXPRO 程序设计讲义程序设计讲义 曾雪强曾雪强 I 目目 录录 I 第一章第一章 VISUAL FOXPRO 基础基础 1 第一节 数据库基础知识 1 一 数据库管理的发展 1 二 数据库系统 3 三 数据模型 4 第二节 关系型数据库 5 一 关系模型 5 二 关系运算 6 第三节 数据库设计基础 7 一 数据库设计步骤 7 二 数据库设计过程 7 第四节 VISUAL FOXPRO 系统概述 7 第二章第二章 VISUAL FOXPRO 系统初步系统初步 8 第一节 VISUAL FOXPRO 6 0 的安装与启动 8 一 安装 Visual FoxPro 6 0 8 二 启动 Visual FoxPro 6 0 8 第二节 VISUAL FOXPRO 6 0 的用户界面 8 一 Visual FoxPro 的主界面 8 二 Visual FoxPro 6 0 的操作方式 9 三 工具栏的使用 10 四 Visual FoxPro 的配置 10 第三节 项目管理器 10 第四节 向导 设计器和生成器 10 第三章第三章 数据和数据操作数据和数据操作 12 第一节 常量和变量 12 一 常量 12 二 变量 14 第二节 表达式 16 ii 一 算术表达式 16 二 字符表达式 17 三 日期表达式 18 四 关系表达式 18 五 逻辑表达式 19 六 运算符优先级 20 第三节 函数 20 一 数值函数 20 二 字符函数 21 三 日期和时间函数 23 四 数据类型转换函数 24 五 测试函数 25 第四章第四章 VISUAL FOXPRO 数据库及其操作数据库及其操作 27 第一节 VISUAL FOXPRO 数据库及其建立 27 一 建立数据库 28 二 打开数据库 28 三 修改数据库 29 四 数据库的关闭 29 五 删除数据库 29 第二节 表的基本操作 30 一 建立表结构 30 二 表的打开与关闭 32 三 表的删除 34 四 表结构的显示 34 五 表结构的修改 35 第三节 表的数据操作 35 一 表记录的显示 35 二 记录指针定位 36 三 增加记录 38 四 删除记录 38 五 修改记录 40 六 表的复制 42 七 表记录与数组间的数据传送 42 八 顺序查询 43 第四节 索引和排序 44 一 表的排序 44 二 索引的概念 44 三 索引的建立 46 四 索引文件的使用 47 五 索引查询 FIND SEEK 49 iii 第五节 多表操作 49 第六节 数据完整性 52 一 实体完整性 52 二 域完整性 52 三 参照完整性 52 第五章第五章 关系数据库标准语言关系数据库标准语言 SQL 54 第一节 SQL 概述 54 一 SQL 概述 54 二 SQL 语言的主要特点 54 第二节 查询功能 55 一 简单查询 55 二 多表查询 57 三 复杂查询 58 四 VFP 中的几个特殊选项 61 第三节 操作功能 62 一 插入 62 二 更新 63 三 删除 63 第四节 定义功能 64 第六章第六章 查询和视图查询和视图 65 第一节 查询 65 第二节 视图 66 第七章第七章 程序设计基础程序设计基础 68 第一节 程序与程序文件 68 一 FoxPro 程序的基本构成 68 二 程序文件的建立和执行 68 三 简单的输入输出命令 69 第二节 程序的基本结构 70 一 选择结构 70 二 循环结构 72 第三节 多模块程序 76 一 过程及过程调用 76 二 参数传递 78 三 嵌套和递归 79 四 变量作用域 80 五 自定义函数 81 第四节 程序调试 82 第八章第八章 表单设计与应用表单设计与应用 83 iv 第一节 面向对象的概念 83 第二节 VISUAL FOXPRO基类 83 一 基类 83 二 容器与控件 84 第三节 创建与管理表单 85 一 建立表单 85 二 运行表单 86 三 管理表单属性和方法 86 第四节 表单设计器 88 一 表单设计器环境 88 二 数据环境 90 第五节 常用表单控件 90 一 标签 Label 控件 91 二 命令按钮 CommandButton 控件 91 三 命令按钮组 CommandGroup 控件 92 四 文本框 TextBox 控件 92 五 编辑框 EditBox 控件 93 六 复选框 CheckBox 控件 94 七 选项组 OptionGroup 控件 94 八 列表框 ListBox 控件 94 九 组合框 comboBox 控件 95 十 表格 Grid 控件 96 十一 页框控件 97 第九章第九章 菜单设计与应用菜单设计与应用 98 第一节 VFP 系统菜单 98 一 菜单结构 98 第二节 下拉式菜单设计 98 一 菜单设计的基本过程 98 二 定义菜单 99 三 快捷菜单设计 100 第十章第十章 报表设计报表设计 101 第一节 创建报表 101 一 报表向导 101 二 快速报表 101 第二节 报表设计器 102 第三节 数据分组和多栏报表 103 Visual FoxPro 程序设计 第 1 页 第一章第一章 Visual FoxPro 基础基础 第一节第一节 数据库基础知识数据库基础知识 一 一 数据库管理的发展数据库管理的发展 在日常工作中 需要处理的数据量往往都很大 为便于计算机对其进行有效的处理 我们可以将采集的数据存放在建立于磁盘 光盘等外存媒介的 仓库 中 这个 仓库 就是数据库 Database 简称DB 数据集中存放在数据库中 便于对其进行处理 提炼出 对人们有用的信息 这就如同一个工厂生产出产品要先存放在仓库中 既便于管理 又 便于分期分批地销售 一个学校采购大量的图书存放在图书馆 书库 供学生借阅 因 此 数据库就是在计算机存储器中用于存储数据的仓库 数据库系统把大量的数据按照一定的结构存储起来 在数据库管理系统的集中管理 下 实现数据共享 由于数据库具有数据结构化 数据独立性高 数据共享和易于扩充 等特点 因此被广泛地应用于各种管理系统中 1 数据与数据处理 数据数据 存储在某种媒体上能够识别的物理符号 信息信息 被加工成特定形式的数据 对数据接受者有意义 数据处理数据处理 是指将数据转换成信息的过程 数据处理的目的是从大量的数据中 根 据数据自身的规律和及其相互联系 通过分析 归纳 推理等科学方法 利用计算 机技术 数据库技术等技术手段 提取有效的信息资源 为进一步分析 管理 决 策提供依据 2 计算机数据管理 伴随着计算机技术的不断发展 数据处理和数据管理的发展过程大致经历了人工管 理 文件管理 数据库管理及分布式数据库管理等四个阶段 1 人工管理 早期的计算机主要用于科学计算 计算处理的数据量很小 基本上不存在数据 管理的问题 从 50 年代初开始 开始将计算机应用于数据处理 当时的计算机没有 专门管理数据的软件 也没有像磁盘这样可随机存取的外部存储设备 对数据的管 理没有一定的格式 数据依附于处理它的应用程序 使数据和应用程序一一对应 互为依赖 Visual FoxPro 程序设计 第 2 页 由于数据与应用程序的对应 依赖关系 应用程序中的数据无法被其他程序利 用 程序与程序之间存在着大量重复数据 称为数据冗余数据冗余 同时 由于数据是对应 某一应用程序的 使得数据的独立性很差独立性很差 如果数据的类型 结构 存取方式或输 入输出方式发生变化 处理它的程序必须相应改变 数据结构性差 而且数据不能数据结构性差 而且数据不能 长期保存长期保存 2 文件系统 从 50 年代后期开始至 60 年代末为文件管理阶段 应用程序通过专门管理数据 的软件即文件系统管理文件系统管理来使用数据 数据处理应用程序利用操作系统的文件管理功 能 将相关数据按一定的规则构成文件 通过文件系统对文件中的数据进行存取 文件系统对文件中的数据进行存取 管理 实现数据的文件管理方式 管理 实现数据的文件管理方式 文件管理阶段中 文件系统为程序与数据之间提供了一个公共接口 使应用程 序采用统一的存取方法来存取 操作数据 程序与数据之间不再是直接的对应关系 因而程序和数据有了一定的独立性 程序和数据分开存储 有了程序文件和数据文 件的区别 数据文件可以长期保存在外存储器上被多次存取 但数据和程序相互依赖性仍很大 同一数据项可能重复出现在同一个文件中 这就导致了数据冗余度大 造成数据的不一致性 应用程序 1 应用程序 2 应用程序 n 操作系统 数据文件 1 数据文件 2 数据文件 n 应用程序 1 应用程序 2 应用程序 n 数据 1 数据 2 数据 n Visual FoxPro 程序设计 第 3 页 3 数据库系统 数据库管理阶段是 20 世纪 60 年代后期开始在文件管理基础上发展起来的 为 了实现计算机对数据的统一管理 达到数据共享的目的 发展了数据库技术 数据 库技术的主要目的是有效地管理和存取大量的数据资源 数据库管理系统 DataBase Management System DBMS 数据库管理系统利用 了操作系统提供的输入 输出控制和文件访问功能 VFP 就是一种在操作系统上运行就是一种在操作系统上运行 的数据库管理系统软件 的数据库管理系统软件 数据库技术使数据有了统一的结构 对所有的数据实行统一 集中 独立的管 理 以实现数据的共享 保证数据的完整性和安全性 提高了数据管理效率 数据 库也是以文件方式存储数据的 但它是数据的一种高级组织形式 在应用程序和数 据库之间 由数据库管理软件 DBMS 把所有应用程序中使用的相关数据汇集起来 按统一的数据模型 以记录为单位存储在数据库中 为各个应用程序提供方便 快 捷的查询 使用 4 分布式数据库 分布式数据库系统分类 物理上分布 逻辑上集中的分布数据库结构 物理上分布 逻辑上分布的结构 开放式数据库连接开放式数据库连接 ODBC Open DataBase Connectivity 是用与数据库服务器 的一种标准协议 使用 ODBC 可以从 Vfp 中访问 SQL Server 数据源 5 面向对象数据库系统 面向对象数据库系统 Object Oriented DataBase System OODBS 是将面向对 象的模型 方法和机制 与数据库技术有机地结合而形成的新型数据库系统 它从关系模型中脱离出来 强调在数据库框架中发展类型 数据抽象 继承和 持久性 它的基本设计思想是 一方面把面向对象语言向数据库方向扩展 使应用 程序能够存取并处理对象 另一方面扩展数据库系统 使其具有面向对象的特征 提供一种综合的语义数据建模概念集 以便对现实世界中复杂应用的实体和联系建 模 因此 面向对象数据库系统首先是一个数据库系统 具备数据库系统的基本功是一个数据库系统 具备数据库系统的基本功 能 其次是一个面向对象的系统 能 其次是一个面向对象的系统 针对面向对象的程序设计语言的永久性对象存储 应用程序 1 应用程序 2 应用程序 n 数据库管理系统 数据库 Visual FoxPro 程序设计 第 4 页 管理而设计的 充分支持完整的面向对象概念和机制 二 二 数据库系统数据库系统 1 基本概念 硬件 操作系 统 数据管理系统 数据管理应用系统 最终用户 开发人员 数据库管理人员 数据库数据库 DataBase DB 是指存储在计算机存储设备上结构化的相关数据结构化的相关数据集合 它 不仅包括描述事物的数据本身 而且还包括相关事物之间的联系 数据库应用系统数据库应用系统 数据库管理系统 数据库管理系统 DataBase Management System DBMS 是指负责数据库存取 维护 管理的系统软件 DBMS 提供对数据库中数据资源进行统一管理和控制的功能 将用户应用程序与数据库数据相互隔离 它是数据库系统的核心 其功能的强弱是衡量 数据库系统性能优劣的主要指标 DBMS 必须运行在相应的系统平台上 在操作系统和相关的系统软件支持下 才能 有效地运行 数据库系统数据库系统 以数据库为核心 并对其进行管理的计算机系统称为数据库系统 Data Base System 简称DBS 由计算机硬件 数据库管理系统 数据库 应用程序和用户等 部分组成 2 数据库系统特点 数据共享 减少数据冗余 统一的数据控制功能 具有较高的数据独立性和程序独立性 采用特定的数据模型 Visual FoxPro 程序设计 第 5 页 三 三 数据模型数据模型 1 实体的描述 实体实体 客观事物在信息世界中称为实体 Entity 它是现实世界中任何可区分 识 别的事物 实体可以是具体的人或物 也可以是抽象概念 属性属性 实体具有许多特性 实体所具有的特性称为属性 Attribute 一个实体可用 若干属性来刻画 实体型实体型 属性值的集合表示一个实体 而属性的集合表示一种实体的类型 称为实 体型 实体集实体集 同类型的实体的集合称为实体集 如一个班的学生 2 实体间的联系 一对一联系 一对多联系 多对多联系 3 数据模型简介 数据库中的数据是结构化的 即建立数据库就需要考虑如何去组织数据 如何表示 数据及数据之间的联系 并将它们合理地存放在计算机中 才能便于对其进行有效的处 理 数据模型 数据模型 就是描述数据及数据之间联系的结构形式 其研究的内容就是如何组织 数据库中的数据 1 1 层次数据模型 层次数据模型 HierarchicalHierarchical ModelModel 层次模型是用树型结构来表示实体类型以及实体间联系的模型 他能方便地表示 1 n 的联系 但难于表示两个以上的实体类型之间的复杂联系和实体类型之间的多对多 的联系 2 2 网状数据模型 网状数据模型 NetworkNetwork ModelModel 网状模型是用网状结构来表示实体类型以及实体间联系的模型 网中的每一个结点 表示一个实体 它能够表示实体间的多种复杂联系和实体类型之间的对对多的联系 但 在计算机上实现较为复杂 3 3 关系模型 关系模型 RelationalRelational ModelModel 关系模型是用二维表格结构来表示实体以及实体间联系的模型 关系是由若干个二 维表组成的集合 每个二维表又称为关系 Visual FoxPro 是一种典型的关系型数据库管 理系统 第二节第二节 关系型数据库关系型数据库 一 一 关系模型关系模型 Visual FoxPro 程序设计 第 6 页 1 关系术语 职工表 职工号姓名性别婚否政治面貌工作日期职称基本工资简历 1001李小明男F群众10 12 95助教700 00memo 1002李新男F团员7 12 94助教480 00memo 1003刘明明女F党员10 21 93助教482 90memo 1004张继业男T群众7 10 90讲师650 50memo 1005孙志男F群众8 18 96助教405 80memo 1006王伟华女T团员9 19 94助教469 99memo 1007谢家驹男T群众8 12 91讲师545 60memo 1008刘云女T群众10 29 90讲师600 80memo 字段名类型宽度DEC 职工号字符型4 姓名字符型8 性别字符型2 婚否逻辑型1 政治面貌字符型8 工作日期日期型8 职称字符型10 基本工资数值型72 简历备注型4 关系关系 是一张二维表 如这张表描述的是某学校职工的一些基本情况 那么 我们 就把这样的一张表 称为一个关系 以这样的二维表来实现数据存储的数据库 就是关 系型数据库 元组元组 记录 就是表中的一行 比如 这样的一行 就是一条元组 这个表 的内容有 9行 也就是说 这个数据库由 9条记录组成 每一个数据表 都是由若干条 这样的记录组成的 属性属性 字段 表中的每一列 都是一个属性 在字段的顶端 有一个对字段的说 明 这就是字段名 通过字段名 我们就能清楚各个字段在说明什么 域域 属性的取值范围 即不同元组对同一个属性的取值所限定的范围 关键字关键字 属性或属性的组合 其值能唯一标识一个元组 能唯一标识各记录 就是说该字段各记录的值 各不相同 比如 我们这个表中的 姓名字段 它的各条记录的值就不一样 在我们这个表中 有职工号 姓名和工作日期 这三个字段的值各不相同 也就是说 这三个字段 都可以作为我们这张表的关键字 但是 现在我们这张表很小 只有 9条记录 我们可以想象 当这个表很大的时候 姓 名 年龄和工作日期都有可能发生重复 只有职工号 每条记录均不相同 因此 我们 Visual FoxPro 程序设计 第 7 页 一般把代码字段作为关键字 候选关键字候选关键字 关系中能够成为关键字的属性或属性组合可能不是惟一的 凡在关系 中能够唯一区分 确定不同元组的属性或属性组合 称为候选关键字 主关键字主关键字 在候选关键字中选定一个作为关键字 称为该关系的主关键字 关系中 主关键字是唯一的 外部关键字外部关键字 关系中某个属性或属性组合并非关键字 但却是另一个关系的主关键 字 称此属性或属性组合为本关系的外部关键字 关系之间的联系是通过外部关键字实 现的 2 关系的特点 1 关系必须规范化 2 表中不允许有重复字段名 3 表中不允许有相同的记录内容 4 表中行 列次序无关 5 表中各列中的数据 类型必须相同 3 实际关系模型 二 二 关系运算关系运算 1 传统的集合运算 并 并 两个相同结构关系的并 是有属于这两个关系的元组 记录 组成的集合 差 差 关系 R 和关系 S 的差 是属于 R 而不属于 S 的元组组成的集合 从 R 中去掉 S 中也有的元组 交 交 关系 R 和关系 S 的交 既属于 R 又属于 S 的元组组成的集合 进行并 差 交集合运算的两个关系必须是具有相同的关系模式 即结构相同 进行并 差 交集合运算的两个关系必须是具有相同的关系模式 即结构相同 2 专门的关系运算 选择 选择 Selection 运算是从关系中查找符合指定条件元组的操作 对记录对记录 投影 投影 Projection 运算是从关系中选取若干个属性的操作 对字段对字段 联接 联接 Join 运算是将两个关系模式的若干属性拼接成一个新的关系模式的操作 对 应的新关系中 包含满足联接条件的所有元组 对字段对字段 自然联接自然联接 按照字段名对应相等为条件进行的联接操作称为等值联接 自然连接就 是去掉重复属性 字段 的等值联接 第三节第三节 数据库设计基础数据库设计基础 一 一 数据库设计步骤数据库设计步骤 1 设计原则 Visual FoxPro 程序设计 第 8 页 a 关系数据库的设计应尊从概念单一化 一事一地 的原则 一个表描述一个实体或实 体间的一种联系 b 避免在表之间出现重复字段 c 表的字段必须是原始数据和基本数据元素 d 用外部关键字保证有关联的表之间的联系 2 设计的步骤 二 二 数据库设计过程数据库设计过程 1 需求分析 2 确定所需要的表 3 确定所需要的字段 4 确定关系 5 设计求精 第四节第四节 Visual FoxPro 系统概述系统概述 历史沿革 Visual FoxPro 6 0 系统特点 Visual FoxPro 程序设计 第 9 页 第二章第二章 Visual FoxPro 系统初步系统初步 第一节第一节 Visual FoxPro 6 0 的安装与启动的安装与启动 一 一 安装安装 Visual FoxPro 6 0 Visual FoxPro 6 0 系统的正确安装 运行 必须具备相应的环境条件 其最低要求 一般应具备如下环境条件 1 配置 66MHz 主频 486 以上的 PC 机或兼容机 2 内存 16 MB 以上 推荐使用 24MB 内存 3 典型安装需要 85M 最大安装需要 90M 4 鼠标 VGA 或更高分辨率的显示器 5 中文 Windows 95 98 或 Windows NT 以上操作系统 二 二 启动启动 Visual FoxPro 6 0 第二节第二节 Visual FoxPro 6 0 的用户界面的用户界面 一 一 Visual FoxPro 的主界面的主界面 Visual FoxPro 6 0 启动后 主窗口包括 标题栏 菜单栏 常用工具栏 状态栏 命 令窗口和主窗口工作区几个组成部分 Visual FoxPro 程序设计 第 10 页 标题栏 菜单栏 常用工具栏 命令窗口 状态栏 工作区 二 二 Visual FoxPro 6 0 的操作方式的操作方式 Visual FoxPro 6 0 系统为用户提供了几种各具特点的操作方式 用户可根据情况以及 应用的需要 选择合适的操作方式 实现数据库的操作 应用 1 菜单操作方式 Visual FoxPro 6 0 系统将许多命令做成菜单命令选项 用户通过选择菜单项来使 用数据库的操作方式 在菜单方式中 很多操作是通过调用相关的向导 生成器 设计器工具 以直观 简便 可视化方式完成对系统的操作 用户不必熟悉命令的 细节和相应的语法规则 通过对话来完成操作 有了这种方式 一般用户无需编程 就可完成数据库的操作与管理 2 命令操作方式 命令操作是在命令窗口中逐条输入命令 直接操作指定对象的操作方式 命令 操作为用户提供了一个直接操作的手段 其优点是能够直接使用系统的各种命令和 函数 有效操纵数据库 但要求熟练掌握各种命令和函数的格式 功能 用法等细 节 3 程序操作方式 程序操作就是预先将实现某种操作处理的命令序列编成程序 通过运行程序来 实现操作 管理数据库的操作方式 根据实际应用需要编写的应用程序 能够为用 户提供界面更简洁直观 操作步骤更符合业务处理流程和规范要求的操作应用环境 但程序的编制 需要经过专门训练 只有具备一定设计能力的专业人员方能胜任 普通用户很难编写大型的 综合性较强的应用程序 Visual FoxPro 程序设计 第 11 页 三 三 工具栏的使用工具栏的使用 四 四 Visual FoxPro 的配置的配置 Visual FoxPro 6 0 系统的环境设置决定了系统的操作运行环境和工作方式 设置是否 合理 适当 直接影响系统的操作运行效率和操作的方便性 系统安装时按默认方式进 行了相应的设置 用户通过设置系统环境 可添加或删除 Visual FoxPro 6 0 的相关组件 也可对系统当前环境重新调整设置 添加或删除 Visual FoxPro 6 0 组件的操作 要通过系 统安装程序来实现 而当前环境的设置可通过相关命令和菜单操作方式来实现 下面简 要介绍以菜单方式设置系统环境的操作方法 环境设置包括主窗口标题 默认目录 项目 编辑器 调试器及表单工具选项 临时文 件存储 拖放字段对应的控件和其他选项等内容 选项 对话框或 SET 命令进行附加的配置设定 还可以通过配置文件进行设置 第三节第三节 项目管理器项目管理器 在 Visual FoxPro 系统中 使用项目组织 集成数据库应用系统中所有相关的文件 形成一个完整的应用系统 所谓项目是 Visual FoxPro 中相关数据 文档和各类文件 对 象的集合 也即项目是与一个应用有关的所有文件的集合 项目管理器是 Visual FoxPro 系统创建 管理项目的工具 用来创建 修改 组织项目中各种文件 对项目中程序进 行编译和连编 形成一个可以运行的应用程序系统 第四节第四节 向导 设计器和生成器向导 设计器和生成器 一 一 向导向导 Visual FoxPro 6 0 系统为用户提供了许多功能强大的向导 Wizards 用户可以在向 导程序的引导 帮助下 不用编程就能快速地建立良好的应用程序 完成许多数据库操 作 管理功能 为非专业用户提供了一种较为简便的操作使用方式 Visual FoxPro 6 0 系统提供的向导及其 功能 表向导 报表向导 一对多报表向导 标签向导 分组 总计报表向导 表单向导 一对多表单向导 查询向导 交叉表向导 本地视图向导 远程视图向导 导入向导 文档向导 图表向导 应用程序向导 SQL 升迁向导 数据透视表向导 安装向导 Visual FoxPro 程序设计 第 12 页 二 二 生成器生成器 Visual FoxPro 6 0 系统提供了若干个生成器 Builders 用以简化创建 修改用户界 面程序的设计过程 提高软件开发的质量和效率 每个生成器包含若干个选项卡 允许 用户访问并设置所选择对象的相关属性 用户可将生成器生成的用户界面直接转换成程 序编码 使用户从逐条编写程序代码 反复调试程序的手工作业中解放出来 Visual FoxPro 6 0 提供的生成器及 功能 自动格式化生成器 组合框生成器 命令组生成器 编辑框生成器 表达式生成器 表单生成器 网格生成器 列表框生成器 选项组生成器 文本框生成器 参照完整性生成器 三 三 设计器设计器 Visual FoxPro 6 0 提供的一系列设计器 Designers 为用户提供了一个友好的图形 界面操作环境 用以创建 定制 编辑数据库结构 表结构 报表格式 应用程序组件 等 Visual FoxPro 6 0 提供的设计器及其 功能 表设计器 查询设计器 视图设计器 表单设计器 报表设计器 标签设计器 数据库设计器 数据库设计器 连接设计器 菜单设计器 数据环境设计器 Visual FoxPro 程序设计 第 13 页 第三章第三章 数据和数据操作数据和数据操作 第一节第一节 常量和变量常量和变量 一 一 常量常量 常量是在命令或程序中可直接引用 具有具体值的命名数据项 其特征是在整个操作过程 中它的值和表现形式保持不变 1 数值型常量 Numeric N 由数字 0 9 小数点和正负号组成 表示整数或实数值 数值型数据在内存中占用 8 个字 节 如 100 21 15 31 5 878e12 2 货币型常量 Currency 用来表示货币值 书写格式与数据型常量类似 但要多加一个 前置符号 且采用四位小 数 他没有科学记数法 在内存中占 个字节 3 字符型常量 Character C 由任意ASCII字符 汉字和各种字符组成的字符型数据 字符型常量又称为字符串 最多 可有254个字符 为与其他类型相区别 要求将字符串中所有字符 且使用时必须用定界符 括起来 如 I am a student 中华人民共和国 Visual FoxPro 6 0 系统 都是字符串 4 逻辑型常量 Logical L 表示逻辑判断结果 真 或 假 的逻辑值 逻辑常量只有 真 和 假 两种值 分别 用 t 或 y 和 f 或 n 表示 在表示逻辑常量的字母左右加注圆点符 以示区别 在内 存中占用一个字节 5 日期型常量 Date D 日期型常量是表示日期值的数据 使用时必须用定界符 括起来 有效的日期型数据分 隔符为 连字符 正斜杠 句点 和空格 传统的日期格式传统的日期格式 其默认格式是 mm dd yy yy 如 10 01 02 和 10 01 2002 均表示 2002 年 10 月 1 日这一日期常量值 日期值的输入格式与输出格式并不完全相同 特别是输出格式受系统环境设置的影响 用 户可根据应用需要进行相应调整 设置 严格的日期格式严格的日期格式 不论哪种设置 按严格日期格式表示的日期型数据 都具有相同的值和表示形式 严格的 日期格式是 Visual FoxPro 程序设计 第 14 页 yyyy mm dd 符号表明该格式是严格的日期格式 并按照 YMD 的格式解释日期型和日期时间型数 据 它是严格日期格式的标志 不可缺少 如 2002 10 01 SET STRICTDATE TO 0 1 2 命令 功能 0 关闭严格的日期格式检测 即设置日期格式按传统的格式 1 设置严格的日期格式检测 默认值 要求所有日期型值按严格的格式 2 设置与 1 相同 但如果程序代码中出现 CTOD 和 CTOT 函数时 会出现编译错误 省略 恢复系统默认值 等价于 1 的设置 日期格式中的分隔符号日期格式中的分隔符号 命令 格式 SET Mark to 日期分隔符日期分隔符 命令 功能 TO 日期分隔符 采用指定字符作为日期分隔符 省略 恢复系统默认值 等价于 的设置 日期格式中的世纪值日期格式中的世纪值 通常日期格式中用 2 位数表示年份 但涉及到世纪问题就不便区分 命令 格式 SET CENTURY ON OFF TO nCentury 命令 功能 ON 日期数据显示 10 位 其中年份 4 位 即日期值输出时显示年份值 OFF 默认值 日期数据显示 8 位 年份 2 位 即日期值输出时不显示年份值 TO nCentury 指定日期数据所对应的世纪值 nCentury 是一个 1 99 的整数 代表世纪 数 设置日期显示格式设置日期显示格式 用户可以调整 设置日期值和时间值的显示输出格式 命令 格式 SET DATE TO AMERICAN ANSI BRITISH FRENCH GERMAN ITLIAN JAPAN USA MDY DMY YMD SHORT LONG 命令 功能 设置日期型数据的显示输出格式 系统默认为 AMERICAN 美国格式 如果日期格式设置为 SHORT 或 LONG 格式 Visual FoxPro 系统将按 Windows 系统设置 的短日期格式或长日期格式显示输出日期数据 而且 SET CENTURY 命令的设置被忽略 设置值日期格式设置值日期格式 Visual FoxPro 程序设计 第 15 页 AMERICAN mm dd yy USAmm dd yy ANSIyy mm ddMDY mm dd yy BRITISH FRENCH dd mm yyDMY dd mm yy GERMAN dd mm yy YMD yy mm dd ITALIAN dd mm yySHORTWindows 短日期格式 JAPAN yy mm ddLONGWindows 长日期格式 6 日期时间型常量 DateTime T 表示日期和时间值的日期时间型常量 其默认格式是 mm dd yy yy hh mm ss a p 其中 a 和 p 分别表示 AM 上午 和 PM 下午 二 二 变量变量 变量是在操作过程中可以改变其取值或数据类型的数据项 变量分为字段变量和内存变量 2 类 确定一个变量 需要确定其三个要素 变量名 数据类型和变量值 1 命名约定 在 Visual FoxPro 系统中 将表示 存储数据的常量 变量 数组 字段 记录 对象 表 数据库等 都称之为数据容器 所有数据容器均需命名以相互区别 为规范各类对象的命 名 Visual FoxPro 系统推荐了若干 命名约定 供用户参考 以提高操作命令与程序的可读性和 规范性 使用字母 下划线和数字命名 一般建议不采用汉字命名 命名以字母或下划线开头 除自由表中字段名 索引的 TAG 标识名最多只能 10 个字 符外 其他的命名可使用 1 128 个字符 避免使用 Visual FoxPro 的保留字 文件名的命名应遵循操作系统的约定 2 字段变量 表由若干记录构成 每个记录都包含若干个数量相同的字段 同一字段在不同记录中分别 对应不同的字段值 因此 字段也是变量 与其他变量不同的是 字段变量是定义在表中的变量 随表的存取而存取 因而是永久性 变量 字段名就是变量名 变量的数据类型为 Visual FoxPro 中任意数据类型 字段值就是变 量值 3 内存变量 内存变量是在内存中定义的 一种单个数据元素的临时性变量 1 内存变量的数据类型 内存变量的数据类型包括 数值型 字符型 逻辑型 日期型和日期时间型 2 内存变量的建立 建立内存变量就是给内存变量赋值 内存变量的赋值既可定义一个新的内存变量 也 Visual FoxPro 程序设计 第 16 页 可改变已有内存变量的值或数据类型 命令 格式 STORE TO 命令 功能 计算的值并赋值给各个内存变量 命令 功能 计算的值并赋值给指定内存变量 3 内存变量的显示输出 可以用两个命令在屏幕上显示输出内存变量的值 命令 格式 AT 命令 功能 计算表达式表中各表达式的值 并在屏幕上指定位置显示输出各式的值 先回车换行 再计算并输出表达式的值 在屏幕上当前位置 计算并直接输出表达式的值 多个逗号两两分隔的表达式 各表达式的值输出时 以空格分隔 AT 子句 指定表达式值从指定列开始显示输出 4 变量的显示 用 命令可以分别显示单个或一组变量的值 有时用户还需了解变量其他相关 信息 如数据类型 作用范围 或了解系统变量的信息 Visual FoxPro 系统提供了相应 操作命令 命令格式 DISPLAY LIST MEMORY LIKE TO PRINTER TO FILE 命令 功能 显示指定变量的信息 5 变量的清除 格式一 RELEASE 格式二 RELEASE ALL LIKE EXCEPT 格式三 CLEAR MEMORY 格式四 CLEAR ALL 4 数组 数组是按一定顺序排列的一组内存变量 数组中的各个变量称为数组元素 数组元素用数 组名以及该元素在数组中排列位置的下标一起表示 数组元素中下标的个数称为数组的维数 FoxPro 中只能使用一维和二维数组 而且使用前必须先声明 1 数组元素 数组中各有序变量 数据元素 组成数组的成员 称为数组元素 数组元素实质 上是一个内存变量 它们具有相同变量名即数组名 彼此以下标区分 数组元素的名称 变量名 用数组加下标构成 如 AA 1 BB 2 3 分别表 示一维数组 AA 的第 1 个元素 二维数组 BB 中第 2 行第 3 列的元素 下标必须用圆括号对括 一维数组的元素只有一个下标 二维数组的元素有两个 Visual FoxPro 程序设计 第 17 页 以逗号分隔的下标 下标必须是非负数值 可以是常量 变量 函数或表达式 下标值会自动取整 如 AA 1 5 AA nA1 AA 2 10 3 等 数组元素的数据类型决定于最后赋值的数据类型 不同数组元素的数据类型可以 不同 数组元素与普通内存变量一样操作 可以赋值和引用 2 数组的定义 数组必须先定义后使用 定义数组是向系统申请数组元素在内存中的存储空间 命令 格式 DIMENSION DECLARE 3 数组的赋值与引用 数组元素的赋值与引用 与普通内存变量的规则相同 数组元素的初值为 F 省略下标 则对数组中所有元素赋同样的值 4 一维数组和二维数组的关系 定义一维数组后 可以用二维数组的形式来引用 但不能用二维数组的形式给一维数 组赋值 定义二维数组后 可以用一维数组的形式来引用和赋值 但要注意下标的转换 第二节第二节 表达式表达式 表达式表达式 是由常量 变量和函数通过特定的运算符连接起来的式子 运算符运算符 是对数据对象进行加工处理的符号 根据其处理数据对象的数据类型 运算符分 为算术 数值 运算符 字符运算符 日期时间运算符 逻辑运算符和关系运算符五类 相应 的 表达式也分为算术表达式 字符表达式 日期时间表达式 逻辑表达式和关系表达式五类 一般运算符两侧的数据对象 必须具有相同数据类型 否则运算将会出错 一 一 算术表达式算术表达式 算术表达式又称数值表达式 其运算对象和运算结果均为数值型数据 Visual FoxPro 程序设计 第 18 页 运算符类别运算符类别符号符号说明说明优先优先 圆括号 正 负号 或 乘方 乘 除 求余 算术运算符 加减 高 低 二 二 字符表达式字符表达式 字符表达式是由字符运算符将字符型数据对象连接起来进行运算的式子 运算符类别运算符类别符号符号说明说明优先优先 连接 串1 串2 两串顺序相连接 字串运算符 部分连接 串1 串2 串1尾空格移到 串2尾 再顺序相连接 优先级相同 三 三 日期表达式日期表达式 由日期运算符将一个日期型或日期时间型数据与一个数值型数据连接而成的运算式称为日 期表达式 日期运算符分为 和 两种 其作用分别是在日期数据上增加或减少一个 天数 在日期时间数据上增加或减少一个秒数 两个运算的优先级别相同 运算符类别运算符类别符号符号说明说明优先优先 增加天数或秒数 日期运算符 减少天数或秒数 优先级相同 四 四 关系表达式关系表达式 由关系运算符连接两个同类数据对象进行关系比较的运算式称为关系表达式 关系表达式 的值为逻辑值 关系表达式成立则其值为 真 否则为 假 Visual FoxPro 程序设计 第 19 页 运算符类别运算符类别符号符号说明说明优先优先 大于 小于 等于 不等于 大于等于 包含于 关系运算符 字符全同比较 优先级相同 1 数值型和货币型数据 按数值的大小比较 2 日期和日期时间型数据 按日期和时间的先后比较 3 逻辑型数据 T F 4 字符串包含测试 运算 实质上是比较两个串的包含关系 其作用是比较 判断串 1 是否为串 2 的子串 如果串 1 是串 2 的子串 运算结果为 真 否则为 假 所谓子串 如果串 1 中所有字符均包 含在串 2 中 且与串 1 中排列方式与顺序完全一致 则称串 1 为串 2 的子串 5 字符串比较 相等比较 用运算符 进行两串比较时 或者到达右端串的末尾字符为止 当 SET EXACT OFF 时 当 SET EXACT ON 时 在较短的一个的右边加上空格 以使它与较长表达式的长度相匹 配 再比较 恒同比较 用运算符 进行两串的恒同比较时 不论 SET EXACT 的设置如何 只有 当两串长度相同 字符相同 排列一致时才成立 比较比较 EXACT OFF EXACT ON abc abc 匹配匹配匹配 ab abc 不匹配不匹配不匹配 abc ab 匹配不匹配不匹配 abc ab 不匹配不匹配不匹配 ab ab 不匹配匹配不匹配 ab ab 匹配匹配不匹配 ab 不匹配不匹配不匹配 ab 匹配不匹配不匹配 ab 匹配匹配不匹配 ab 不匹配匹配不匹配 Trim ab ab 匹配匹配匹配 ab Trim ab 匹配匹配匹配 Visual FoxPro 程序设计 第 20 页 6 字符排序次序 SET COLLATE TO 排序次序名排序次序名 次序名可以是 Machine PinYin Stroke 五 五 逻辑表达式逻辑表达式 由逻辑运算将逻辑型数据对象连接而成的式子称为逻辑表达式 运算对象与运算结果均为 逻辑型数据 运算符类别符号说明优先 括号 NOT 非 AND 与 逻辑运算符 OR 或 高 低 逻辑运算真值表 ABA AND BA OR B NOT A T T T T F T F F T F F T F T T F F F F T 六 六 运算符优先级运算符优先级 不同的运算顺序可能得出不同结果各类运算的优先顺序如下 圆括号圆括号 算术 日期运算和字符串运算算术 日期运算和字符串运算 关系运算关系运算 逻辑运算逻辑运算 同一类运算符也有一定的运算优先顺序 这在各类表达式中分别介绍 如果多个同一级别 的运算 则按在表达式中出现的先后顺序进行运算 第三节第三节 函数函数 函数其实就是预先编好的具有某种操作功能的程序 调用函数调用函数 格式格式 参数表参数表 使用函数时应注意以下几点 1 每一个函数必然有一个具有确定数据类型的返回值 2 函数可以和其他数据进行操作运算 Visual FoxPro 程序设计 第 21 页 3 函数所要求的参数也有一定的数据类型 参数类型不匹配时 将会出现语法错误 FoxPro 提供的标准函数用于实现某种功能或完成某种运算 按函数运算 处理对象和结 果的数据类型 可分为数值型函数 字符型函数 逻辑型函数 日期时间型函数 数据转换函 数等 一 一 数值函数数值函数 数值函数用于数值运算 其自变量与函数都是数值型数据 1 求绝对值函数 ABS 格式 ABS 功能 返回的绝对值 2 求符号函数 SIGN 格式 SIGN 功能 返回的符号 3 求平方根 SQRT 格式 SQRT 功能 返回的平方根 注意 的值必须为正数或零 4 求符号函数 PI 格式 PI 功能 返回常量 的近似值 5 取整函数 INT 格式 INT 功能 返回的整数部分 以截取方式 6 上界函数CEILING 格式 CEILING 功能 计算nExp 的值 返回一个大于或等于该值的最小整数 7 下界函数FLOOR 格式 FLOOR 功能 计算nExp 的值 返回一个小于或等于该值的最大整数 8 求四舍五入函数 ROUND 格式 ROUND 功能 返回按所指定的保留小数位数进行四舍五入的值 若的值为负 则返回一个小数点左边为绝对值个数零的整数 值 9 求余函数 MOD 格式 MOD 功能 返回除以的余数 余数的小数位数与余数的小数位数与nExp1nExp1相同 余数的符号与相同 余数的符号与nExp2nExp2相同 相同 10 最大值函数MAX 和最小值函数MIN Visual FoxPro 程序设计 第 22 页 格式 MAX MIN 功能 返回数值表达式中的最大值MAX 和最小值MIN 二 二 字符函数字符函数 1 测试字符串长度函数 LEN 格式 LEN 功能 返回值的字符个数 可以是一个字符串 备注字段或 字符类型字段 若为一空字符串 则返回数值零 2 大小写转换函数LOWER 和UPPER 格式 LOWER UPPER 功能 LOWER 将cExp串中字母全部变成小写字母 UPPER 将cExp串中字母全部变成大写字母 其它字符不变 3 空格函数SPACE 格式 SPACE 功能 返回一个包含nExp 个空格的字符串 4 删除字符串空格函数 1 删除字符串前置空格及尾部空格函数 ALLTRIM 格式 ALLTRIM 功能 返回删除了的前置空格及尾部空格的字符串 2 删除字符串前置空格函数 LTRIM 格式 LTRIM 功能 返回删除了的前置空格的字符串 3 删除字符串尾部空格函数 RTRIM TRIM 格式 RTRIM TRIM 功能 返回删除了的尾部空格的字符串 5 取左子串函数LEFT 格式 LEFT 功能 返回从cExp串中第一个字符开始 截取nExp个字符的子串 6 取右子串函数RIGHT 格式 RIGHT 功能 返回从cExp串中右边第一个字符开始 截取nExp个字符的子串 7 截子串函数 SUBSTR 格式 SUBSTR 功能 返回中 从值开始 由值指定个数的 字符串 Visual FoxPro 程序设计 第 23 页 如果无选项 则从值位置开始直到值尾部 8 计算子串出现次数函数 格式 OCCURS 功能 返回在中 出现的次数 9 子串位置函数 格式 AT ATC 功能 返回串cExp1在串cExp2中的起始位置 函数值为整数 如果串cExp2不包含串 cExp1 函数返回值为零 ATC 在比较时不区分字母大小写 表示找第几次出现的位置 10 字符串替换函数STUFF 格式 STUFF 功能 从nExp1指定位置开始 用cExp2串替换 cExp1串中nExp2个字符 11 字符替换函数 格式 CHRTRAN 功能 若在中 把中的字符 用中的对应 字符替换 若中的字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 免疫学检验复习题选择题
- BIM工程师考试真题及详解7辑
- 2025年河南继续教育公需科目考前练习题及答案
- (完整)上海市计算机一级考试-(题目+答案)
- 下半年安徽省合肥市巢湖市事业单位招聘考试真题及答案
- 2025年导游资格证导游业务真题及答案
- 一级建造师资格考试题库含答案(完整版)
- 中医执业医师资格考试统考题库(含答案)
- 《个人团队管理》-模拟试题答案
- 3《计算机网络》试卷
- 天津高考英语词汇3500
- GB/T 41247-2023电子商务直播售货质量管理规范
- GilAir-Plus高低流量空气采样泵操作规程和维护程序
- 外籍人员基本情况登记表
- 水尺计重的资料
- 培训2.0材料mncrm pcmtpm财务部分
- SB/T 11016-2013足部保健按摩服务规范
- GB/T 4062-2013三氧化二锑
- 科学出版社专著编写要求
- 江苏省南通市通州区川姜镇公开招考4名人力资源和社会保障基层公共服务平台工作人员【共500题附答案解析】模拟试卷
- 六年级上册数学课件-百分数和分数的相互改写 苏教版 (共19张PPT)
评论
0/150
提交评论