1、全国计算机等级考试二级教程 Visual Foxpro 6.0 程序设计,编写:教育部考试中心 讲授:叶茂功,第一章 Visual FoxPro基础,第三章 数据与数据运算,第五章 关系数据库标准语言SQL,第七章 程序设计基础,第九章 菜单设计与应用(略),第二章 VFP6.0 系统初步,第四章 数据库及其操作,第六章 查询与视图,第八章 表单设计与应用,第十章 报表设计(略),返 回,目 录,第十一章 开发应用程序(略),第十二章 上机指导(略),第一章 Visual FoxPro 基础,Visual FoxPro(简称VFP或VF) 是一个采用可视的、面向对象的程序设计方法的关系型数据库
2、管理系统。是唯一一个与历史上的数据库完全兼容的优秀系统。它具有简单易学、灵活方便、结构紧凑等优点。是当今流行的数据库管理系统之一。,1.1 数据库基础知识,1.1.1 计算机数据管理的发展,1、数据与数据处理 数据存储在某媒体上能够识别的物理符号。 数据的概念包括两个方面:其一是数据内容;其二是数据形式。内容不变,形式可以多样,如日期表示。数据的范围在不断拓展,现已包括数值、字串、图、声等。 数据处理将数据转换成信息的过程。信息是数据处理的结果。数据、信息是相对的,例如年龄即可是数据,又可以是信息,因此有时有人把“处理数据得出信息”说成“信息处理”。,1/17,、计算机数据管理,2/17,1.
3、1.2 数据库系统 1.有关数据库的概念,数据库 数据库是存储在计算机存储设备上,结构化的相关数据集合。它包括数据和数据间的联系,往往被多个用户、多个应用程序所共享。 数据库应用系统 数据库应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。 它是以数据库为基础和核心的计算机应用系统。 例如:财务管理系统、图书管理系统、教学管理系统等等。,数据库管理系统,数据库管理系统(DBMS)是对数据库的建立、使用和维护进行专门管理的软件系统。,数据库系统,数据库系统是指引进数据库技术后的计算机系统。它由五部分组成,各层次间的关系如右图所示:,硬件系统,操作系统,数据库
4、管理系统,数据库应用系统,开发人员,最终用户,数据库管理员,3/17,2.数据库系统的特点,实现数据共享,减少数据冗余 建立数据库时,从全局出发确定数据库结构,充分发挥数据共享的优势,最大限度地减少数据冗余。 采用特定的数据模型 库管理系统不同,数据模型就不同,库的结构也就不同。 具有较高的数据独立性 系统实现了应用程序对总体逻辑结构、物理存储结构之间较高的独立性。用户只用操作应用程序,无需考虑逻辑结构和数据存储位置。 有统一的数据控制功能 系统提供必要的保护措施,有并发访问控制功能、安全控制功能、和数据完整性控制功能。保证数据库可以被多个用户或应用程序共享,允许多个用户同时使用同一个数据库。
5、,4/17,1.1.3 数据模型,1.实体的描述 实体 客观存在并且可以相互区别的事物称为实体。可以是实际事物,如职工、图书或抽象事件,如退休、借书等。 实体的属性 描述实体的特性称为属性。例如职工属性可有:职工号、姓名、性别、出生年月等。图书属性可有:总编号、分类号、书名、作者、单价、出版社等。借书属性可有:图书编号、借阅人、借阅时间、归还时间等。,实体型和实体集,一个实体可用属性值的集合表示,而属性的集合则表示一种实体的类型,简称实体型。同类型实体的集合,称为实体集。 例如:(姓名,性别,职称,执教科目)表示教师类型;(华罗庚,男,教授,数学)表示一个教师;多个教师的集合就是教师实体集。
6、实体集的表示 在VFP中,用“表”来存放实体集,用“字段”表示实体的属性。字段值的集合组成表的一条记录,代表一个实体。所有记录就是实体集。,5/17,2.实体间的联系及联系的种类,一对一联系(one-to one relationship) 主表中的一条记录只与从表中的一条记录相关联,并且主表的记录不同,对应的从表中的记录也不同。 例如,同一单位的人事表的记录就与工资表的记录存在一对一的联系。这联系是靠职工号相同为依据的。 一对多联系(one-to-many relationship) 主表中的一条记录与从表中的多条记录相关联,且从表中的每条记录只能与主表中的一条记录相对应。 是最普遍的联系,
7、如一部门有多个职工,每个职工只能属于一个部门等。 多对多联系(many-to-many relationship) 主表中的一条记录与从表中的多条记录相关联,且从表中的每条记录也与主表中的多条记录相对应。 例如一个老师有多个学生,反之每一个学生也有多个老师。,6/17,学生名,教研室,3.数据模型简介,层次数据模型 用树形结构表示实体及实体间联系的模型称为层次模型。 用层次模型建立的数据库是层次数据库。它反映实体间的一对多联系,不能直接表示多对多的联系,不便于扩充和修改。,系名,地址,电话,教研室名电话,教师名住处,教师名住处,教研室名,电话,教师名,住处,学生名,成绩,成绩,网状模型 用网状
8、结构表示实体及实体间联系的模型称为网状模型。 用这种模型建立的数据库是网状数据库。网状数据库难以实现数据的修改和扩充。,专业系,课程,学生,教师,任课,选课,关系数据模型 用二维表结构来表示实体及实体间的联系的模型称为关系模型。 操作的对象和结果都是二维表。它描述一致、模型单一、理论完备、易学易用,因此应用广泛。新推出的数据库系统几乎都是关系型的。,7/17,1.2关系数据库 1.2.1 关系模型 (1).关系术语,对关系的描述称为关系模式,一个关系模式对应一个关系的结构。 其格式为: 关系名(属性名1,属性名2,属性名n) 在VFP中表示为表结构: 表名(字段名1,字段名2,字段名n),一个
9、关系就是一张二维表,每个关系有一个关系名,在VFP中,一个关系存储为一个文件,文件的扩展名为“.DBF”,称为“表”。,关系模式,关系,元组,二维表中(水平方向)的一行是一个元组。 元组对应一个具体的记录。一个表中若包含多条记录,也可以说这个关系中包含多个元组。,属性,二维表中垂直方向的列称为属性,列名即属性名。在VFP中表示为“字段名” 。 用实体属性描述实体,用字段名及其类型组成VFP表的结构。,8/17,域,域是属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如:性别只能从“男”、“女”中取其一。,关键字,能够(唯一地)标识一个元组的属性或属性的组合。 在VFP中,关键字表示
10、为字段或字段的组合。,外部关键字,如果表中的一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,则这个字段(属性)就称为外部关键字。,(2).关系的特点,关系必须规范化,表中不能再含表. 同一关系中不能出现相同属性名. 关系中不允许有完全相同的元组. 一个关系中元组的次序无关紧要. 一个关系中属性的次序无关紧要.,(3).实际关系模型,例1.1部门职工工资关系模型,9/17,1.2.2关系运算,R,R,S,S,S,R,11/17,1.传统的集合运算 设有两个相同结构的关系R、S,例如R是参加计算机小组的集合,S是参加桥牌小组的集合。并 并是由属于这两个关系的元组组成的集
11、合. R 并 S就是参加计算机小组或参加桥牌小组的集合。 差 差是由属于R但不属于S的元组组成的集合,即是从R中去掉S中也有的元组。R 差 S就是参加计算机小组而又没有参加桥牌小组的集合。交 交是由既属于R又属于S的元组组成的集合。即交的结果是R和S的共同元组。R 交 S就是既参加计算机小组又参加桥牌小组的集合。,2.专门的关系运算,选择 从关系中找出满足给定条件的元组。 是从行中进行选择的运算,其关系模式不变。选择的元组是原关系的一个子集。,部门号=“d01”,投影,从关系模式中指定若干个属性。 投影是从列中进行选择的运算。提供了垂直调整关系的手段。,职工号、姓名,12/17,联接,联接是关
12、系的横向结合。联接运算将两个关系模式拚接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。 联接是通过联接条件来控制的,联接条件中将出现两个表中的公共属性名,或具有相同语义可比的属性。联接结果是满足条件的所有记录。,自然联接,在联接运算中,按照字段值相等为条件进行的联接操作称为等值联接。自然联接是去掉重复属性的等值联接。,不投影,等值联接,重复字段,13/17,1.3数据库设计基础 1.3.1数据库设计步骤 1.设计原则,一个表描述一个实体或实体间的一种联系。避免大而杂的表,首先分离需要作为单个主题而独立保存的信息,将不同信息分散在不同表中。,尽量避免在表之间出现重复字段,除了保证表
13、中有反映与其它表之间存在联系的外部关键字之外,尽量避免在表之間出現重復字段。例如在课程表中如有课程名字段,在选课表中就不应再有。,表中字段必须是原始数据或基本数据元素,表中不应包括通过计算可以得到的“二次数据”或多项数据的组合。 例如在职工表中,如果有了身份证号字段,就不应再有年龄和出生年月字段。,用外部关键字保证表间联系,表间关联依靠外部关键字维系,使得表具有合理结构,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系。,遵从概念单一化“一事一地”原则,14/17,15/17,1.3.2数据库设计过程 (1)需求分析,需求分析;确定表;定字段;定联系;求精。,信息需求。数据、类型、
14、域 处理需求。功能、方式、场合 安全性和完整性要求。 多交流、多收集、耐心、细致,弄清业务流程、瓶颈问题,收集报表、合同、档案、单据、计划等等,2.设计步骤,(2)确定需要的表,是数据库设计中技巧性最强的一步,因为用户的需求往往不能直接成为设计数据库的线索,还需要认真分析、抽象、挖出本质特性,才能确定需要的表。,(3)确定所需字段,(4)确定联系,一对多联系 。 “一方”的主关键字段应在“多方”的表中。 多对多联系。创建含有两个表的主关键字的“纽带表”,改多对多联系为两个一对多联系。 参见图书读者关系 一对一联系。考虑合并。,(5)设计求精,根据用户意见反复修改和调整,每字段直接和实体相关。
15、以最小逻辑单位存储信息。 表中字段必须是原始数据。 确定主关键字字段。,例1.2 图书读者借阅关系模型,10/17,1993,1994 Ms FoxPro 2.5b,2.6 Windows 16位微机,1992 Fox-MS FoxPro 2.0,2.5 Dos 16位微机,1987 Ashton-tate dbase Dos 16位微机,1984,1985 Ashton-tate dbase,+ Dos 16位微机,1998 Ms VFP 6.0 Windows 32位微机,1995.12 Ms VFP 5.0 Windows 32位微机,1995.6 Ms VFP 3.0 Windows
16、32位微机,1.4Visual FoxPro系统概述,Visual FoxPro 6.0(中文版)是Microsoft公司1998年发布的可视化编程语言集成包Visual Stadio中的一员。是可运行于Windows 95/98/2000、Windows NT平台的32位功能强大的面向对象的微机数据库开发系统。,1.4.1历史沿革,Dbase,70年代末 Ashton-tate dbase Dos 8位微机,1987 Fox Foxbase+1.0 2.1 Dos 16位微机,1989 Fox FoxPro 1.0 Dos 16位微机,Foxbase,FoxPro,VFP,16/17,1.4
17、.2VFP 6.0的特点 1.增强的项目及数据库管理,借助项目管理器可创建和集中管理应用程序中的任何元素;可访问所有向导、生成器、工具。使用快速选取记录集的技术。允许多个用户同时创建或修改。,2. 开发的生产率高,注重历史延续性,使过去用DBASE、Foxbase、FoxPro编写的程序不加或稍加修改即可使用。 提供了各种工具、向导和技术,许多功能不用编程即可自动生成。,3.互操作性和支持Internet,支持具有对象的链接与嵌入(OLE)拖放,可以在VF 6.0 和其他应用程序之间以及在VF内部移动数据。容易创建与Internet或其它基于Windows应用程序一起使用的应用程序。,4.充分
18、利用已有数据,提供了转换器工具,可将VFP 3.0 、VFP 5.0的各种文件转换为VFP 6.0文件。xBASE、FoxPro、VB、Excel 、Word、文本数据等都可共享。,17/17,第二章 VFP系统初步 2.1 VFP 6.0的安装与启动 2.1.1 基本配置要求:,处理器:486DX/66 MHz以上;内存:16MB以上;硬盘空间:典型85, 最大90MB;有鼠标、光驱、VGA以上彩显;操作系统:Windows 95/98以上。,将VFP系统光盘插入光驱。 打开光盘,双击setup.exe文件。 按向导提示,单击“下一步”。 选择“接受协议”,单击“下一步”。 键入产品ID和用
19、户信息,击“下一步”。 选择公用文件夹位置,按“典型安装”或“自定义安装”,直至安装结束。,2.1.2 安装VFP 6.0 1.安装VFP系统的步骤:,1/17,安装示例 VF系统安装后,自动启动MSDN安装向导,只需插入MSDN光盘,击“下一步”,选“自定义”,选“VFP产品示例”,直至安装完毕。 MSDN是一种订阅形式的一年四期的光盘资料库,分开发版、专业版、宇宙版三个级别。Visual Studio企业版包括:VB、VC+、VJ+、VID、VFP及VSS。 安装联机文档 Visual FoxPro 6.0联机文档也需要使用“MSDN安装向导”进行安装。先选取“自定义”选项,然后选择“Vi
20、sual FoxPro 6.0文档”复选框,按提示操作即可。,2.安装示例和联机文档,3.安装后自定义系统,打开“控制面板”,双击“添加/删除程序”图标,出现属性对话框;选中“Visual FoxPro6.0”,单击“添加/删除”钮,出现安装维护对话框;单击“添加/删除”钮,出现“VFP自定义安装”对话框;根据需要选择或清除对话框组件前的复选框,单击“继续”,直至结束。,2/17,2.1.3 启动与退出VFP 6.0,击“开始”,选“程序” MS Visual FoxPro 6.0MS Visual FoxPro 6.0单击。 第一次启动时,将弹出“欢迎使用”屏,单击“关闭此屏” ,则进入主界
21、面。 选中“以后不再显示此屏”后,再单击“关闭此屏”,则以后就直接进入主界面。,单击标题栏的“关闭窗”。 从“文件” 菜单中选“退出” 击左上方狐狸图标,从下拉菜单中选“关闭”或按Alt+F4。 在命令窗口中键入quit,回车,2.退出系统,1.启动系统,2.2 VFP的用户界面 2.2.1 VFP的主界面,在命令窗中键入各命令,回车。已执行命令在窗口中保留,需再执行时,将光标移至该行,回车即可。 开闭命令窗口方法:击“窗口”“命令窗口”打开;击关闭窗关闭。击工具按钮 按下打开;弹起关闭。按Ctrl+F2打开;按Ctrl+F4关闭。,1. VFP的三种工作方式,利用菜单或工具栏按钮。 在命令窗
22、口中输入命令。 用生成器产生或自编程序。 前两种属于交互式,后一种为自动化工作方式。,2.菜单操作,鼠标操作:单击菜单项,从下拉菜单中选择。 键盘操作:Alt+热键(带下划线的字母键)。 光标操作:选子菜单时,按光标(箭头)键移动光带到所需菜单选项,回车。,3. 命令操作,4. 项目管理器窗口,项目管理器是各种数据和对象的主要组织工具。采用分类管理,是同一项目各文件的集合,是系统的控制中心。 其文件以.pjx和.pjt保存。,4/17,2.2.2 工具栏的使用,默认界面仅包括“常用”和“表单设计器”工具栏,显示在菜单栏下面,用户可以将其拖放到任意位置。此外,还提供了其他9个工具栏,它们是:报表
23、控件、报表设计器、表单控件、布局、查询设计器、打印预览、调色板、视图设计器、数据库设计器。,1. 显示或隐藏工具栏,工具栏会随文件的开关而自动开关,也可在任何时候开关任何工具栏。方法是,击“显示”菜单,从下拉菜单中选“工具栏”,在弹出的对话框中选择后,击“确定”钮即可。 也可在任何一个工具栏的空白处右击,打开工具栏快捷菜单,从中选择开闭项或打开工具栏对话框。,5/17,2. 定制工具栏,用户创建自己的工具栏或修改现有的工具栏统称为定制工具栏。创建步骤是: 击“显示”菜单,选“工具栏” 。 单击“新建”按钮,弹出“新工具栏”对话框。 键入工具栏名称,例如“new”,击“确定” 。 选“定制工具栏
24、”对话框左侧“分类”中之一。 根据需要选右侧按钮,拖到“new”工具栏中。 单击“定制工具栏”对话框上的“关闭”按钮。 修改:击“显示” , “工具栏” ,选择后击“定制”,增删后单击“定制工具栏”对话框上的“关闭”按钮。,6/17,2.2.3 VFP的配置,VFP的配置决定其外观和行为的默认值。可使用“选项”对话框设置:单击“工具”菜单下的“选项”,打开其对话框,选择选项卡。选项共12个,分别是:显示、常规、数据、远程数据、文件位置、表单、项目、控件、区域、调试、语法着色和字段映像。均用交互方式查看和设置。也可以用set命令设置。,3. 修改现有工具栏,击“显示”菜单,选“工具栏”,弹出其对
25、话框。 单击“定制”按钮,弹出“定制工具栏”对话框。 向要修改的工具栏上拖放新图标按钮可增加新工具。 把某图标拖到工具栏外可删除该工具。 单击“定制工具栏”对话框上的“关闭”按钮。,7/17,1.使用“选项”对话框,在区域选项卡中设置日期时间显示方式。,设置默认目录,选“文件位置”卡,选“默认目录”,按“修改”,出现“更改文件位置”对话框,选中“使用默认目录”激活“定位默认目录”,键入或选好路径后按“确定”。,在“文件位置” 卡中,选 “帮助文件”,击“修改” 。通过“更改文件位置”对话框指定文件。击“确定”。 如果已安装MSDN,则帮助的默认行为是调用Msdnvs98.col。如果该文件不存
26、在,则将默认使用Foxhelp.chm。,设置默认帮助文件,设置日期和时间显示格式,8/17,2. 保存设置,VFP配置修改既可以是临时的,也可以是永久的。临时设置保存在内存中,本次有效,退出时释放。永久设置保存在Windows注册表中,作为以后再启动的默认设置。,保存为本次有效,在“选项”对话框中选择各项设置后,单击“确定”按钮,关闭“选项”对话框。,保存为默认设置 设置更改后,“设置为默认值”按钮被激活,单击之,再单击“确定”按钮,关闭“选项”对话框。,9/17,2.3 项目管理器,处理数据和对象的组织工具,提供了便利的工作平台。 一可用简便的、可视化的方法来组织和处理一切文件。 二可将应
27、用系统编译成一个应用文件或可执行文件。,2.3.1 创建项目,1.创建项目 击“文件”菜单,选“新建” 。 选“项目”,击“新建文件”图标。 输入项目名称,选择文件夹。 单击“保存”按钮。,打开: 击“文件”,选“打开”或击工具栏的“打开”钮。 在“文件类型”中选“项目” 。 双击项目名或选后按“确定”。 关闭:单击项目管理器右上方的“关闭”按钮。,2.打开和关闭项目,10/17,3.各类文件选项卡,“数据”选项卡,包含数据库、自由表、查询和视图。,”文档”选项卡,包含表单、报表和标签。,“类”选项卡,显改自己创建的要修改的类,“代码”选项卡,三大类程序.prg文件、函数API Libries
28、和.app文件。,“其他”选项卡,包括文本文件、菜单文件和其他文件,如位图文件.bmp、图标文件.ico等。,11/17,共有6个选软项卡,其中“数据”、“文档”、“类”、“代码”、“其他”5个选项卡,用于分类显示各种文件,“全部”选项卡用于集中显示该项目中的所有文件。 选项卡为数据提供了一个组织良好的分层结构视图,如果某类型数据项有一个或多个数据项,则其标志前有个加号。单击加号可查看列表,单击减号可折叠列表。,2.3.2 使用项目管理器,在项目管理器中,用户可以通过可视化的直观操作在项目中创建、添加、修改、移去和运行指定的文件。,1.创建文件,定类型,击“新建”命令,打开相应设计器创建新文件
29、。,2.添加文件,选类型,击“添加”按钮,在“打开”对话框中选择要添加的文件,击“打开”对话框的“确定”。,4.移去文件,选文件,击“移去”按钮或从“项目” 菜单中选择“移去文件”命令,系统将出现提示框。击“移去” 则从项目中移去,该文件仍存在;击“删除” 则移去且删除文件。,5.其他按钮,“浏览” :仅当选定表时用。 “关闭”与“打开” :选定库时用。 “预览” :打印预览用。 “运行” :选查询,表单,程序时用。 “连编” :连编一项目或应用程序,3.修改文件,选文件,击修改或选择项目菜单的“修改文件”命令,打开相应的设计器,修改文件。,12/17,2.3.3 定制项目管理器,移动和缩放,
30、将鼠标指针放置在窗口的标题栏上拖拽鼠标即可移动项目管理器窗口的位置。 将鼠标放置在窗口顶端、低端、两边或角上,拖动鼠标便可以扩大或缩小窗口的尺寸。,折叠项目管理器,单击右上角的 按钮项目管理器窗口变为折叠状态,窗口仅显一个选项卡,不显命令按钮,同时 变成 ,称为“还原”按钮。单击之,则窗口展开还原为正常界面。,拆分项目管理器,若要还原拆分,可单击选项卡上的“关闭”按钮,也可用鼠标将其拖回。 单击 折叠项目管理器,选定一个选项卡,将其拖离。此时选项卡上出现图钉图标,单击之,则显示在顶层。再单击,取消顶层显示。,停放项目管理器,将项目管理器拖到VFP主窗口顶部。停放后变成了窗口工具栏的一部分,不能
31、将其整个展开,但是可以单击每个选项卡来进行相应的操作。可以从中拖开选项卡。,13/17,2.4VFP向导、设计器、生成器简介,Vvisual FoxPro 6.0提供了许多真正面向对象的程序设计工具,主要是各种向导、设计器和生成器,本节将简要介绍这些工具的功能、使用原则及相关知识, 具体的使用方法则在以后各章节中再予以详述。,2.4.1VFP 的向导,向导是一种交互式程序,通过用户在一系列向导屏幕上回答问题或选择选项,帮助用户快速完成一般性的 任务,自动生成执行任务的程序。 VFP提供向导20多个,常用的有创建表单、编排报表、建立查询、制作图表、生成透视表、生成交叉表以及在Web上按HTML格
32、式发布等。,14/17,1.启动向导,项目管理器-类型 “新建” “新建XX” “XX向导” 。 “文件” “新建” “新建”对话框 “新建”按钮类型向导新建工具钮 在“工具”菜单中选择“向导”子菜单。 单击“工具栏”上的“向导”图标按钮。,2.使用向导,依次回答问题,单击“下一步”。 操作中出现错误或想法变化,击“上一步”修改。中止操作击“取消”。遇困难按F1。 最后提供标题,满意击“完成”。 如某步击“完成”,则用默认值。,3.修改用向导创建的项,用相应的设计器打开修改,不能用向导打开用向导建立的文件。但是可以在退出向导之前预览向导结果并做适当的修改。,15/17,2.4.2VFP的设计器
33、,VFP的设计器是创建和修改应用系统各种组件的可视化工具。利用各种设计器使得管理数据变得轻而易举,缩短开发周期、提高开发效率。,1.各种设计器,包括表、数据库、报表、查询、视图、表单、菜单、数据环境、连接设计器。,2.打开设计器,有三种方法: 在“项目管理器”下,选相应选项卡,选类型,击“新建”,再击“新建XX”对话框中的新建按钮。 从“文件”菜单中选“新建”或击工具上的“新建”钮,选类型,击“新建文件”钮。 从“显示”菜单中打开。,16/17,2.4.3VFP的生成器,生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改。 一般在如下5种情况下启动生成器: 用表单
34、生成器来创建修改表单。 对表单的控件使用相应生成器。 用自动格式生成器设置控件格式。 使用参照完整性生成器。 使用应用程序生成器生成应用程序。,1.各种生成器,包括表单、表格、编辑框、列表框、文本框、组合框、命令按钮、选项按钮、自动格式、参照完整性、应用程序生成器,2.启动生成器,以后相应章节介绍。,17/17,第三章数据与数据运算,返 回,3.1 常量与变量,3.2 表达式,3.3 常用函数,第三章 数据与数据运算,我们处理的数据,有存在表中的数据,还有存在内存中的数据。本章我们只谈存在内存中的数据。根据计算机处理数据的形式来划分,可分为:常量、变量、表达式和函数四种。 常量和变量是数据处理
35、和数据运算的基本对象,而表达式和函数则体现了语言对数据进行运算和处理的能力及功能。,3.1常量与变量,每个数据都有一定的类型,数据的类型决定了数据的存储方式和运算方式,所以在定义常量和变量时也必须指明其类型。 他们的类型包括字符型、数值型、货币型、逻辑型、日期型和日期时间型6种。,1/11,3.1.1常量,常量用以表示一个具体的、不变的值。 不同类型的常量有不同的书写格式和不同的取值范围。,1.数据型常量,数据型常量即常数,用来表示数量的大小,由数字09、小数点和正负号构成。若整数部分不为0,则首位不可为0。可以使用科学记数法书写。取值范围为:-1019 1020 。 例如:12、3.45、-
36、6.47、5.87E12(5.871012)、 1.6E-13(1.610-13)。,2.货币型常量,用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的“$”。在存储和计算时,采用4位小数,多余小数位自动四舍五入。不能用科学记数法,在内存中占8个字节。取值范围: 922337203685477.5807 922337203685477.5807,2/11,3.字符型常量,字符型常量也称为字符串,其表示方法是用两个成对出现的半角的单引号、双引号或方括号把字符串夹起来。这里的单引号、双引号和方括号不作为常量本身的内容,只规定常量的起止界限,所以叫做“定界符”。不包含任何字符的字符串叫“
37、空串”(“”),它和包含空格的字符串(“ ”)是不同的。,4.日期型常量,基本知识 定界符是一 对花括号,内含年月日,用“/”、“-”、“.”和空格分隔,“/”为默认分隔符。 传统格式 mm/dd/yy和严格格式 yyyy-mm-dd 占8字节。取值范围:0001-01-019999-12-31。 严格格式可在任何情况下使用,传统格式只在set strictdate to 0状态下使用。,3/11,4.影响日期格式的设置命令,Set mark to 分隔符 设置分隔符(-/.空格 ),默认“/” Set date to 短语 设置日期格式,默认AMERICAN 短语设置 日期格式 短语设置 日
38、期格式 AMERICAN mm/dd/yy ANSI yy.mm.dd BRITISH/FRENCH dd/mm/yy GERMAN dd.mm.yy ITALIAN dd-mm-yy JAPAN yy/mm/dd USA mm-dd-yy MDY mm/dd/yy DMY dd/mm/yy YMD yy/mm/dd,SET CENTURY ON|OFF|TO 世纪值 ROLLOVER 年份参照值 用于确定世纪的显示与否ON:指定在10位日期格式中,用四位数字表示年。OFF:指定在8位日期格式中,用两位数字表示年。 在进行日期计算时假定它表示的是二十世纪。To选项确定用量数字表示的年份所处的世
39、纪。 Set strictdate to 0|1|2 用于设置是否检查日期格式0:不检查 1:检查,默认值 2:检查且影响TOD()/CTOT()格式,4/11,5.日期时间型常量,包括日期和时间两部分内容: , 。日期部分也分严格和传统两种;时间部分格式为:hh:mm:ssa|p 分别表示时、分、秒、上午、下午。上/下午也可用默认的AM/PM表示。若无A/P,则为24时制该型用8字节存储。,6.逻辑型常量,逻辑型数据只有逻辑真和逻辑假两个值。逻辑真的常量表示形式有:.T.、.t.、.Y.、.y.。逻辑假的常量表示形式有:.F.、.f.、.N.、.n.。 前后的半角英文句号是必不可少的,要注意
40、。逻辑性数据只占用一个字节。,日期型常量举例,Set cent on Set mark to Set date ymd ? 2003-08-212003/08/21,set cent off set mark to “.” set date mdy ? 2003-08-21 08.21.03,Set strict to 0 ?2003-08-21,08.21.03 08.21.03 08.21.03,Set mark to “;” ?2003-08-21,08.21.03 08;21;03 08;21;03,5/11,3.1.2变量,变量是能够随时更改的量。VFP的变量分为字段变量和内存变量两
41、大类。字段变量就是表中的字段名;内存变量是内存中的一个存储区域,变量值就是存放在这个区域中的数值。变量的类型取决于变量值的类型。内存变量的类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)。,1.简单内存变量,每一个变量都有一个名字,可以通过变量名访问变量。命名规则是:以字母(汉字)或下划线开头,由字母、数字、下划线组成,不超过128个字符,不为系统保留字。如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在内存变量名前加前缀M.(或M-),否则访问同名字段变量。,2.数组,数组是内存中连续的一片存储区域,由一系列元素组成,每个数组元素可通
42、过数组名和相应的下标来访问。每个元素都相当于一个简单变量,可分别赋值。 赋值、使用前必须先说明,格式是: dimension (, ) ,或declare (, ) , 。,6/11,3.1.3内存变量常用命令,有关内存变量的命令很多,例如定义、赋值、显示、清除、保存至文件、从文件中还原、作用域选择和变更隐藏、与字段变量的交换等。现在只介绍最常用的命令。,1.内存变量的赋值,给简单内存变量赋值不必事先定义,给数组元素赋值必需先定义。赋值命令格式是: = Store to 格式1一次只能给一个变量赋值,格式2一次能给几个变量赋值.可通过重新赋值来改变内容和类型,2.表达式值的显示,格式1:? 格
43、式2:? 格式1表明在下一行起始处开始输出,若表达式为空,则输出一空行。 格式2表明在当前光标处开始输出。,7/11,3.内存变量的显示,list memory liketo printer|to file display memory liketo printer|to file 格式1连续显示,格式2分屏显示符合条件的所有变量名、作用域、类型和取值。通配符包括*和?,*表示任意多个字符,?表示任意一个字符。Like 短语表示只显示与含通配符的名称骨架(以后简称骨架)匹配的内存变量。to printer 和to file 子句用于在显示的同时送往打印机,和存入给定文件名的文本文件中,文件的扩
44、展名是.txt。,4.内存变量的清除,Clear memory 清除所有内存变量。 Release 清除表内的。 release all extended在人机对话时同,在程序中需加extended,否则不能清除公共内存变量。 release all like |except选like短语清除匹配的,选except短语清除不匹配的内存变量。,Release rili:s 释放 extend ikstend 延伸 except iksept 除之外,8/11,3.2表达式 3.2.1数值、字符与日期时间表达式,1.数值表达式 由算术运算符将数值型数据连接起来形成,结果仍是数值型数据。,2.字符表
45、达式,由字符串运算符将字符型数据连接起来形成,结果仍是字符型数据。 运算符有“+”、“-”,优先级相同。 +:前后两字符串首尾连接为新串。 -:前后连接后并将前字符串尾部空格移到合并后的新字符串尾部。 例如:a=“abc “,b=“def” ? a+b,a-b abc def abcdef,3.日期时间表达式,运算符也有“+”、“-”两个。不能任意组合,合法的表达式格式如下表:,是由常量、变量和 函数通过运算符连接起来的式子。,9/11,3.2.2关系表达式,也称为简单逻辑表达式,它由关系运算符将两个对象连接起来形成。即其格式为: 关系运算符包括:、=、=、=、#、!=和$。含义为小于、小于等
46、于、大于、大于等于、等于、精确等于、不等于和含于。其优先级相同,运算结果都是逻辑型数据。=、$只用于字符型数据。,2.设置字符的排序次序,自左向右逐个比较,一旦发现两个对应字符不同,就根据这两个字符确定排序先后。通常是按ASCII码值,即按Machine(机器)排序。次序依次是:空格数字大写字母小写字母汉字,一 级汉字的顺序与拼音同。也可选择PinYin(拼音)序列,西文次序是:空格数字小写字母大写字母。还可选择 Stroke(笔画)序列。 设置方法分对话方式和命令方式两种:,(1)对话方式,在“工具”菜单下选“选项”,打开选项对话框。 单击“数据”选项卡。 从右上方的“排序序列”中选择“ma
47、chine”、“pinyin”或“Stroke”。 单击“确定”。,(2)命令方式,格式: set collate to 次序名 次序名:Machine:ASCII 码 Pinyin:按拼音排序。Stroke:按笔画排序。,1.关系表达式,10/11,3.2.3逻辑表达式,逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符以优先级排列依次:.not.(逻辑非), .and.(逻辑与),.or.(逻辑或)。 两端圆点可省略,非可写做!运算如右 运算优先级: 圆括号算术字串日期关系逻辑,3.字符串精确比较与EXACT设置,用双等号运算符=比较字符串时,只有当二
48、者完全相同时,结果才为真。 用单等号运算符=比较字符串时,结果与EXACT设置有关。设为off(默认),以右边字符为准,右边字符结束,比较即终止。设为on时,先在较短字串后添空格使二者长短一致,再行比较。,11/11,3.3常用函数,函数是用程序来实现的一种数据运算或转换。它往往需要若干个自变量(运算对象),但只能有一个运算结果(函数值或返回值)。 可以通过函数名加一对圆括号调用,自变量放在圆括号内。函数调用可以出现在表达式或命令中。 根据函数值和功能不同,可分为数值函数、字符处理函数、日期类函数、数据类型转换函数和测试函数5类。 VFP提供了200多种函数,功能强大。,1/7,3.3.1数值函数,指函数值为数值的一类函数,Asc() 返回首字符的ascii码 ?asc(A) ,asc(0) 65 48,