




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1Visual FoxPro及其应用系统开发数据库应用技术21世纪高等院校规划教材2内 容 提 要本书以一个完整的应用系统“药品分销管理信息系统”为主线,分十一章全面系统地介绍了Visual FoxPro面向对象的程序设计技术,包括数据库系统、Visual FoxPro程序设计基础、面向对象程序设计、数据库与数据表、视图与查询、表单设计与应用、报表设计、菜单设计、应用系统的调试与发布等。本书内容全面,结构完整,概念清晰,深入浅出,通俗易懂,可读性、可操作性强。通过使用本教材学习Visual FoxPro,可以使学生掌握关于数据库的知识,建立起关系数据库模型的基本概念,达到高等院校各专业相关数据
2、库语言的教学要求。本书教学辅导课件和系统开发实例均可从中国水利水电出版社网站上下载,网址为: 。3前 言当今,数据库技术已经被广泛应用于各种类型的数据处理系统中,由此,掌握数据库应用技术,学习使用数据库技术进行系统开发,正成为众多计算机应用人员的热切愿望,对于正在普通高校各专业学习的学生而言,学习一种数据库关系系统的应用方法,进而训练相应的数据库应用系统开发技能是非常必要的。作为Visual Studio 6.0的重要组成部分,Microsoft公司推出的Visual FoxPro 6.0关系数据库系统,以其强大的性能、完整而又丰富的工具、简单实用的操作方法、友好的用户界面及完备的兼容性等特点
3、,成为众多小型数据库管理系统中的杰出代表而深受用户的喜爱。在小型数据库管理信息系统应用领域,Visual FoxPro拥有广阔的市场空间。4主要内容第01章 数据库系统与Visual FoxPro 第02章 Visual FoxPro程序设计基础第03章 面向对象的程序设计第04章 数据库与数据库表第05章 表操作第06章 查询与视图第07章 数据库查询语言SQL第08章 表单设计第09章 报表与标签第10章 菜单设计第11章 应用程序发布5第1章 数据库系统与Visual FoxPro1.5 药品分销管理信息系统设计实例 1.1 数据库系统基本概念1.2 数据库系统开发1.4 Visual
4、FoxPro系统环境设置1.3 Visual FoxPro系统概况目 录6本章学习要点掌握数据库基本概念,了解数据处理的几个发展阶段及其特点学习数据模型的概念,了解关系数据模型的构成及其优点掌握关系模型的基本概念及关系运算的规则了解数据库系统开发的基本原则及开发步骤了解Visual FoxPro系统的概况掌握Visual FoxPro安装、启动及关闭的方法了解Visual FoxPro系统环境配置的意义,掌握修改系统配置的方法第1章 数据库系统与Visual FoxPro目 录71.1 数据库系统基本概念采用数据库数据处理技术实现的数据处理应用系统,我们称其为数据库应用系统,而相关的技术,我们
5、称其为数据库应用技术,或简称数据库技术。数据库技术是数据管理的技术,是计算机科学的重要分支。数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的四个概念。第1章 数据库系统与Visual FoxPro目 录81.1.1 信息、数据与数据处理数据库(DB,DataBase),顾名思义,是指存放数据的仓库,是存放在计算机内的、有组织、可共享的数据集合。信息和数据是两个既有区别又有联系概念。1数据数据是数据库中存储的基本对象,是描述事物的符号记录。2信息信息是经过加工处理后具有一定含义的数据,是对特定人类活动有价值的数据。3数据处理数据处理是将数据转换成信息的过程,是把各种类型的数据进行
6、收集、储存、分类、加工和传输的一系列活动的总和。第1章 数据库系统与Visual FoxPro目 录9数据处理的三个阶段:人工管理阶段20世纪50年代中期以前,由于当时的计算机速度比较慢,计算机上也没有专门的管理数据的软件,更没有诸如磁盘之类的设备来存储数据,数据处理都是通过人工管理来进行的。 第1章 数据库系统与Visual FoxPro目 录应用程序1应用程序n数据组1应用程序2数据组2数据组n图1-1 人工管理阶段程序与数据之间的关系10数据处理的三个阶段:文件管理阶段20世纪50年代后期至20世纪60年代中期,是计算机在数据管理中直接发挥作用的开始。在此阶段,数据可以存储。科学家编制专
7、门管理数据的软件,按一定规则将数据组织成一个文件,用户可通过文件名来访问文件,而不必考虑过多物理细节。第1章 数据库系统与Visual FoxPro目 录应用程序1应用程序2应用程序n存取方法文件1文件2文件n图1-2 文件系统阶段程序与数据之间的关系11数据处理的三个阶段:数据库系统阶段20世纪60年代中期,随着应用的发展,要求存储和管理有结构的数据,不但管理数据本身,还要管理数据间的联系,产生了数据库系统。第1章 数据库系统与Visual FoxPro目 录应用程序1应用程序2应用程序n数据库管理系统(DBMS)数据库(DB)图1-3 数据库系统阶段程序与数据之间的关系121.1.2 数据
8、模型1层次模型层次模型表示数据间的从属关系,用倒置的树形结构来表示实体及他们之间的联系。 第1章 数据库系统与Visual FoxPro目 录建校时间学校地址学校名称学校编号职责处室名称处室编号办公地点系名系编号职责科室名称科室编号教研室教研室编号图1-4 数据的层次模型 131.1.2 数据模型2网状模型网状模型是层次模型的扩展,它表示多个从属关系的层次结构,呈现一种交叉关系的网络结构。 第1章 数据库系统与Visual FoxPro目 录学时数课程名称课程代号所在班级出生年月姓名学号成绩学号课程代号图1-5 数据的网状模型141.1.2 数据模型3关系模型关系模型是用二维表格来表示实体及其
9、相互关系的模型。在关系模型中,每一个实体被看成是一个二维表,实体之间的关系也用二维表来表达,每个二维表成为一个关系,且均有一个名字,称为关系名。第1章 数据库系统与Visual FoxPro目 录151.1.3 数据库系统1三级模式结构第1章 数据库系统与Visual FoxPro目 录数据库内模式模式外模式A外模式B外模式C应用A1应用A2应用B1应用C1应用C2DBMS外模式/模式映象内模式/模式映象图1-6 数据库系统的三级模式结构161.1.3 数据库系统2数据库管理系统数据库管理系统(DBMS,Data Base Management System)是处理数据库访问的系统软件,是位于
10、用户与操作系统之间的一层数据库管理软件。数据库管理系统提供对数据库资源进行统一管理和控制的功能,通常由数据描述语言及其编译程序、数据操纵语言及其编译解释程序和数据库管理例行程序等三部分组成。第1章 数据库系统与Visual FoxPro目 录171.1.3 数据库系统3关系型数据库管理系统基于关系模型的数据库管理系统即被称为关系型数据库管理系统(RDBMS,Relation Data Base Management System)。 RDBMS的核心功能是实现数据库物理模式与其应用模式之间的变换,使得用户能够逻辑地、抽象地处理数据,而无须顾及数据在计算机物理层中的存储形式。 第1章 数据库系统
11、与Visual FoxPro目 录181.1.4 关系数据库以关系模型建立的数据库就是关系数据库(RDB,Relational Data Base),是由若干个依照关系模型设计的二维表的集合。1关系模型的基本概念关系(数据表)元组(记录)属性(字段)域关键字候选关键字主关键字(主键)外关键字(外键)关系模式第1章 数据库系统与Visual FoxPro目 录191.1.4 关系数据库2表间关联数据库中的数据表间存在多种关联。在同一数据库中,相关联的表间关系的类型有一对一、一对多和多对多3种关系。第1章 数据库系统与Visual FoxPro目 录20表间关联一对一关系数据库中具有相同属性的数据
12、字段分别是两个数据表的关键字或候选关键字,由于该字段值得惟一性,因此由数据字段创建的两个数据表关系为一对一的关系。第1章 数据库系统与Visual FoxPro目 录21班长班长-班级班级111:122表间关联一对多关系数据库中具有相同属性的数据字段分属于两个数据表,在其中一个数据表中该字段的值是惟一的,而在另一个数据表中却不惟一,通过该字段所建立的数据表间关系即为一对多的关系。以数据表“生产商”和“库存数据表”的关系为例,在数据表“生产商”中,每个生产商的名称仅出现一次,“生产商”字段是主关键字,而在数据表“库存数据表”中,由于每个生产商可能生产多种药品,因此同一生产商的名称在表中可能出现多
13、次,两个表按“生产商”字段建立关联即为一对多得关系。 第1章 数据库系统与Visual FoxPro目 录23班长班长-学生学生1m1:m24表间关联多对多关系数据库中具有相同属性的数据字段分属于两个数据表,数据字段的值在两个表中出现的次数均不为一,通过该字段所建立的数据表间关系即为多对多的关系。第1章 数据库系统与Visual FoxPro目 录25教师教师-学生学生mnm:n261.1.5 关系规范化根据关系规范化理论,可以将满足规范化的条件分为六个等级:第一范式(1NF)、第二范式(2NF) 、第三范式(3NF) 、修正的第三范式(BCNF) 、第四范式(4NF) 和第五范式(5NF)。
14、 第1章 数据库系统与Visual FoxPro目 录271.1.6 关系完整性关系完整性约束是指给定数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态变化,以保证数据的正确、有效和相容。关系模型中包括三种完整性约束:实体完整性、参照完整性和域完整性,其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件。第1章 数据库系统与Visual FoxPro目 录281.1.7 关系运算1选择(Select)运算选择运算是从指定的关系中选取满足给定条件的若干元组的运算,记作(R)。式中以条件表达式指定选择条件,选择的结果将是原关系的一个子集,子集中所有元组均能
15、使条件表达式为真,且关系模式不变。第1章 数据库系统与Visual FoxPro目 录291.1.7 关系运算2投影(Project)运算投影运算是从指定的关系中选取指定的若干字段的运算,记为:字段名表(R)。投影运算从原关系中选取若干属性形成新的关系,新的关系或比原关系少,或与原关系排列顺序不同,或两者均有。第1章 数据库系统与Visual FoxPro目 录301.1.7 关系运算3连接(Join)运算连接运算是选取若干个指定关系中的字段满足给定条件的元组,从而构成一个新关系的运算,记为:第1章 数据库系统与Visual FoxPro目 录 条件RS311.2 数据库系统开发数据库系统设计
16、的主要任务是采用“自顶向下”的原则将系统必须具备的功能分解为若干个功能模块,并明确描述各个功能模块的具体功能以及相互调用关系。所谓自顶向下,是指首先设计应用系统的整体功能,接着将系统整体功能分解为一组子功能,如果某一子功能依然比较复杂,则还须拆分该子功能为明细功能,直至每一个明细功能都仅完成一项单一应用操作为止。第1章 数据库系统与Visual FoxPro目 录321.2.1 数据库系统设计的原则1功能模块间的耦合原则2功能模块的内聚性原则3功能模块调用的扇入/扇出原则第1章 数据库系统与Visual FoxPro目 录331.2.2 数据库设计的步骤1系统分析2应用系统设计3数据库应用系统
17、实现4数据库应用系统测试第1章 数据库系统与Visual FoxPro目 录341.3.1 Visual FoxPro的特点1强大的查询功能2引入数据库表的概念 3界面友好4扩大了对SQL语言的支持5面向对象编程技术6与其它软件高度兼容7支持网络应用第1章 数据库系统与Visual FoxPro目 录351.3.2 Visual FoxPro的安装1安装环境Visual FoxPro为32位的开发工具,其硬、软件的基本配置是:处理器:80486DX/66MHz或更高档处理器内存:16MB以上硬盘空间:典型安装需要100MB,最小化安装需要15MB,完全安装需要240MB显示器:VGA或更高分辨
18、率的显示器鼠标光驱操作系统:Windows95/98或Windows NT以上操作系统,如果使用中文版的Visual FoxPro,则操作系统也必须是中文版的对于网络操作,需要有一个与Windows兼容的网络和一个网络服务器。第1章 数据库系统与Visual FoxPro目 录361.3.2 Visual FoxPro的安装2Visual FoxPro性能指标VFP系统的性能指标见表1-1所示。第1章 数据库系统与Visual FoxPro目 录371.3.2 Visual FoxPro的安装3安装Visual FoxProVisual FoxPro可以从CD-Rom或网络上安装。以下介绍从C
19、D-ROM安装的步骤。启动Windows操作系统,将Visual FoxPro的安装盘放入CD-ROM驱动器,自动运行安装向导程序。按照安装向导的提示,依次“接受协议”、输入产品ID号和用户信息、选择安装位置及安装类型后即进入安装界面系统根据用户的设置,开始复制文件,配置系统运行环境,直至安装完毕。第1章 数据库系统与Visual FoxPro目 录381.3.2 Visual FoxPro的启动4启动Visual FoxPro【开始】|【所有程序】|【Microsoft Visual Studio 6.0】|【Microsoft Visual FoxPro 6.0】)。利用【我的电脑】或【资
20、源管理器】查找到Visual FoxPro 6.0启动程序vfp.exe。选择Windows桌面:【开始】|【运行】,在弹出的【运行】对话框中输入Visual FoxPro 6.0启动程序所在的文件夹及文件名,在单击“确定”按钮。在Windows桌面上为Visual FoxPro 6.0启动程序创建快捷方式,以后只要双击该快捷方式图标即可启动Visual FoxPro 6.0。第1章 数据库系统与Visual FoxPro目 录391.3.2 Visual FoxPro的退出5退出Visual FoxPro 选择系统菜单:【文件】|【退出】在命令窗口键入:QUIT,并按下键盘“Enter”键单
21、击系统主窗口右上角“关闭”按钮双击系统主窗体左上角控制菜单图标,或单击控制菜单图标后,再选择弹出菜单:【关闭】同时按下键盘“Alt”和“F4”键第1章 数据库系统与Visual FoxPro目 录401.3.3 Visual FoxPro的用户界面第1章 数据库系统与Visual FoxPro目 录411.3.4 Visual FoxPro的工作方1交互式工作方式交互式工作方式又可分为菜单操作方式和命令方式两种。菜单操作方式命令方式2. 程序方式程序是命令代码的集合,用户先创建程序文件并保存起来,使用时只须调用程序文件,即可由系统依次自动执行文件内的程序代码。保存的程序文件可多次反复使用。第1
22、章 数据库系统与Visual FoxPro目 录421.3.5 Visual FoxPro的语法规则 1命令格式Visual FoxPro的命令有两部分组成:命令动词和命令动词后的短语。命令动词是用来告诉计算机需要完成什么任务;命令动词后的短语则用来限定计算机操作的范围、字段、和条件等。第1章 数据库系统与Visual FoxPro目 录431.3.5 Visual FoxPro的语法规则 2命令常用短语FIELDS子句该子句说明数据表的字段名称,一般后面跟一个字段名称表(简称字段名表)。在该字段名表中,每个字段名之间必须用逗号隔开。如果不选择这个子句,则表示选择所有字段。其一般形式为:FIE
23、LDS TO PRINTER子句选择该子句时,所发命令操作的结果送往打印机打印输出,否则在屏幕上显示。OFF子句选择该子句时,命令操作输出记录时不显示记录号。 第1章 数据库系统与Visual FoxPro目 录441.3.5 Visual FoxPro的语法规则 3命令书写规则每个命令都必须以命令动词开头,命令中各子句的书写顺序可任意排列命令中各词汇应以一个或多个空格隔开,但如果两个词之间有双引号、单引号、括号、逗号等符号时,则省略空格符。一行最多只能写一条命令,且长度不得超过254个字节。如果命令行较长,可分多行书写,但除最后一行外的每一行都必须以续行符“;”结束,且总长度不超过254个字
24、节。命令中不区分大、小写。许多命令动词和短语可以使用缩写,只要写出其至少前4个字母。如:Display可缩写为Disp、Displ、Displa均可可以使用命令动词、短语等Visual FoxPro保留字作为文件名、字段名、变量名,但应尽量避免使用,以免发生混乱。第1章 数据库系统与Visual FoxPro目 录451.3.6 Visual FoxPro常用文件类型在使用Visual FoxPro时,应用系统会产生和管理许多类型的文件,如:项目文件、数据库文件等,它们用不同的扩展名区分。第1章 数据库系统与Visual FoxPro目 录461.4 Visual FoxPro系统环境设置在使
25、用Visual FoxPro的过程时,系统允许用户设置大量的参数控制其操作环境和工作方式, 其中包括:(1) 主窗口标题的设置(2) 工作路径、项目、编辑器、表单工具选项等的设置(3) 临时文件存储(4) 拖放字段对应的控件(5) 其他选项设置第1章 数据库系统与Visual FoxPro目 录471.5 药品分销管理信息系统实例药品分销管理信息系统是一个比得较典型的计算机数据库应用系统实例,主要功能就是实现一般药品从进货、调拨到销售这样一个药品流通环节中各项信息的即时管理。第1章 数据库系统与Visual FoxPro目 录481.5.1 业务与数据流程1进货数据录入2调拨数据录入3销售数据
26、录入第1章 数据库系统与Visual FoxPro目 录进货单药品进货数据录入库存数据表药品调拨数据录入调拨数据表药品销售数据录入库存数据查询销售数据表库存商品一览销售单图1-19 “药品分销管理信息系统”数据业务流程图491.5.2 系统功能图1-20 “药品分销管理信息系统”功能结构图第1章 数据库系统与Visual FoxPro目 录药品分销管理信息系统 药品进货数据录入 药品调拨数据录入 药品销售数据录入 库存数据查询 50 第2章 Visual FoxPro程序设计基础 2.5 顺序程序结构2.1 数据类型2.2 常量与变量2.4 表达式2.3 系统函数目 录2.8 模块化程序设计2
27、.7 循环程序结构2.6 分支程序结构51本章学习要点掌握数据和数据类型的概念掌握字符型、数值型等数据类型所包括的范围能正确判断数据的类型了解数据存储的形式及特点掌握内存变量及其使用方法了解系统函数和表达式的使用掌握面向过程程序设计的几种结构掌握程序工作方式下内存变量及参数的使用 第2章 Visual FoxPro程序设计基础 目 录522.1 数据类型数据是数据库系统处理的对象和核心,每个数据都包含数据内容和数据形式两个方面,数据的形式是数据的基本属性,它决定了数据的存储方式和可进行的操作,被称为数据类型。与其他程序设计语言一样,Visual FoxPro提供了多种数据类型的支持,并可以将其
28、存放于各种不同的数据容器中。 第2章 Visual FoxPro程序设计基础 目 录532.1.1 字符型字符型(Character)数据亦称为字符串、字符,用字母C表示,是描述不具备计算能力的文字数据类型。字符型数据由字母(汉字)、数字符号、空格等ASCII字符集中任意可打印字符组成,其最大长度为254个字节。 第2章 Visual FoxPro程序设计基础 目 录注意:如果将阿拉伯数字定义为字符型数据时,它不具备数学上的数值含义,不能参加数学运算,如电话号码,学号等。542.1.2 数值型1数值型数值型(Numeric)数据由数字(09)、小点数和正负号组成,用字母N表示。其最大长度为20
29、个字节。2浮点型浮点型(Float)数据用字母F表示,是数值型数据的一种,与上述数值型基本等价,只是在存储形式上采用浮点格式,且数据的精度比数值型数据高。3双精度型双精度型(Double)数据用字母B表示,是相对浮点型数据精度更高的数据类型。4整型整型(Integer)数据用字母I表示,用于存储无小数部分的数值,只能用于数据表中字段的定义。其取值范围是:-2,147,483,6472,147,483,647。整型字段占用4个字节。 第2章 Visual FoxPro程序设计基础 目 录552.1.3 日期型与日期时间型日期型(Date)数据用字母D表示,用来存放表示日期的数据,有多种格式表示,
30、默认为mm/dd/yy。日期型数据有固定宽度,占用8个字节,其存储格式为“yyyymmdd”,其中yyyy表示年号,占4位,mm表示月份,占2位,dd表示日期,占2位。日期时间型(DateTime)数据用字母T表示,用作存放日期和时间,其默认格式为mm/dd/yyyy hh:mm:ssA|P,A表示上午,P表示下午。日期型有固定宽度,占用8个字节。存储格式为“yyyymmddhhmmss”,其中hhmmss分别为时间中的小时,分钟和秒,各占2位。 第2章 Visual FoxPro程序设计基础 目 录56日期显示格式命令格式:SET DATE TO 说明:该命令用于设置日期的输出格式,的取值可
31、以是AMERICAN 、ANSI 、BRITISH等,各取值及所对应的日期输出格式如表2-1所示 第2章 Visual FoxPro程序设计基础 目 录设置值日期格式示例设置值 日期格式示例AMERICAN mm/dd/yy 06/19/97USAmm-dd-yy06-19-97ANSIyy.mm.dd97.06.19MDY mm/dd/yy06/19/97BRITISH/FRENCH dd/mm/yy19/06/97DMY dd/mm/yy 19/06/97GERMAN dd.mm.yy 19.06.97YMD yy/mm/dd 97/06/19ITALIAN dd-mm-yy19-06-9
32、7SHORTWindows短日期格式按Windows系统设置JAPAN yy/mm/dd97/06/19LONGWindows长日期格式57日期格式分隔符命令格式:SET MARK TO 说明:可以利用式中 参数设置任意可显示字符作为日期分隔符。如果没有指定任何分隔符,则按SET DATE的设置恢复成系统默认分隔符。 第2章 Visual FoxPro程序设计基础 目 录58【例2-1】问题:设置日期显示格式为ANSI方式,然后将其格式分隔符改为:,再还原成系统默认分隔符,并考察每次设置修改后的结果。在系统【命令】窗口中依次输入下列命令 第2章 Visual FoxPro程序设计基础 目 录?
33、 date() &显示系统日期set date ansi &设置系统日期格式为ANSI? date() &显示系统日期set mark to &设置日期格式分隔符为:? date() &显示系统日期set mark to &还原日期格式分隔符? date() &显示系统日期59日期型数据中的世纪值命令格式: SET CENTURY ON | OFF | TO 说明:式中ON设置在输出日期数据时显示世纪值;OFF设置在输出日期数据时不显示世纪值;TO 指定日期型数据的默认世纪值, 为199之间的某整数。 第2章 Visual FoxPro程序设计基础 目 录60【例2-2】问题:设置以十九世纪为
34、日期型数据的世纪值。 在系统【命令】窗口中输入下列命令 第2章 Visual FoxPro程序设计基础 目 录SET CENTURY TO 18 &设置以十九世纪为日期型数据的世纪值61严格日期格式检查命令格式:SET STRICTDATE TO 0 | 1 | 2说明: 式中:0设置关闭严格的日期格式检测,即设置日期格式按传统的严格格式;1设置严格的日期格式检测(默认值),要求所有日期型和日期时间型数据均按严格的格式;2设置与1相同,但程序代码中出现CTOD()和CTOT()函数时,会出现编译错误。这个设置最适合调试时使用,用来检测2000年兼容性错误;省略则恢复系统默认值,等价于1的设置。
35、 在 Visual FoxPro 6.0 中,最小的日期值是 0001-01-01,即公元1年1月1日,最大的是 9999-12-31,即公元 9999 年12月31日。 空日期和日期时间被认为是正确的、且总是有效的。有效的空日期和日期时间格式包括 、- 和 -,:。 第2章 Visual FoxPro程序设计基础 目 录622.1.4 逻辑型逻辑型(Logical)数据用字母L表示,用作存储只有两个值的数据,即“真”和“假”,常用来作逻辑判断。逻辑型数据有固定宽度,占用1个字节。 第2章 Visual FoxPro程序设计基础 目 录逻辑真:逻辑假:.t.T.Y.y.f.F.N.n.632.
36、1.5 备注型备注型(Memo)数据用字母M表示,用于存储较长的字符型数据,只能用于数据表字段变量。记录在备注项中的信息,实际存放在与表文件同名但扩展名为“.FPT”的备注文件中。在数据表中,备注型数据占用4个字节,用来“引用”备注的实际内容;备注文件中实际备注内容的长度只受磁盘空间限制。 第2章 Visual FoxPro程序设计基础 目 录642.1.6 通用型通用型(General)数据用字母G表示,用于存储OLE对象,OLE对象的具体内容可以是文本、图片、电子表格、声音、设计分析图及字符型数据等,只能用于数据表中字段的定义。有了通用型字段就使得Visual FoxPro成为全方位的数据
37、库。同备注型数据,通用型数据存入与表文件同名而扩展名为.FPT的文件中,其数据占用4个字节,实际数据长度仅受限于现有的磁盘空间。 第2章 Visual FoxPro程序设计基础 目 录652.1.7 字符型(二进制)字符型(二进制)用于存储任意不经过代码页修改而维护的字符数据,只能用于数据表字段变量。 第2章 Visual FoxPro程序设计基础 目 录662.1.8 备注型(二进制) 备注型(二进制)用于存储任意不经过代码页修改而维护的备注型数据,只能用于数据表字段变量。 第2章 Visual FoxPro程序设计基础 目 录672.2 常量与变量常量和变量是数据的两种存储方式。在Visu
38、al FoxPro系统环境下,数据的存储方式的不同,在一定程度上决定了数据使用。 第2章 Visual FoxPro程序设计基础 目 录682.2.1 常量常量是指在命令操作或程序运行过程中,其值始终保持不变的量。数值型字符型日期型日期时间型逻辑型货币型 第2章 Visual FoxPro程序设计基础 目 录692.2.2 变量变量是指在命令操作或程序运行过程中其值可能发生变化的量。 1字段变量字段变量是指数据表中定义的字段。2内存变量内存变量是用户通过命令或程序临时定义的变量,它在内存中有一存储区域,独立于数据库和表文件。内存变量的类型有字符型、数值型、日期型、日期时间型、逻辑型、货币型和屏
39、幕型。3数组变量数组变量,亦简称为数组,是指连续可索引的具有相同内在关系的元素所成的集合。数组中的每一元素具有唯一索引号,称为下标,数组中的元素用数组名后接顺序号(下标)来表示,如:ma(3),mb(2,3)。 第2章 Visual FoxPro程序设计基础 目 录70【例2-3】问题:定义一个包含有两行三列六元素的数组mb,并为各元素赋值1、2、6,并按一维数组方式输出mb(5)的值。在系统【命令】窗口中依次输入下列命令 第2章 Visual FoxPro程序设计基础 目 录Dimension mb(2,3) &定义数组mbmb(1,1)=1 &为mb(1,1)元素赋值mb(1,2)=2mb
40、(1,3)=3mb(2,1)=4mb(2,2)=5mb(2,3)=6Display Memo Like mb* &显示名称以mb开头的内存变量信息? mb(5) &输出mb数组中第5个元素的值712.2.2 变量4系统变量系统内存变量是Visual FoxPro自动创建和维护的变量,它们都以下划线开头,分别用于控制外部设备(如打印机、鼠标器等),屏幕输出格式,或处理有关计算器、日历、剪贴板等方面的信息,例如:系统变量_DIARYDATE存储机器当前日期,系统变量_CLIPTEXT接受文本并送入剪贴板。用户可以通过修改系统变量改变系统状态。 第2章 Visual FoxPro程序设计基础 目 录
41、722.2.3 内存变量内存变量常用来接受用户输入的数据、程序运行的中间结果或对数据表和数据库进行某种处理后的结果等。基于内存变量的操作有内存变量的赋值、内存变量的保存等。 第2章 Visual FoxPro程序设计基础 目 录731内存变量的访问可以直接通过名称访问内存变量,但如果当前使用的数据表中含有的字段变量时,应采用如下格式访问内存变量:M.或:M - 第2章 Visual FoxPro程序设计基础 目 录742内存变量的赋值命令格式:STORE TO |或| = 说明: STORE一次能为若干变量赋予相同的值,但等号一次只能为一个内存变量赋值。 在此使用赋值命令可以改变内存变量的值和
42、数据类型。 建立屏幕型内存变量,使用命令:SAVE SCREEN TO 第2章 Visual FoxPro程序设计基础 目 录75【例2-4】问题:使用STORE和=命令为内存变量cMessageTitle,cMessageText,mA,mB赋值 在系统【命令】窗口中依次输入下列命令 第2章 Visual FoxPro程序设计基础 目 录cMessageTitle = 药品编号不可为空! &为内存变量cMessageTitle赋值store 请重新输入药品编号! to cMessageText &为内存变量cMessageText赋值store 10 to mA,mB &定义内存变量mC和m
43、D均为数值型数据,值均为:10display memory like cMessage* &显示名称以cMessage开头的内存变量display memory like m? &显示名称为两个字符且以m开头的内存变量763内存变量的显示命令格式:LIST| DISPLAY MEMORY LIKE TO PRINTER | TO FILE ?|? ,说明:使用LIST MEMORY和DISPLAY MEMORY可以显示内存变量和系统内存变量的变量名、变量的作用域、变量的数据类型、变量的值及其内部表示。DISPLAY MEMORY是分页显示内存变量的,而LIST MEMORY滚屏显示全部信息。是
44、指含有“*”和“?”的名称,其中“*”代表多个字符,“?”代表单个字符;TO PRINTER指定显示结果同时通过打印机输出;TO FILE 指定显示结果同时保存在的文件中。通过?和?可以显示内存变量的值,?命令后的表达式值将在下一行的起始处输出,?命令后的表达式值在当前行的光标所在处输出。 第2章 Visual FoxPro程序设计基础 目 录77【例2-5】问题:输出内存变量的值 在系统【命令】窗口中依次输入下列命令 第2章 Visual FoxPro程序设计基础 目 录STORE 100 TO pE? date() &显示系统当前日期? pE &显示内存变量pE的值结果为 100? pE
45、&在前面的结果行后面显示内存变量pE的值784内存变量的保存命令格式:SAVE TO ALL LIKE | ALL EXCEPT 说明: 使用SAVE命令可以将内存变量以文件的形式存放到磁盘上。如果在文件名中不加上扩展名,Visual FoxPro将为其自动加上扩展名.MEM。 保存到内存变量文件后,内存变量并不会从内存中被清除,也不会影响其使用。 第2章 Visual FoxPro程序设计基础 目 录795内存变量的清除命令格式:RELEASE RELEASE ALL LIKE|EXCEPT CLEAR MEMORYCLEAR ALL说明:RELEASE 命令可以释放中列出的所有内存变量,变
46、量命令之间用逗号隔开。RELEASE ALL LIKE|EXCEPT 命令将释放具有指出的所有内存变量,使用LIKE表示释放符合结构的内存变量,使用EXCEPT表示释放不符合结构的所有内存变量;省略子句LIKE|EXCEPT ,将释放所有的用户定义变量。CLEAR MEMORY命令用于释放所有内存变量。CLEAR ALL命令用于释放所有内存变量,同时还关闭所有数据表文件、索引文件及格式文件等,并将1号工作区设为当前工作区。 第2章 Visual FoxPro程序设计基础 目 录80【例2-6】问题:使用内存变量清除命令分别清除指定内存变量pE、kL和清除以名称以m开头的内存变量。在系统【命令】
47、窗口中依次输入下列命令 第2章 Visual FoxPro程序设计基础 目 录Release pE,kL &清除指定内存变量pE、kLRelease All Like m* &清除以名称以m开头的内存变量816内存变量的恢复命令格式:RESTORE FROM ADDITIVE说明: 该命令可用于将中所有的内存变量恢复到内存中。 命令中省略ADDITIVE子句,在恢复内存变量之前系统将首先释放当前内存中的所有内存变量;相反,命令中含有ADDITIVE子句,在恢复内存变量文件中的变量时仅覆盖同名的内存变量,其他内存变量将继续保留的内存中。 恢复屏幕型内存变量,使用命令:RESTORE SCREEN
48、 FROM 。 第2章 Visual FoxPro程序设计基础 目 录822.2.4 数组命令格式:DIMENSION|DECLARE(,),(,)说明: 系统规定各下标的下界为1。 Visual FoxPro中,允许同一数组的元素取不同类型,而且同一个元素的前、后类型也允许改变。 系统将各数组的初值设置为逻辑假:.F.。 理论上在Visual FoxPro中最多可定义65000个数组,且每个数组最多可包含65000个元素,实际上最大数将受可用内存的制约。 第2章 Visual FoxPro程序设计基础 目 录83【例2-7】问题:定义包含4个元素的一维数组aF和包含3行5列的二维数组aS,并
49、分别为数组各元素赋相同的值:武汉工业学院和200。 在系统【命令】窗口中依次输入下列命令 第2章 Visual FoxPro程序设计基础 目 录Dimension aF,aF(3,5) &定义数组aF和aSStore 武汉工业学院 To aF &为数组aF各元素赋相同的值:武汉工业学院aF=200 &为数组aS各元素赋相同的值:200Display Memo Like a* &显示名称以a开头的内存变量信息842.3 系统函数Visual FoxPro的函数有两种:一种是用户自定义的函数,由用户根据需要自行编写;另一种是系统函数,由Visual FoxPro提供的内部函数,用户可随时调用。命令
50、格式:(说明: 函数名、参数和函数值是函数的三个要素,函数名起标识作用;参数是自变量,一般是表达式,写在括号内。 函数运算后通常会返回一个值,称为函数值。函数值会因参数值而异。 有的函数缺省参数,称为哑参,但仍有返回值。如:系统函数TIME()能返回系统当前时间。 函数的返回值有确定的类型,因而在组成表达式时要特别注意类型匹配。函数对其参数的类型也有确定的要求,否则将产生类型不匹配的语法错误。 第2章 Visual FoxPro程序设计基础 目 录852.3.1 数值函数 第2章 Visual FoxPro程序设计基础 目 录函数功能示例命令返回值ABS()返回的绝对值? ABS(-5)5EX
51、P()返回e的次方的值? EXP(2)7.39LOG()返回的自然对数值? LOG(2)0.69LOG10()返回的常用对数值? LOG10(2)0.30INT()不作四舍五入处理返回的整数部分? INT(10.99)10MAX(,)返回一组数值表达式中较大者? MAX(3,9,4)9MIN(,)返回一组数值表达式中较小者? MIN(3,9,4)3MOD(,)取模,返回整除后所得的余数? mod(7,3)1RAND()返回01之间的随机数? RAND()(随机数)ROUND(,)四舍五入,保留位小数? ROUND(123.4567,3)123.457SIGN()返回的正负号? SIGN(-5)
52、-1SQRT()求的平方根? SQRT(9)3.00862.3.2 字符函数 第2章 Visual FoxPro程序设计基础 目 录函数功能示例命令返回值ALLTRIM()返回去除前后空格后的值?ALLTRIM( Wu Han )Wu HanASC()返回中最左边一个字符的ASCII码值? ASC(WHPU)87AT(,)返回字符串在中第次出现的位置,若未出现则返回0? AT(HA,HA-HA,2)4CHR()返回对应的ASCII码字符? CHR(65)ALEFT(,)返回左起个字符的子串? LEFT(WHPUCC,4)WHPULEN()返回的字节数? LEN(Hello -!)7LIKE(,
53、)返回是否符合通配符结构? LIKE(S*,SUBSTR).T.LOWER()返回将中字母转换成小写后结果? LOWER(Hello)helloLTRIM()删除前导空格字符? LTRIM( 中国人)中国人RIGHT(,)返回右起个字符的子串?RIGHT(WHPUC,2)CSPACE()返回个空格?Hello+SPACE(3)+!Hello !SUBSTR(, ,)返回中第位起的长度为的字符子串 mCh=University? subs(mCh,4,3)verTRIM()删除的尾部空格?TRIM(国庆节 )国庆节UPPER()返回将中字母转换大写后结果? UPPER(Hello)HELLO87
54、2.3.3 日期与日期时间函数 第2章 Visual FoxPro程序设计基础 目 录函数功能示例命令返回值DATE()返回系统的当前日期? DATE()10/03/05DATETIME()返回系统的当前日期和时间? DATETIME()10/03/05 11:04:37 AMDOW()返回是一个星期中第几天? DOW(DATE()2DAY()用数字返回中的日数? DAY(DATE()3MAX(,)返回一组日期/时间表达式中较大者dp=2004/12/09? MAX(DATE(),dp)10/03/05MIN(,)返回一组日期/时间表达式中较小者dp=2004/12/09? MIN(DATE(
55、),dp) 12/09/04MINUTE()返回的分钟值? MINUTE( DATETIME()04MONTH(|)用数字返回|中的月份? MONTH(DATE()10SEC()返回的秒钟值? SEC(DATETIME()37TIME()返回系统当前时间? TIME()11:04:37WEEK(|)返回|是一年中第几个星期? WEEK(DATE()41YEAR(|)用数字返回|年份值? YEAR(DATE()2005882.3.4 数据类型转换函数 第2章 Visual FoxPro程序设计基础 目 录函数功能示例命令返回值CTOD()将转换为日期? CTOD(10/04/04)10/04/0
56、4DTOC()将转换为字符串? DTOC(2004-10-04)10/04/04DTOS()转换为YYYYMMDD格式字符串? DTOS(DATE()20051003STR(, ,)将数值转换为长度为位,具有位小数的字符串? STR(123.4567,9,2) 123.46TTOC()将转换为字符串? TTOC(DATETIME()10/03/05 11:04:37 AMTTOD()将转换为日期型数据? TTOD(DATETIME()10/03/05VAL()将字符串转换为数值? VAL(123.456)123.456892.3.5 测试函数 第2章 Visual FoxPro程序设计基础 目
57、 录函数功能举例BOF()工作区W中记录指针指向首记录之前时返回.T.,否则为.F.?BOF()COL()返回光标所在的列坐标,返回值为数值型?COL()CURDIR()返回当前文件夹?CURDIR()DBF()返回打开的表的名称?DBF()EOF()记录指针指向末记录之后时返回.T.,否则为.F.?EOF()ERROR()返回程序出错的错误号?ERROR()FCOUNT()返回工作区W中打开表文件中的字段数?FCOUNT()FIELD()返回工作区W中表文件中指定序号的字段名?FIELD()FILE()名为的文件存在则返回.T.,否则返回.F.?FILE(ABC.MEM)FOUND()工作区
58、W中指定的表文件检索操作成功返回.T.,否则返回.F.?FOUND()PROW()返回打印机字头所在行坐标,返回值为数值型?PROW()PCOL()返回打印机字头所在列坐标,返回值为数值型?PCOL()RECNO()返回工作区W中当前记录的记录号?RECNO()RECCOUNT()返回工作区W中打开表的记录数?RECOUNT()ROW()返回光标所在的行坐标,返回值为数值型?ROW()TYPE()返回表达式E计算结果的类型,以字符N,C,D,L等表示,U表示不可识别数据类型? TYPE(2+3)VARTYPE(, )返回表达式E计算结果的类型,若E的运算结果是Null值,则根据逻辑表达式L的值
59、决定是否返回表达式的类型。A=Null? VARTYPE(A,.F.)902.3.6 其他函数 第2章 Visual FoxPro程序设计基础 目 录函数功能举例BETWEEN(, )返回表达式E1计算结果是否介于表达式E2和表达式E3之间? BETWEEN(2+3,1,35)EMPTY()测试表达式E计算结果是否为空值? EMPTY(SPACE(0)IIF(,)根据表达式的值为真(.T.)或假(.F.),返回表达式或的值? IIF(85,正确,错误)INKEY()返回在N秒时间内用户操作键盘或鼠标触发的整数值,N取0则时间为无限长? INKEY(5)MESSAGEBOX( , ,)弹出一个系
60、统对话框,提示信息为表达式C1,标题为表达式C2,对话框的样式由表达式N决定? MESSAGEBOX(HELLO!)91函数MessageBox()的使用 第2章 Visual FoxPro程序设计基础 目 录取值对话框特征取值对话框特征取值对话框特征0确定按钮16停止图标0默认第一个按钮1确定和取消按钮32问号图标256默认第二个按钮2终止、重试和忽略按钮48感叹号图标512默认第三个按钮3是、否和取消按钮64信息图标4是和否按钮5重试、取消92【例2-8】在系统【命令】窗口中依次输入下列命令 所得到的结果 第2章 Visual FoxPro程序设计基础 目 录cMessageTitle =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年青少年户外拓展训练合同5篇
- 2024年职业介绍服务居间合同范本
- 2024中介房屋买卖合同范文:老旧小区改造版3篇
- 2024房地产宣传片拍摄与授权合同
- 二零二五年度体育产业融资居间协议3篇
- 2025年度企业文化宣传片制作合同范本
- 2025版防雷设备研发与防雷设施施工合作协议3篇
- 2025年度新能源发电站安装工程一切险及设备保险合同3篇
- 2024施工安装智能家居系统集成服务合同样本3篇
- 2025年度新能源汽车动力系统技术服务合同6篇
- 施工工地汛期防洪防汛应急预案(9篇)
- 商业伙伴与合作伙伴管理制度
- 03S702钢筋混凝土化粪池-标准图集
- 耳鼻咽喉-头颈外科:绪论
- 2024年高中语文课内文言文复习《项脊轩志》课后练习、探究性阅读含答案解析翻译
- 汽车机械制图(第二版)AB卷模拟试卷及答案2套
- 人教版(2024版)七上数学第二单元:有理数的运算大单元教学设计
- 6树叶书签(教学设计)苏教版二年级上册综合实践活动
- 安全环保重点岗位人员应知应会考试附有答案
- 部编版语文六年级上册第八单元整体教学设计教案
- 2024至2030年中国星空经济行业市场发展现状及未来展望与战略规划研究报告
评论
0/150
提交评论