VF教程2003版

上传人:猪** 文档编号:240744122 上传时间:2024-05-04 格式:PPT 页数:170 大小:854.50KB
返回 下载 相关 举报
VF教程2003版_第1页
第1页 / 共170页
VF教程2003版_第2页
第2页 / 共170页
VF教程2003版_第3页
第3页 / 共170页
点击查看更多>>
资源描述
编写:教育部考试中心 第一章 Visual FoxPro基础 第三章 数据与数据运算 第五章 关系数据库标准语言SQL 第七章 程序设计基础 第九章 菜单设计与应用(略)第二章 VFP6.0 系统初步 第四章 数据库及其操作 第六章 查询与视图 第八章 表单设计与应用 第十章 报表设计(略)返 回 第十一章 开发应用程序(略)第十二章 上机指导(略)第一章 Visual FoxPro 基础Visual FoxPro(简称VFP或VF)是一个采用可视的、面向对象的程序设计方法的关系型数据库管理系统。是唯一一个与历史上的数据库完全兼容的优秀系统。它具有简单易学、灵活方便、结构紧凑等优点。是当今流行的数据库管理系统之一。1.1 数据库基础知识1.1.1 计算机数据管理的发展 1、数据与数据处理数据存储在某媒体上能够识别的物理符号。数据的概念包括两个方面:其一是数据内容;其二是数据形式。内容不变,形式可以多样,如日期表示。数据的范围在不断拓展,现已包括数值、字串、图、声等。数据处理将数据转换成信息的过程。信息是数据处理的结果。数据、信息是相对的,例如年龄即可是数据,又可以是信息,因此有时有人把“处理数据得出信息”说成“信息处理”。1/17、计算机数据管理发展阶段使用的主要时间特点及优缺点人工管理40年代中-50年代中外存只有卡片、纸带,无数据管理软件。数据程序不独立、数据不保存、数据不共享、数据冗余严重文件系统50年代后-60年代后外存以磁盘为主,出现高级语言和操作系统。数据程序有一定的独立、数据保存、数据共享、数据一致性差、冗余度大。数据库系统60年代后-70年代后数据库管理系统出现,数据、程序独立,共享性提高(多用户),数据一致性、完整性提高,数据冗余度降低。分布式数据库系统80年代初-数据库技术与网络技术相结合,以结合的紧松,可分为物理上分布、逻辑上集中和物理上分布、逻辑上分布的结构两种。独立性、共享性、一致性、完整性均很高,冗余度可控。面向对象数据库系统80年代初-数据库技术与面向对象程序设计相结合的产物,是面向对象方法在数据库领域中的实现和应用。不但支持标准的过程化程序设计,而且提供了面向对象程序设计的强大功能2/171.1.2 数据库系统 1.有关数据库的概念数据库数据库是存储在计算机存储设备上,结构化的相关数据集合。它包括数据和数据间的联系,往往被多个用户、多个应用程序所共享。数据库应用系统数据库应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用的应用软件系统。它是以数据库为基础和核心的计算机应用系统。例如:财务管理系统、图书管理系统、教学管理系统等等。数据库管理系统数据库管理系统(DBMS)是对数据库的建立、使用和维护进行专门管理的软件系统。数据库系统数据库系统是指引进数据库技术后的计算机系统。它由五部分组成,各层次间的关系如右图所示:硬件系统操作系统数据库管理系统数据库应用系统开发人员最终用户数据库管理员3/172.数据库系统的特点实现数据共享,减少数据冗余建立数据库时,从全局出发确定数据库结构,充分发挥数据共享的优势,最大限度地减少数据冗余。采用特定的数据模型库管理系统不同,数据模型就不同,库的结构也就不同。具有较高的数据独立性系统实现了应用程序对总体逻辑结构、物理存储结构之间较高的独立性。用户只用操作应用程序,无需考虑逻辑结构和数据存储位置。有统一的数据控制功能系统提供必要的保护措施,有并发访问控制功能、安全控制功能、和数据完整性控制功能。保证数据库可以被多个用户或应用程序共享,允许多个用户同时使用同一个数据库。4/171.1.3 数据模型1.实体的描述实体客观存在并且可以相互区别的事物称为实体。可以是实际事物,如职工、图书或抽象事件,如退休、借书等。实体的属性描述实体的特性称为属性。例如职工属性可有:职工号、姓名、性别、出生年月等。图书属性可有:总编号、分类号、书名、作者、单价、出版社等。借书属性可有:图书编号、借阅人、借阅时间、归还时间等。实体型和实体集一个实体可用属性值的集合表示,而属性的集合则表示一种实体的类型,简称实体型。同类型实体的集合,称为实体集。例如:(姓名,性别,职称,执教科目)表示教师类型;(华罗庚,男,教授,数学)表示一个教师;多个教师的集合就是教师实体集。实体集的表示在VFP中,用“表”来存放实体集,用“字段”表示实体的属性。字段值的集合组成表的一条记录,代表一个实体。所有记录就是实体集。5/172.实体间的联系及联系的种类一对一联系(one-to one relationship)主表中的一条记录只与从表中的一条记录相关联,并且主表的记录不同,对应的从表中的记录也不同。例如,同一单位的人事表的记录就与工资表的记录存在一对一的联系。这联系是靠职工号相同为依据的。一对多联系(one-to-many relationship)主表中的一条记录与从表中的多条记录相关联,且从表中的每条记录只能与主表中的一条记录相对应。是最普遍的联系,如一部门有多个职工,每个职工只能属于一个部门等。多对多联系(many-to-many relationship)主表中的一条记录与从表中的多条记录相关联,且从表中的每条记录也与主表中的多条记录相对应。例如一个老师有多个学生,反之每一个学生也有多个老师。6/17学生名教研室 3.数据模型简介层次数据模型用树形结构表示实体及实体间联系的模型称为层次模型。用层次模型建立的数据库是层次数据库。它反映实体间的一对多联系,不能直接表示多对多的联系,不便于扩充和修改。系名地址电话教研室名电话教师名住处教师名住处教研室名电话教师名住处学生名成绩成绩网状模型用网状结构表示实体及实体间联系的模型称为网状模型。用这种模型建立的数据库是网状数据库。网状数据库难以实现数据的修改和扩充。专业系课程学生教师任课选课关系数据模型用二维表结构来表示实体及实体间的联系的模型称为关系模型。操作的对象和结果都是二维表。它描述一致、模型单一、理论完备、易学易用,因此应用广泛。新推出的数据库系统几乎都是关系型的。7/171.2关系数据库1.2.1 关系模型 (1).关系术语对关系的描述称为关系模式,一个关系模式对应一个关系的结构。其格式为:关系名(属性名1,属性名2,属性名n)在VFP中表示为表结构:表名(字段名1,字段名2,字段名n)一个关系就是一张二维表,每个关系有一个关系名,在VFP中,一个关系存储为一个文件,文件的扩展名为“.DBF”,称为“表”。关系模式 关系 元组二维表中(水平方向)的一行是一个元组。元组对应一个具体的记录。一个表中若包含多条记录,也可以说这个关系中包含多个元组。属性二维表中垂直方向的列称为属性,列名即属性名。在VFP中表示为“字段名”。用实体属性描述实体,用字段名及其类型组成VFP表的结构。8/17域域是属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如:性别只能从“男”、“女”中取其一。关键字能够(唯一地)标识一个元组的属性或属性的组合。在VFP中,关键字表示为字段或字段的组合。外部关键字如果表中的一个字段不是本表的主关键字或候选关键字,而是另一个表的主关键字或候选关键字,则这个字段(属性)就称为外部关键字。(2).关系的特点 关系必须规范化,表中不能再含表.同一关系中不能出现相同属性名.关系中不允许有完全相同的元组.一个关系中元组的次序无关紧要.一个关系中属性的次序无关紧要.(3).实际关系模型例1.1部门职工工资关系模型9/171.2.2关系运算RRSSSR11/171.传统的集合运算设有两个相同结构的关系R、S,例如R是参加计算机小组的集合,S是参加桥牌小组的集合。并并是由属于这两个关系的元组组成的集合.R 并 S就是参加计算机小组或参加桥牌小组的集合。差差是由属于R但不属于S的元组组成的集合,即是从R中去掉S中也有的元组。R 差 S就是参加计算机小组而又没有参加桥牌小组的集合。交交是由既属于R又属于S的元组组成的集合。即交的结果是R和S的共同元组。R 交 S就是既参加计算机小组又参加桥牌小组的集合。2.专门的关系运算 选择从关系中找出满足给定条件的元组。是从行中进行选择的运算,其关系模式不变。选择的元组是原关系的一个子集。部门号=“d01”投影从关系模式中指定若干个属性。投影是从列中进行选择的运算。提供了垂直调整关系的手段。职工号、姓名12/17联接联接是关系的横向结合。联接运算将两个关系模式拚接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。联接是通过联接条件来控制的,联接条件中将出现两个表中的公共属性名,或具有相同语义可比的属性。联接结果是满足条件的所有记录。自然联接在联接运算中,按照字段值相等为条件进行的联接操作称为等值联接。自然联接是去掉重复属性的等值联接。不投影等值联接重复字段13/171.3数据库设计基础 1.3.1数据库设计步骤 1.设计原则一个表描述一个实体或实体间的一种联系。避免大而杂的表,首先分离需要作为单个主题而独立保存的信息,将不同信息分散在不同表中。尽量避免在表之间出现重复字段除了保证表中有反映与其它表之间存在联系的外部关键字之外,尽量避免在表之間出現重復字段。例如在课程表中如有课程名字段,在选课表中就不应再有。表中字段必须是原始数据或基本数据元素表中不应包括通过计算可以得到的“二次数据”或多项数据的组合。例如在职工表中,如果有了身份证号字段,就不应再有年龄和出生年月字段。用外部关键字保证表间联系表间关联依靠外部关键字维系,使得表具有合理结构,不仅存储了所需要的实体信息,并且反映出实体之间客观存在的联系。遵从概念单一化“一事一地”原则14/1715/171.3.2数据库设计过程(1)需求分析需求分析;确定表;定字段;定联系;求精。信息需求。数据、类型、域处理需求。功能、方式、场合安全性和完整性要求。多交流、多收集、耐心、细致,弄清业务流程、瓶颈问题,收集报表、合同、档案、单据、计划等等2.设计步骤(2)确定需要的表是数据库设计中技巧性最强的一步,因为用户的需求往往不能直接成为设计数据库的线索,还需要认真分析、抽象、挖出本质特性,才能确定需要的表。(3)确定所需字段(4)确定联系一对多联系。“一方”的主关键字段应在“多方”的表中。多对多联系。创建含有两个表的主关键字的“纽带表”,改多对多联系为两个一对多联系。参见图书读者关系一对一联系。考虑合并。(5)设计求精根据用户意见反复修改和调整每字段直接和实体相关。以最小逻辑单位存储信息。表中字段必须是原始数据。确定主关键字字段。例1.2 图书读者借阅关系模型10/171993,1994MsFoxPro 2.5b,2.6Windows16位微机1992Fox-MSFoxPro 2.0,2.5Dos16位微机1987Ashton-tatedbaseDos16位微机1984,1985Ashton-tatedbase,+Dos16位微机1998MsVFP 6.0Windows32位微机1995.12MsVFP 5.0Windows32位微机1995.6MsVFP 3.0Windows32位微机1.4Visual FoxPro系统概述Visual FoxPro 6.0(中文版)是Microsoft公司1998年发布的可视化编程语言集成包Visual Stadio中的一员。是可运行于Windows 95/98/2000、Windows NT平台的32位功能强大的面向对象的微机数据库开发系统。1.4.1历史沿革Dbase70年代末Ashton-tatedbaseDos8位微机1987FoxFoxbase+1.0 2.1Dos16位微机1989FoxFoxPro 1.0Dos16位微机FoxbaseFoxProVFP16/171.4.2VFP 6.0的特点 1.增强的项目及数据库管理借助项目管理器可创建和集中管理应用程序中的任何元素;可访问所有向导、生成器、工具。使用快速选取记录集的技术。允许多个用户同时创建或修改。2.开发的生产率高注重历史延续性,使过去用DBASE、Foxbase、FoxPro编写的程序不加或稍加修改即可使用。提供了各种工具、向导和技术,许多功能不用编程即可自动生成。3.互操作性和支持Internet支持具有对象的链接与嵌入(OLE)拖放,可以在VF 6.0 和其他应用程序之间以及在VF内部移动数据。容易创建与Internet或其它基于Windows应用程序一起使用的应用程序。4.充分利用已有数据提供了转换器工具,可将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和用户信息,击“下一步”。选择公用文件夹位置,按“典型安装”或“自定义安装”,直至安装结束。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安装向导”进行安装。先选取“自定义”选项,然后选择“Visual FoxPro 6.0文档”复选框,按提示操作即可。2.安装示例和联机文档 3.安装后自定义系统打开“控制面板”,双击“添加/删除程序”图标,出现属性对话框;选中“Visual FoxPro6.0”,单击“添加/删除”钮,出现安装维护对话框;单击“添加/删除”钮,出现“VFP自定义安装”对话框;根据需要选择或清除对话框组件前的复选框,单击“继续”,直至结束。2/172.1.3 启动与退出VFP 6.0击“开始”,选“程序”MS Visual FoxPro 6.0MS Visual FoxPro 6.0单击。第一次启动时,将弹出“欢迎使用”屏,单击“关闭此屏”,则进入主界面。选中“以后不再显示此屏”后,再单击“关闭此屏”,则以后就直接进入主界面。单击标题栏的“关闭窗”。从“文件”菜单中选“退出”击左上方狐狸图标,从下拉菜单中选“关闭”或按Alt+F4。在命令窗口中键入quit,回车 2.退出系统1.启动系统2.2 VFP的用户界面2.2.1 VFP的主界面在命令窗中键入各命令,回车。已执行命令在窗口中保留,需再执行时,将光标移至该行,回车即可。开闭命令窗口方法:击“窗口”“命令窗口”打开;击关闭窗关闭。击工具按钮 按下打开;弹起关闭。按Ctrl+F2打开;按Ctrl+F4关闭。1.VFP的三种工作方式的三种工作方式利用菜单或工具栏按钮。在命令窗口中输入命令。用生成器产生或自编程序。前两种属于交互式,后一种为自动化工作方式。2.菜单操作菜单操作鼠标操作:单击菜单项,从下拉菜单中选择。键盘操作:Alt+热键(带下划线的字母键)。光标操作:选子菜单时,按光标(箭头)键移动光带到所需菜单选项,回车。3.命令操作命令操作4.项目管理器窗口项目管理器窗口项目管理器是各种数据和对象的主要组织工具。采用分类管理,是同一项目各文件的集合,是系统的控制中心。其文件以.pjx和.pjt保存。4/172.2.2 工具栏的使用默认界面仅包括“常用”和“表单设计器”工具栏,显示在菜单栏下面,用户可以将其拖放到任意位置。此外,还提供了其他9个工具栏,它们是:报表控件、报表设计器、表单控件、布局、查询设计器、打印预览、调色板、视图设计器、数据库设计器。1.显示或隐藏工具栏工具栏会随文件的开关而自动开关,也可在任何时候开关任何工具栏。方法是,击“显示”菜单,从下拉菜单中选“工具栏”,在弹出的对话框中选择后,击“确定”钮即可。也可在任何一个工具栏的空白处右击,打开工具栏快捷菜单,从中选择开闭项或打开工具栏对话框。5/17 2.定制工具栏用户创建自己的工具栏或修改现有的工具栏统称为定制工具栏。创建步骤是:击“显示”菜单,选“工具栏”。单击“新建”按钮,弹出“新工具栏”对话框。键入工具栏名称,例如“new”,击“确定”。选“定制工具栏”对话框左侧“分类”中之一。根据需要选右侧按钮,拖到“new”工具栏中。单击“定制工具栏”对话框上的“关闭”按钮。修改:击“显示”,“工具栏”,选择后击“定制”,增删后单击“定制工具栏”对话框上的“关闭”按钮。6/172.2.3 VFP的配置VFP的配置决定其外观和行为的默认值。可使用“选项”对话框设置:单击“工具”菜单下的“选项”,打开其对话框,选择选项卡。选项共12个,分别是:显示、常规、数据、远程数据、文件位置、表单、项目、控件、区域、调试、语法着色和字段映像。均用交互方式查看和设置。也可以用set命令设置。3.修改现有工具栏击“显示”菜单,选“工具栏”,弹出其对话框。单击“定制”按钮,弹出“定制工具栏”对话框。向要修改的工具栏上拖放新图标按钮可增加新工具。把某图标拖到工具栏外可删除该工具。单击“定制工具栏”对话框上的“关闭”按钮。7/17 1.使用“选项”对话框在区域选项卡中设置日期时间显示方式。设置默认目录选“文件位置”卡,选“默认目录”,按“修改”,出现“更改文件位置”对话框,选中“使用默认目录”激活“定位默认目录”,键入或选好路径后按“确定”。在“文件位置”卡中,选“帮助文件”,击“修改”。通过“更改文件位置”对话框指定文件。击“确定”。如果已安装MSDN,则帮助的默认行为是调用Msdnvs98.col。如果该文件不存在,则将默认使用Foxhelp.chm。设置默认帮助文件设置日期和时间显示格式8/17 2.保存设置VFP配置修改既可以是临时的,也可以是永久的。临时设置保存在内存中,本次有效,退出时释放。永久设置保存在Windows注册表中,作为以后再启动的默认设置。保存为本次有效在“选项”对话框中选择各项设置后,单击“确定”按钮,关闭“选项”对话框。保存为默认设置设置更改后,“设置为默认值”按钮被激活,单击之,再单击“确定”按钮,关闭“选项”对话框。9/172.3 项目管理器处理数据和对象的组织工具,提供了便利的工作平台。一可用简便的、可视化的方法来组织和处理一切文件。二可将应用系统编译成一个应用文件或可执行文件。2.3.1 创建项目1.创建项目击“文件”菜单,选“新建”。选“项目”,击“新建文件”图标。输入项目名称,选择文件夹。单击“保存”按钮。打开:击“文件”,选“打开”或击工具栏的“打开”钮。在“文件类型”中选“项目”。双击项目名或选后按“确定”。关闭:单击项目管理器右上方的“关闭”按钮。2.打开和关闭项目10/173.各类文件选项卡“数据”选项卡包含数据库、自由表、查询和视图。”文档”选项卡包含表单、报表和标签。“类”选项卡显改自己创建的要修改的类“代码”选项卡三大类程序.prg文件、函数API Libries和.app文件。“其他”选项卡包括文本文件、菜单文件和其他文件,如位图文件.bmp、图标文件.ico等。11/17共有6个选软项卡,其中“数据”、“文档”、“类”、“代码”、“其他”5个选项卡,用于分类显示各种文件,“全部”选项卡用于集中显示该项目中的所有文件。选项卡为数据提供了一个组织良好的分层结构视图,如果某类型数据项有一个或多个数据项,则其标志前有个加号。单击加号可查看列表,单击减号可折叠列表。2.3.2 使用项目管理器在项目管理器中,用户可以通过可视化的直观操作在项目中创建、添加、修改、移去和运行指定的文件。1.创建文件定类型,击“新建”命令,打开相应设计器创建新文件。2.添加文件选类型,击“添加”按钮,在“打开”对话框中选择要添加的文件,击“打开”对话框的“确定”。4.移去文件选文件,击“移去”按钮或从“项目”菜单中选择“移去文件”命令,系统将出现提示框。击“移去”则从项目中移去,该文件仍存在;击“删除”则移去且删除文件。5.其他按钮“浏览”:仅当选定表时用。“关闭”与“打开”:选定库时用。“预览”:打印预览用。“运行”:选查询,表单,程序时用。“连编”:连编一项目或应用程序 3.修改文件选文件,击修改或选择项目菜单的“修改文件”命令,打开相应的设计器,修改文件。12/172.3.3 定制项目管理器 移动和缩放将鼠标指针放置在窗口的标题栏上拖拽鼠标即可移动项目管理器窗口的位置。将鼠标放置在窗口顶端、低端、两边或角上,拖动鼠标便可以扩大或缩小窗口的尺寸。折叠项目管理器单击右上角的 按钮项目管理器窗口变为折叠状态,窗口仅显一个选项卡,不显命令按钮,同时 变成 ,称为“还原”按钮。单击之,则窗口展开还原为正常界面。拆分项目管理器若要还原拆分,可单击选项卡上的“关闭”按钮,也可用鼠标将其拖回。单击 折叠项目管理器,选定一个选项卡,将其拖离。此时选项卡上出现图钉图标,单击之,则显示在顶层。再单击,取消顶层显示。停放项目管理器将项目管理器拖到VFP主窗口顶部。停放后变成了窗口工具栏的一部分,不能将其整个展开,但是可以单击每个选项卡来进行相应的操作。可以从中拖开选项卡。13/172.4VFP向导、设计器、生成器简介Vvisual FoxPro 6.0提供了许多真正面向对象的程序设计工具,主要是各种向导、设计器和生成器,本节将简要介绍这些工具的功能、使用原则及相关知识,具体的使用方法则在以后各章节中再予以详述。2.4.1VFP 的向导 向导是一种交互式程序,通过用户在一系列向导屏幕上回答问题或选择选项,帮助用户快速完成一般性的 任务,自动生成执行任务的程序。VFP提供向导20多个,常用的有创建表单、编排报表、建立查询、制作图表、生成透视表、生成交叉表以及在Web上按HTML格式发布等。14/17 1.启动向导项目管理器-类型“新建”“新建XX”“XX向导”。“文件”“新建”“新建”对话框“新建”按钮类型向导 新建工具钮在“工具”菜单中选择“向导”子菜单。单击“工具栏”上的“向导”图标按钮。2.使用向导依次回答问题,单击“下一步”。操作中出现错误或想法变化,击“上一步”修改。中止操作击“取消”。遇困难按F1。最后提供标题,满意击“完成”。如某步击“完成”,则用默认值。3.修改用向导创建的项用相应的设计器打开修改,不能用向导打开用向导建立的文件。但是可以在退出向导之前预览向导结果并做适当的修改。15/172.4.2VFP的设计器VFP的设计器是创建和修改应用系统各种组件的可视化工具。利用各种设计器使得管理数据变得轻而易举,缩短开发周期、提高开发效率。1.各种设计器包括表、数据库、报表、查询、视图、表单、菜单、数据环境、连接设计器。2.打开设计器有三种方法:在“项目管理器”下,选相应选项卡,选类型,击“新建”,再击“新建XX”对话框中的新建按钮。从“文件”菜单中选“新建”或击工具上的“新建”钮,选类型,击“新建文件”钮。从“显示”菜单中打开。16/172.4.3VFP的生成器生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改。一般在如下5种情况下启动生成器:用表单生成器来创建修改表单。对表单的控件使用相应生成器。用自动格式生成器设置控件格式。使用参照完整性生成器。使用应用程序生成器生成应用程序。1.各种生成器包括表单、表格、编辑框、列表框、文本框、组合框、命包括表单、表格、编辑框、列表框、文本框、组合框、命令按钮、选项按钮、自动格式、参照完整性、应用程序令按钮、选项按钮、自动格式、参照完整性、应用程序生成器 2.启动生成器以后相应章节介绍。17/17第三章第三章数据与数据运算数据与数据运算返 回 3.1 常量与变量 3.2 表达式 3.3 常用函数第三章 数据与数据运算我们处理的数据,有存在表中的数据,还有存在内存中的数据。本章我们只谈存在内存中的数据。根据计算机处理数据的形式来划分,可分为:常量、变量、表达式和函数四种。常量和变量是数据处理和数据运算的基本对象,而表达式和函数则体现了语言对数据进行运算和处理的能力及功能。3.1常量与变量每个数据都有一定的类型,数据的类型决定了数据的存储方式和运算方式,所以在定义常量和变量时也必须指明其类型。他们的类型包括字符型、数值型、货币型、逻辑型、日期型和日期时间型6种。1/113.1.1常量常量用以表示一个具体的、不变的值。不同类型的常量有不同的书写格式和不同的取值范围。1.数据型常量数据型常量即常数,用来表示数量的大小,由数字09、小数点和正负号构成。若整数部分不为0,则首位不可为0。可以使用科学记数法书写。取值范围为:-1019 1020 。例如:12、3.45、-6.47、5.87E12(5.871012)、1.6E-13(1.610-13)。2.货币型常量用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的“$”。在存储和计算时,采用4位小数,多余小数位自动四舍五入。不能用科学记数法,在内存中占8个字节。取值范围:922337203685477.5807 922337203685477.58072/113.字符型常量字符型常量也称为字符串,其表示方法是用两个成对出现的半角的单引号、双引号或方括号把字符串夹起来。这里的单引号、双引号和方括号不作为常量本身的内容,只规定常量的起止界限,所以叫做“定界符”。不包含任何字符的字符串叫“空串”(“”),它和包含空格的字符串(“”)是不同的。4.日期型常量基本知识定界符是一 对花括号,内含年月日,用“/”、“-”、“.”和空格分隔,“/”为默认分隔符。传统格式 mm/dd/yy和严格格式 yyyy-mm-dd 占8字节。取值范围:0001-01-019999-12-31。严格格式可在任何情况下使用,传统格式只在set strictdate to 0状态下使用。3/114.影响日期格式的设置命令Set mark to 分隔符 设置分隔符(-/.空格),默认“/”Set date to 短语 设置日期格式,默认AMERICAN短语设置 日期格式 短语设置 日期格式AMERICAN mm/dd/yy ANSI yy.mm.ddBRITISH/FRENCH dd/mm/yy GERMAN dd.mm.yyITALIAN dd-mm-yy JAPAN yy/mm/ddUSA mm-dd-yy MDY mm/dd/yyDMY dd/mm/yy YMD yy/mm/ddSET CENTURY ON|OFF|TO 世纪值 ROLLOVER 年份参照值 用于确定世纪的显示与否 ON:指定在10位日期格式中,用四位数字表示年。OFF:指定在8位日期格式中,用两位数字表示年。在进行日期计算时假定它表示的是二十世纪。To选项确定用量数字表示的年份所处的世纪。Set strictdate to 0|1|2 用于设置是否检查日期格式 0:不检查 1:检查,默认值 2:检查且影响TOD()/CTOT()格式4/115.日期时间型常量包括日期和时间两部分内容:,。日期部分也分严格和传统两种;时间部分格式为:hh:mm:ssa|p 分别表示时、分、秒、上午、下午。上/下午也可用默认的AM/PM表示。若无A/P,则为24时制该型用8字节存储。6.逻辑型常量逻辑型数据只有逻辑真和逻辑假两个值。逻辑真的常量表示形式有:.T.、.t.、.Y.、.y.。逻辑假的常量表示形式有:.F.、.f.、.N.、.n.。前后的半角英文句号是必不可少的,要注意。逻辑性数据只占用一个字节。日期型常量举例Set cent onSet mark toSet date ymd?2003-08-21 2003/08/21set cent offset cent offset mark to“.”set mark to“.”set date set date mdy?2003-08-2003-08-212108.21.03Set strict to 0?2003-08-21,08.21.0308.21.03 08.21.03Set mark to“;”?2003-08-21,08.21.0308;21;03 08;21;035/113.1.2变量变量是能够随时更改的量。VFP的变量分为字段变量和内存变量两大类。字段变量就是表中的字段名;内存变量是内存中的一个存储区域,变量值就是存放在这个区域中的数值。变量的类型取决于变量值的类型。内存变量的类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)。1.简单内存变量每一个变量都有一个名字,可以通过变量名访问变量。命名规则是:以字母(汉字)或下划线开头,由字母、数字、下划线组成,不超过128个字符,不为系统保留字。如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在内存变量名前加前缀M.(或M-),否则访问同名字段变量。2.数组 数组是内存中连续的一片存储区域,由一系列元素组成,每个数组元素可通过数组名和相应的下标来访问。每个元素都相当于一个简单变量,可分别赋值。赋值、使用前必须先说明,格式是:dimension(,),或declare(,),。6/113.1.3内存变量常用命令有关内存变量的命令很多,例如定义、赋值、显示、清除、保存至文件、从文件中还原、作用域选择和变更隐藏、与字段变量的交换等。现在只介绍最常用的命令。1.内存变量的赋值给简单内存变量赋值不必事先定义,给数组元素赋值必需先定义。赋值命令格式是:=Store to 格式1一次只能给一个变量赋值,格式2一次能给几个变量赋值.可通过重新赋值来改变内容和类型 2.表达式值的显示格式1:?格式2:?格式1表明在下一行起始处开始输出,若表达式为空,则输出一空行。格式2表明在当前光标处开始输出。7/113.内存变量的显示list memory liketo printer|to file display memory liketo printer|to file 格式1连续显示,格式2分屏显示符合条件的所有变量名、作用域、类型和取值。通配符包括*和?,*表示任意多个字符,?表示任意一个字符。Like 短语表示只显示与含通配符的名称骨架(以后简称骨架)匹配的内存变量。to printer 和to file 子句用于在显示的同时送往打印机,和存入给定文件名的文本文件中,文件的扩展名是.txt。4.内存变量的清除Clear memory 清除所有内存变量。Release 清除表内的。release all extended在人机对话时同,在程序中需加extended,否则不能清除公共内存变量。release all like|except选like短语清除匹配的,选except短语清除不匹配的内存变量。Release Release rili:srili:s 释放释放 extend extend ikstendikstend 延伸延伸 except except ikseptiksept 除除之外之外8/113.2表达式3.2.1数值、字符与日期时间表达式1.数值表达式由算术运算符将数值型数据连接起来形成,结果仍是数值型数据。优先级运算符 说 明 1()形成子表达式 2*或乘方运算 3*/%乘、除、求余运算 4+-加、减运算 2.字符表达式由字符串运算符将字符型数据连接起来形成,结果仍是字符型数据。运算符有“+”、“-”,优先级相同。+:前后两字符串首尾连接为新串。-:前后连接后并将前字符串尾部空格移到合并后的新字符串尾部。例如:a=“abc“,b=“def”?a+b,a-b abc def abcdef 格式结果及类型+指定日期若干天后的日期D。+指定日期若干天后的日期D。-指定日期若干天前的日期D。-两个制定日期相差的天数D。+指定时间几秒后的日期时间T+指定时间几秒后的日期时间T-秒数指定日期时间几秒前的日期时间T。-日期时间两个指定日期时间相差的秒数N。3.日期时间表达式运算符也有“+”、“-”两个。不能任意组合,合法的表达式格式如下表:是由常量、变量和是由常量、变量和 函数通过运算符连接起来的式子。函数通过运算符连接起来的式子。9/113.2.2关系表达式也称为简单逻辑表达式,它由关系运算符将两个对象连接起来形成。即其格式为:关系运算符包括:、=、=、=、#、!=和$。含义为小于、小于等于、大于、大于等于、等于、精确等于、不等于和含于。其优先级相同,运算结果都是逻辑型数据。=、$只用于字符型数据。2.设置字符的排序次序自左向右逐个比较,一旦发现两个对应字符不同,就根据这两个字符确定排序先后。通常是按ASCII码值,即按Machine(机器)排序。次序依次是:空格数字大写字母小写字母汉字,一 级汉字的顺序与拼音同。也可选择PinYin(拼音)序列,西文次序是:空格数字小写字母大写字母。还可选择 Stroke(笔画)序列。设置方法分对话方式和命令方式两种:(1)对话方式在“工具”菜单下选“选项”,打开选项对话框。单击“数据”选项卡。从右上方的“排序序列”中选择“machine”、“pinyin”或“Stroke”。单击“确定”。(2)命令方式格式:set collate to 次序名次序名:Machine:ASCII 码 Pinyin:按拼音排序。Stroke:按笔画排序。1.关系表达式10/113.2.3逻辑表达式逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符以优先级排列依次:.not.(逻辑非),.and.(逻辑与),.or.(逻辑或)。两端圆点可省略,非可写做!运算如右运算优先级:圆括号算术字串日期关系逻辑x h!x!hX.and.hX.or.h.T.T.F.F.T.T.T.F.F.T.F.T.F.T.T.F.F.T.F.F.T.T.F.F.3.字符串精确比较与EXACT设置用双等号运算符=比较字符串时,只有当二者完全相同时,结果才为真。用单等号运算符=比较字符串时,结果与EXACT设置有关。设为off(默认),以右边字符为准,右边字符结束,比较即终止。设为on时,先在较短字串后添空格使二者长短一致,再行比较。表达式=off=on=“abc”“abc”.T.T.T.“ab”“abc”.F.F.F.“abc”“ab”.T.F.F.“abc”“ab“.F.F.F.“ab“ab”.T.T.F.“”“ab”.F.F.F.“ab”“”.T.F.F.11/113.3常用函数函数是用程序来实现的一种数据运算或转换。它往往需要若干个自变量(运算对象),但只能有一个运算结果(函数值或返回值)。可以通过函数名加一对圆括号调用,自变量放在圆括号内。函数调用可以出现在表达式或命令中。根据函数值和功能不同,可分为数值函数、字符处理函数、日期类函数、数据类型转换函数和测试函数5类。VFP提供了200多种函数,功能强大。1/73.3.1数值函数指函数值为数值的一类函数函数格式功能示例Abs()返回 表达式的绝对值?Abs(-3)3Sign()符号函数?Sign(9),sign(-8)1 -1Sqrt()求表达式的算术平方根?Sqrt(2)1.4142PI()求圆周率的值?PI()3.14159265Int()返回表达式整数部分的?Int(-3.1),int(3.1)3 3 Ceiling()返回不小于表达式的最小整数?Ceil(5.8),ceil(-5.8)6 -5Floor()返回不大于表达式的最大整数?floor(5.8),floo(-5.8)5 -6Round(,)返回含表达式2位小数的四舍五入值?round(45.34,1)45.3?round(45.34,-1)50max(,)返回所有表达式中的最大值?Max(1,2,3,4.1)4.1min(,)返回所有表达式中的最小值?Min(1,2,3,4.1)1mod(,)返回表达式1除以表达式2的余数,余数的符号与除数相同?Mod(10,3),mod(-10,3)1 2Asc()返回首字符的ascii码?asc(A),asc(0)65 48 3.3.2字符函数(指自变量是字符型数据的函数)格式值类型名称及功能说明及示例Len(c1)n求字符串长度字符个数。?len(“中文VF”)6Lower(c1)C大小写转换(变为小写)?lower(“FoxPro2.0”)foxpro2.0Upper(c1)C大小写转换(变为大写)?upper(“FoxPro2.0”)FOXPRO2.0Space(n)C空格字符串生成生成由n个空格所组成的字符串Trim(c1)C删除前后空格(删尾)“ab c ”ab c”Ltrim(c1)C删除前后空格(删前)“ab c ”ab c ”Alltrim(c1)C删除前后空格(删前后)“ab c ”ab c”Left(c,n)C取子字串(左边n个)?left(“abc”,2)abRight(c,n)C取子字串(右边n个)?Right(“abc”,2)bcSubstr(c,n1,n2)C同上(左n1起n2个N2略到最后)?Subs(”abc”,2,1)bOccurs(c1,c2)N子串出现次数?occu(”a”,”abcdaa”)3At(c1,c2,n)N子串位置(第n次,默1)?at(“fox”,”VFoxpro”)0Atc(c1,c2,n)N同上,但不区分大小写?atc(“fox”,”VFoxpro”)2Stuff(c1,n1,n2,c2)C子串替换。N1起位n2长?stuff(“a boy.”,3,3,”Work”)a Work.Chrtran(c1,c2,c3)C字符替换?chrtran(ABAC,”AB”,”x1”)x1xCLike(c1,c2)L字符串匹配,只c1可用通配符?like(“a*”,”ab”),like(“ab?”,”ab”).T.F.3.3.3日期和时间函数(自变量一般是日期时间型)格式值型名称示例Date()D系统日期?date()09/03/03Time()C系统时间?Time()21:13:18Datetime()T系统日期时间?Datetime()07/18/01 04:59:05Year(d|t)N年份?year(date()2003Month(d|t)N月份(1-12)?month(date()9Day(d|t)N日数(1-31)?day(date()13Hour(t)N时(0-23)?hour(datetime()15Minute(t)N分(0-59)?Minute(datetime()45Sec(t)N秒(0-59)?Sec(datetime()164/73.3.4数据类型转换函数将某一种类型的数据转换成另一种类型的数据。格式值型名称示例Str(n1,n2,n3)C数值换为字串?Str(-123.45,6,1)-123.5Val(c1)N字串换为数值?Str(“-123.5”)-123.5Ctod(c1)D字串换为日期?ctod(“2003/03/18”)2003/03/18Ctot(c1)T字串换为日期时间?Ctot(“2003/03/18”-time()2003/03/18 03:12:12 PMDtoc(d|t,1)C日期换为字串?dtoc(date()09/03/03Ttoc(t,1)C日期时间换为字串?ttoc(datetime()09/03/03 03:12:12 PM&.替换出字符型变量的内容Xm=“abc”y=“Xm”?Y,”=“,&y Xm =abc宏代换知识其功能是先替换,再执行。如果该函数与其后的字符无明确分界,则要用“.”作函数结束标识。作用很大,比如:A=“123”B=“456”?&a.+&b 替换为:?123+456结果:5795/73.3.5测试函数测试操作对象状态格式值型名称功能示例Between(e1,e2,e3)L值域测试。E1是否在e2,e3间?between(3,1,5).T.Isnull(e)L空值(不确定值null)测试。是否为nullX=.null.?snull(x).T.Empty(e)L“空”值测试。结果是否为空。数值类为0,字符类为空和空格,日期类为空,逻辑型为假均为真?Empty(0).T.?Empty(“).T.?Empty(ctod().T.Vartype(e,l)C数据类型测试。返回代表大写字母,若e是null,则根据l返回值,为假或省略,返回X,否则返原类型X=aaa;Y=10;x=.null.;Z=$1?Vartype(x),vartype(x,.t.)X C?Vartype(y),vartype(z,.t.)N YIif(l1,e1,e2)依条件测试取值。L1为真取e1,否则返回表达式e2的值。?Iif(35,3,5)5?Iif(王“李”,5,8)86/7前三章作业 习题一(p22)一、1 4 5 6 8二、2 3 4 6 8 习题二(p52)一、1 2 5 6 8二、2 3 4 6 8 习题三(p79)一、1 3 4 7 9二、1 2 3 47/7第四章 VFP数据库及其操作返 回 4.1 VFP数据库及其建立 4.2 建立数据库表 4.3 表的基本操作 4.4 索引 4.5 数据的完整性 4.7 多个表同时使用 4.8 排序 4.6 自由表第四章 数据库及其操作 4.1数据库的建立 4.1.1基本概念现在的数据库扩展名是.dbc,与之配套的还有扩展名是.dct和.dcx的备注文件和索引文件。它可以包括表、表间联系和其他对象。4.1.2建立数据库有三种方法:在项目管理器中建立数据数据库新建新建数据库保存通过“新建”对话框建立文件新建数据库新建数据库保存工具栏新建使用命令交互建立Create database 数据库名|?1/74.2建立数据库表分命令方式和在数据库中建立。命令方式是:Open database 库名|?Create 表名4.2.1在数据库中建立在数据库设计工具栏中击“新建表”工具或在空白区右击,弹出快捷菜单,选“新建表”,击“新建表”按钮,在表设计器中依次输入或选择,完成时击“确定”。当询问是否立即输入记录时,根据需要,选择“是”或“否”。表的字段名字段名即关系的属性名或表的列名。长度:自由表110,库表1128个字符规则:1.必须以字母或汉字开头 2.由字母、汉字、数字和下划线组成 3.中间不能含空格2/7字段类型和宽度可选择的类型和宽度如下表:类型宽度小数位数说明字符型可选单位:字符货币型8数值型可选可选宽度包括小数点和小数位浮点型可选可选同上,长度在表中最长可达20位日期型8日期时间型8双精度型8可选整型4逻辑型1备注型4存不定长字符型文本如简历等通用型4存电子表、文档、图片等ole对象字符型(二进制)可选同“字符型”,但当代码页更改时自赋值不变备注型(二进制)4同“备注型”,但当代码页更改时自赋值不变表的空值NULL选项表示是否允许字段为空值。空值就是缺值或非确定值。它与空(或空白)字符串、数值0等都具有不同的含义。允许暂缺的字段值,需要与0区别的“0”值字段应允许为空值,而作为关键字的字段不能允许为空值。库表的显示组框格式:实质上是一个输出掩码,决定了输出风格。输入掩码:用以限制或控制用户输入的格式。标题:用于字段显示时的标题,可使界面更友好,编程更简捷。字段注释:便于日后或他人维护数据库。规则:有效性表达式,以判断是否有效。信息:当有效性表达式为假时显示的信息。4/74.6自由表不属于数据库的表就是自由表。Dbase、foxbase、早期foxpro的数据库(.dbf)都是自由表。如果没有打开数据库,创建的表也是自由表。把数据库中的表移出,也成为自由表。打开“表设计器”建立自由表方法:在项目管理器中,选“数据”,“自由表”,“新建”。确认没打开数据库,选“文件”,“新建”,“表”,“新建文件”。确认没打开数据库,用create命令。4.6.1数据库表与自由表相同:建法、用法、命令几乎完全相同区别:1、数据库表能使用长表名,自由表不能。2、数据库表字段名长=128,自由表长=10。3、库表字段能指定标题、默认值和输入掩码,自由表不能。4、库表支持主关键字、参照完整性和表间联系。自由表否。5、库表支持insert、update和delete触发器。自由表否。1/44.6.2将自由表添加到数据库在项目管理器中,将要添加自由表的数据库展开至表,并选择“表”,单击“添加”钮,从弹出的“打开”对话框中选择要添加的表。在“数据库”菜单“添加表”使用命令:Add table 表名|?name 长表名把一个自由表添加到数据库后就不再是自由表了。4.6.3库表移出成为自由表表利用项目管理器用“数据库”菜单用数据库设计器上右击弹出的快捷键用命令:Remove table 表名|?deleterecycle移出后,主索引、默认值、标题及有关规则都会消失,长表名也不可再用。若再加入仍需重设。2/4建库、表实例1、使用项目管理器例:建VF学习库vfxx建学生表xs(xh C6,xm C8,xb C2,bj C1,jg C14,cs D,bz M,zp G,p1 N3 null,p2 N3 null,p3 N3 null,p4 N3 null,qz N3 null,qm N3 null);各科成绩表gkcj(xh C6,kc C2,cj N3 null);课程名表kcm(kc C2,kcm C10);班级表bj(bj C1,mc C7,js C5,bz C6,bf C6,xx C6,fd C6,bg C5)。2、使用命令方式例:建订货管理库建表:仓库(仓库号 C3,城市 C4,面积 N3);职工(仓库号 C3,职工号 C2,工资 N4);订购单(职工号 C2,供应商号 C2 null,订购单号 C4,订购日期 D null);供应商(供应商号 C2,供应商名 C12,地址C4)(数据在p116)3、建自由表试题st(章 C2,节 C2,答对次数 I,选择次数 I,难度系数 N4,2,试题 M,答案 C1,选择 C1,已选 L,新选 L);领导ld1(xm C6,jg C8,cs D,wh C6,xx C12,zw M)5/74.1.3使用数据库三种方法在项目管理器中打开选择数据库的名称,则自动打开通过“打开”对话框打开文件打开文件类型:数据库文件名确定选方式工具打开使用命令打开Open database 库名|?exclusive|sharednoupdatevalidate 独占 共享 只读 检查4.1.4修改数据库三种方法从项目管理器中打开数据库设计器库名修改从“打开”对话框打开数据库设计器文件打开文件类型:数据库文件名工具打开使用命令打开数据库设计器Modify database 库名|?NOWAITmodifym difai更改,修改6/74.1.5删除数据库从项目管理器中删库名移去移去 删除使用命令删除Delete database 库名|?deletetablesrecycle删除所含表 可恢复4.2.2修改表结构项目 表 数据工作期 属性 修改命令:modify structure数据库设计器:表名上右击,快捷菜单中选“修改”。修改字段:直接进行添加字段:光标移最后,输入插入字段:定位光标,击“插入”删除字段:定位后,击“删除”。复制表结构命令Copy structure to 7/74.3表的基本操作为了系统地掌握数据库表,提高素质,我们对教程的内容进行了必要的补充。除教课包括的添加、删除、修改、查看等内容外,又补充了打开、输入、关闭和使用数据工作期等内容。这些内容均以红色表示,以与课本内容区别。增1:表的打开项目管理器菜单:文件打开工具栏菜单:窗口数据工作期命令:use 表名 增2:表的关闭关闭时自动存盘。关闭
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!