首页 vf教程

vf教程

举报
开通vip

vf教程nullnull目 录目 录第一章 Visual FoxPro基础 第二章 VF 的系统初步第三章 数据与数据运算第四章 VF数据库及其操作第一章 Visual FoxPro基础第一章 Visual FoxPro基础 本章要点: 计算机数据管理的发展 数据库系统基本概念 数据模型 关系运算 数据库设计步骤 Visual FoxPro系统概述null引入:为什么要学数据库管理? 计算机应用领域 任一企事业单位都涉及到数据处理,称“五M管理”: 人 man 财 ...

vf教程
nullnull目 录目 录第一章 Visual FoxPro基础 第二章 VF 的系统初步第三章 数据与数据运算第四章 VF数据库及其操作第一章 Visual FoxPro基础第一章 Visual FoxPro基础 本章要点: 计算机数据管理的发展 数据库系统基本概念 数据模型 关系运算 数据库设计步骤 Visual FoxPro系统概述null引入:为什么要学数据库管理? 计算机应用领域 任一企事业单位都涉及到数据处理,称“五M管理”: 人 man 财 money 物 material 设备 machine 方法 methodology 制度 关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载 等 科学计算 过程控制 数据处理 _占80%计算机处理份额数据与数据处理 数据与数据处理 1.数据:是描述客观事物的符号 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ,是用物理符号记录下来 的可以鉴别的事物特性。包括:数字、文字、图形、 图像、动画、声音等。 2.信息:是数据经过加工处理后的有用结果。或是能表示一定 含义的数据。 例: 数据描述: 王阳,9098135,男1980,江苏,计算机系,1998。 经过简单的推论后,可得出这样的信息: 王阳是位男大学生,学号为9098135,1980年出生,江苏 人,1998年考入计算机系。 3.数据处理:将数据转换或信息的过程。 null数据处理内容包括: 数据收集 → 数据整理(鉴别) → 存储数据 → 使用数据(计算、统计、查询等) →维护数据 故通过数据处理可以获取信息,然后对信息进行解释、推论、归纳、分析、综合等而产生决策。 null在一个企事业单位中,数据的处理与作用呈金字塔形,如下图所示:高 层 中 层 基 层战略层 战术层 数据管理任务操作层 null人工管理 20世纪50年代中期以前 程序数据特点:数据与程序不具有独立性,一组数据对应一组程序,数据不能长期保存。计算机数据管理的发展阶段计算机数据管理的发展阶段文件系统 20世纪50年代后期至60年代中期 程序数据特点:数据与程序不具有独立性,一组数据对应一组程序,数据不能长期保存。数据库系统 20世纪60年代后期至今 应用程序1应用程序2应用程序3数据库管理系统DBMS数据库 DataBasenull分布式数据库系统(采用C/S<客户机/服务器>结构) 90年代:面向对象的数据库系统 基本 思想 教师资格思想品德鉴定表下载浅论红楼梦的主题思想员工思想动态调查问卷论语教育思想学生思想教育讲话稿 :用户程序不应与面向机器的结构如字段和记录直接打交道, 而应该直接对对象和建立在对象之上的操作进行处理。 银行银行银行商店商店商店银行银行银行总库总库物理分布,逻辑集中 物理分布,逻辑分布 数据库系统 数据库系统 1.数据库(DB—Database): ①定义:是存储在计算机存储设备上,结构化的相关数 据集合。它能以最佳的方式、最少的重复为 多种应用服务 ②特点: 1)数据的共享性: 2)独立性: 3)数据冗余(重复)少 null2.数据库应用系统 定义:指系统开发人员利用数据库系统资源开发出 来的,而向某一类实际应用的应用软件系统。 如:劳资系统、人事管理系统、学生信息系统、员工培训系统、物资管理系统、教学管理系统、维修系统、客户跟踪系统等。 null3.数据库管理系统(DBMS—Database Management System) ①定义:是用来管理数据库数据的大型程序,是用户与数据库的接口。 ② 说明: 1)DBMS 提供各种命令对DB进行操作,可以帮助用户完成数据库的建立、询问、显示、修改、打印报表等工作。 2)DBMS包括数据描述语言及其翻译程序、数据操纵语言及其编译程序、数据库管理例行程序。 3)通俗地说:数据库是存放数据的地方,而DBMS是指在数据库的环境下,如何存取数据等多种管理数据库的功能。 null4.数据库系统 ①定义:指引进数据库技术后的计算机系统现有组织 地,动态地存储大量相关数据提供数据处理 和信息资源共享的便利手段 ②组成有五部分:硬件系统、数据库集合、DBMS 及相关软件、数据管理员和用户。 null数据库系统如图1-1所示。图1-1 数据库系统组成用户1用户2用户n. . .数据库 管理系统数据库计算机软硬件系统DBMSDB+DBS数据模型数据模型关系模(式)型:用二维表的形式表示实体和实体 间联系的数据模型。 关系: 一张二维表(.dbf) 数据库 .dbc 元组: (记录):对应二维表中的每一行。 属性: (字段或数据项):对应二维表中的每一列 称为属性。 域: 属性的取值范围。 关键字:在表中其值能够惟一地标识一个元组。null外部关键字:如 果表中的一个字 段不是本表的主 关键字或候选关 键字,而是另外 一个表的主关键 字或候选关键 字,这个字段 (属性)就称为 外部关键字。学生表课程表选课表S_NOC_NOSC_NO S_NO(FK) C_NO(FK)null关系的特点: 关系必须规范化:每个属性必须是不可分割的数据单元,即 表中不能再包含表。 在同一个关系中不能出现相同的属性名。VF中不允许同一个 表中有相同的字段名。 关系中不允许有完全相同的元组,即冗余。 在一个关系中元组和属性列的次序无关紧要。姓名实发工资基本工资职称应发工资应扣工资奖金津贴房租水电托儿费null数据库系统的层次示意图及特点。数据库系统的特点: (1) 实现数据共享,减少数据冗余。 (2) 采用特定的数据模型 (3) 具有较高的数据独立性 (4) 有统一的数据控制功能 操作系统硬件数据库集合数据库管理系统用户DBAnull数据模型及实体之间联系的种类 数据模型:是数据库管理系统用来表示实体及实体间联系的 方法。有且仅有一个结点无双亲,这个结点即树的根。 其他结点有且仅有一个双亲 可以有一个以上的结点无双亲。 至少有一个结点有多于一个的双亲。用二维表结构表示实体与实体之间的联系的模型。 层次模型: 网状模型: 关系模型:关系运算关系运算关系运算: 传统的集合运算: 并、交、差 专门的关系运算 选择:从关系中找出满足给定条件的元组的操作 投影:从关系模式中指定若干个属性组成新的关系 联接:将两个关系模式拼接成一个更宽的关系模 式,生成的新关系中包含满足联接条件的 元组。 自然联接:去掉重复属性的联接。数据库设计步骤数据库设计步骤1、需求分析 2、确定需要的表 3、确定所需的字段 4、确定联系 a)一对一联系 1:1(一个班级只有一个班长,一个班长不能同时在其他班级再兼任班长) b)一对多联系 1:n(一个部门有多名职工,而一名职工只在一个部门就职,即只在一个部门) c)多对多联系 n:m(一个学生可以选修多门课程,一门课程由多个学生选修) 5、设计求精 注:VF6.0是一个32位的ODBC(开放数据库连接)第二章 VF 的系统初步第二章 VF 的系统初步本章要点: Visual FoxPro的运行环境要求 Visual FoxPro的安装和启动方法 Visual FoxPro6.0的用户界面和开发环境 项目管理器的建立及其选项卡使用 Visual FoxPro各种生成器、设计器和向导第二章 VF 的系统初步第二章 VF 的系统初步一、计算机中演示VF的安装过程 VF对计算机软、硬基本配置要求如下: (1)处理器:486DX/66MHZ处理器,推荐使用奔腾 或更高档处理器的PC兼容机。 (2)内存储器:16MB以上的内存,推荐使用24MB 内存。 (3)硬盘空间:典型安装85MB,最大安装90MB。 (4)需要鼠标、光驱、推荐使用VGA或更高分辩率 的监视器。 (5)操作系统:VF是32位产品,需要在win98或 winNT4.0或更高版本上运行。null二、启动VF的几种方法 (1) 开始程序 VF (2) 创建快捷方式 (3) 通过路径 (4) 资源管理器 (5) 开始运行路径注:3~5用户必须知道VF的安装路径。null三、VF的用户界面 标题栏、菜单栏、工具栏、主窗口、命令窗口、状态栏。 1、菜单操作 鼠标(单击) 方法: 键盘(快捷键) 光标(上下键) (1)选项颜色暗淡 (2)选项后有省略号… (3)对话框(要求输入信息或作进一步选择) (4)上下文敏感:根据招待的程序不同,菜单也不同。null2、命令窗口操作 显示或隐藏命令窗口 (1)点╳(关闭),窗口à命令窗口(打开 ) (2)常用工具栏(按钮) (3)Ctrl+F4隐藏,Ctrl+F2显示 工作方式: 交互式工作方式: 菜单 命令窗口 程序运行方式:(第七章) null3、工具栏的使用 (1)显示或隐藏 显示工具栏 (2)定制工具栏 显示工具栏 新建(拖动) (3)修改现有的工具栏 显示工具栏 定制null四、项目管理器 1、创建项目 新建à项目à起名 CREATE PROJECT <项目名> 2、打开和关闭 打开:文件à打开à项目名 关闭:╳(单击) 3、定制项目管理器 (1)移动、缩放和折叠 (2)拆分 (3)停放注:在关闭空项目时,VF会显示提示框(删除或保持)null4、创建数据库 数据(选项卡) 数据库 新建 5、添加文件 6、修改文件 7、移去文件 注:在项目管理器中新建的文件会自动包含在该项目文件中,而用文件新建数据库创建的文件则不属于该项目(在项目之外)注:移去表示文件仍存在于原目录中,删除=移去+磁盘上删除null8、添加说明 (1)选中右键编辑说明 (2)选中项目(菜单)编辑说明 五、VF的配置 工具(菜单)  选项  显示 文件位置注:若不将设置保存为默认值,则下次系统会还原为原始值。null六、VF的向导、设计器、生成器 1、向导:是一种交互式程序,用户在一系列向导屏幕 上回答总是或者选择选项,向导会根据回答 生成文件或者执行任务,帮助用户快速完成 一般性的任务。 2、设计器:(P48)基本工具。 3、生成器:(P49)是带有选项卡的对话框,用于简化 对表单、复杂控件的创建和修改过程。 null七、退出VF的几种方法 1、文件退出 2、点╳ 3、命令窗口:QUIT 4、Alt+F4 5、双击狐狸头。 第三章 数据与数据运算第三章 数据与数据运算本章要点: Visual FoxPro的各种类型常量的书写格式变量的种类和类型 内存变量常用命令 数值、字符与日期时间表达式 关系表达式 逻辑表达式 常用函数:字符处理函数、数值计算函数、日期时间函数、数据类型转换函数和测试函数第三章 数据与数据运算第三章 数据与数据运算 将各种形式的数据经过数字化存入计算机,都须确定其: 型:类型 数据 值:取值 在VFP中,常量、变量、函数和表达式的类型包括6种:字符 型、数值型、货币型、逻辑型、回期型、日期型、日期时间型。 常量和变量常量和变量常量 定义:在程序运行过程中保持不变的量 。不同类型的常 量有不同 的书写格式。 1、字符型(Character)1、字符型(Character) 表示方法是用半角单引号、双引号或方括号[]扩 起来的容。 (’ ’,“ ”和[]称为定界符)注:定界符只规定常量的类型以及常量的起始和终止界限,它不作为常量本身的内容。且必须要成对匹配,不能一边用单引号而另一边用双引号。若某种定界符本身也是字符串的内容,则需要用另一种定界符为该字符串定界。null例3.1:显示几个字符型常量 在命令窗口键入以下两条命令: ?“计算机”,’123’,[数据],[‘ABX’”abc”] ?? “学习”, ‘字符串’, “”,[表示方法] ?(单问号)的功能:是在下一行显示若干个表达式的值。 ??(双问号)的功能:是在同一行显示表达式的值。 2、数值型常量(Numeric)2、数值型常量(Numeric)组成:由0~9、小数点和正负号。如:12、3.45、-6.78。 为了表示很大或很小的数值型常量,可以使用科学记数法形式。 数值型数据的长度为1~20,内存中用8个字节表示,其取值范围是-0.9999999999E+19~0.999999 9999E+203、货币型(Currency)3、货币型(Currency)用来表示货币值,其格式与数值型常量类似,但要加上一个前置的($)符。 货币数据采用4位小数。若一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。例:$123.456 789->$123.4568 在内存中占用8个字节,取值范围:-922 337 203 685 477.580 7~922 337 203 685 477.580 74、日期型(Date)4、日期型(Date)日期型常量的定界符是一对花括号。花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。系统默认斜杠(/)分隔符。常用的其他日期分隔符有连字号(-)、句点(.)和空格。 日期型常量有两种格式: null①传统的日期格式: (系统默认的日期数据为美国日期格式“月/日/年”(mm/dd/yy),其中月、日、年各为两位数字。) 如:{10/08/01} 对这个日期在不同的设置状态下,计算机会作出不同的解释。2001年10月8(月/日/年)日、2001年8月10日(日/月/年)、2010年8月1日(年/月/日) 注:上面的格式要受到命令语句SET DATE TO 和SET CENTURY设置的影响。 null②严格的日期格式 {^yyyy-mm-dd},用此格式写的日期常量能表达一个确切的日期,它不受SET DATE等语句设置的影响。 注:1)花括号内第一个字符必须是(^) 2)年份必须用4位 3)年月日的次序不能颠倒、不能缺省。{^2003-12-03}  日期型数据用8个字节表示,取值范围是:{^0001- 01-01}~{^9999-12-31} null①、②的区别: 严格的日期格式可以在任何情况下使用,而传统的日期格式 只能在SET STRICTDATE TO 0状态下使用。所以使用严格 的日期格式十分方便。③影响日期格式的设置命令 A)SET MARK TO[日期分隔符] &&用于指定日期分隔符 “-””.”,系统默认 “/” B)SET DATE TO[AMERICAN|ANSI|BRITISH|FRENCH| &&设置日期显示的格式 GERMAN|ITALIAN|JAPAN|USA|MDY|DMY|YMD] null表3.1 常用日期格式短 语短 语格 式格 式AMERICANBRITISH FRENCHITLIANUSADMYmm/dd/yydd/mm/yydd-mm-yymm-dd-yydd/mm/yyANSIGERMANJAPANMDYYMDmm-dd-yyyy-mm-ddyy-mm-dddd.mm.yyyy.dd.mmnullC)SET CENTURY ON/OFF //设置年份的位数ON:4位,OFF:2位(系统默认) D)SET STRICTDATE TO[0|1|2]  //设置是否对日期格式进行检查(传统日期格式) 0表示不进行严格的日期格式检查,目的是与早期Visual Foxpro兼容。 1表示进行严格的日期格式检查,它是系统默认的设置。 2 表示进行严格的日期格式检查,并且对CTOD()和DTOT()函数的格式也有效。 null例3.2设置不同的日期格式 SET CENTURY ON &&设置4位数字年份 SET MARK TO &&恢复系统默认的斜杠日期分隔符 SET DATE TO YMD &&设置年月日格式 ?{^2001-08-26} 2001/08/26 显示: 2001/08/26 null再在命令窗口键入4条命令,并分别回车执行: SET CENTURY OFF &&设置2位数字年份 SET MARK TO “.” &&设置日期分隔符为西文句号 SET DATE TO MDY &&设置月日年格式 ?{^2001-08-26} 显示:08.26.01 null接着在命令窗口键入如下两条命令,并分别回车执行: SET STRICTDATE TO 0 &&不进行严格的日期格式检查 ?{^2001-08-26},{09.22.01} 显示: 08.26.01 09.22.01 在命令窗口键入如下两条命令,并分别回车执行: SET MARK TO “;” &&设置日期分隔符为分号 ?{^2001-08-26},{09.22.01} 显示: 08;26;01; 09;22;01 5.日期时间型(Date Time)5.日期时间型(Date Time)包括日期和时间两部分内容:{<日期>,<时间>} 其中<日期>与日期型常量相似,也有传统和严格两种格式. <时间>部分的格式为 [hh[:mm[:ss]][a|p]],其中hh、mm、ss分别代表时、分和秒,默认值分别为12、0和0。a和p分别代表上午和下午,默认值为a。如果指定的时间大于等于12,则自然为下午的时间。null例3.3显示日期时间型常量 SET MARK TO ?{^2001-03-22,11:30p},{^1999-01-01, },{^2000-10-1,3} 显示:03/22/01 11:30:00 PM 01/01/99 12:00:00 AM 10/01/00 03:00:00 AM 注:日期时间型数据用8个字节存储,日期部分的取值范围与日期型数据相同,时间部分的取值范围是:00:00:00AM~11:59:59PM 6.逻辑型(Logical)6.逻辑型(Logical)只有两个值:真和假。  真的表示形式:.T. .t. .Y. .y.  假的表示形式:.F. .f. .N. .n.注:前后的定界符必不可少。否则会被误认为变量名,逻辑型数据只占用一个字节。null1.浮点型(Float) 包括此类型是为了提供兼容性,浮点型在功能上与数值型等价.只能用在表中的字段. 2.双精度型(Double) 此类型用于取代数值型,以便提供更高的数值精度.与数值型不同,双精度只能用于数据表中字段的定义.每个双精度型数据占8个字节. 3.整型(Integer) 整型用于存储无小数部分的数值,只能用于数据表中字段的定义.在表中,整型字段占用4个字节.null4.备注型(Memo) 备注型用于字符型数据块的存储,只能用于数据表中字段的定义.在表中,备注型字段占用4个字节,并用这4个字节来引用备注的实际内容.实际备注内容的多少只受内存可用空间的限制. 由于备注型字段的实际内容变化很大,不能直接将备注内容存在表.dbf文件中.系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为.dbt.由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理. 5.通用型(General) 字符型(二进制) 备注型(二进制)null二.变量 变量是在程序运行过程中其值可以发生改变的量。VF分为字段变量和内存变量。 注:VF变量命名规则是: 1)以字母、数字、下划线组成,中文版VF可以使用汉字做变 量名 2)以字母或下划线开始,中文VF可以汉字开始 3)长度为1~128个字符 4)不能使用VF的保留字null由于表中的各条记录对同一个字段名可能取值不同,因此,表中的字段名就是变量,称为字段变量。 内存变量是内存中一个存储区域,变量值就是存放在这个存储区域里的数据,变量的类型取决于变量值的类型。例:当把一个常量赋给一个变量时,这个常量就被存放到该变量对应的存储位置中而成为该变量新的取值。在Visual FoxPro中,变量的类型可以改变,也就是说,可以把不同类型的数据赋给同一个变量。 内存变量的数据类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)。 null 1.简单内存变量 每一个变量都有一个名字,可以通过变量名访问变量。如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在内存变量名前加上前缀M.(或M) 变量的赋值命令有两种格式: <内存变量名>=<表达式> 赋值号  STORE <表达式> TO <内存变量名表> 功能注释: ①等号一次只能给一个内存变量赋值。STORE命令可以同 时给若干个变量赋予相同的值,各内存变量名之间必须 用逗号分开。 ②在VF中,一个变量在使用之前不需要特别的声明或定 义。当用命令给变量赋值时,如果该变量并不存在,那 么系统会自动建立它。 ③可以通过对内存变量重新赋值来改变其内容和类型。null例3.4内存变量和字段变量的访问,这里用到一个表文件“学生.DBF”,其结构如下:学生(学号C(8),姓名C(6),性别C(2),出生日期D(8)) 在命令窗口键入命令: USE 学生 &&USE是打开表的命令 LIST &&LIST是显示表 中各条记录的命令 ?姓名,性别,学号 &&显示内存变量 null显示: STORE “赵小辉” TO 姓名 &&用字符串向内存变量姓名赋值 Y=500 &&用数值型常量500赋值内存变量Y XM=姓名 &&用字段变量赋值内存变量XM STORE 8.88 TO X1,X2 &&对两个内存变量X1、X2赋予相同值 STORE .T. TO Q &&用逻辑常量赋值内存变量Q ?姓名,m.姓名,x1,x2,y,xm 显示:刘明  赵小辉  8.88 8.88 500刘明 null2.数组 数组是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。每个数组元素相当于一个简单变量,可以给各元素分别赋值。在VF中,一个数组中各元素的数据类型可以不同。 Dimension a(2,3,4) a(1,1) a(1,2) a(1,3) a(2,1) a(2,2) a(2,3) 与简单内存变量不同的是,数组在使用之前一般要用DIMENSION或DECLARE命令来创建,规定数组的维数,数组名和数组大小。数组大小由下标值的上下限来决定,下限规定为1。null创建数组的命令格式为: DIMENSION<数组名>(<下标上限1>[,<下标上限2>])[,……] DECLARE<数组名>(<下标上限1>[,<下标上限2>])[,……] 以上两种格式的功能完全相同。数组创建后,系统自动给每个数组元素赋以逻辑假.F. 整个数组的数据类型为A(Array),而各个数组元素可以分别存放同类型的数据。 使用时应注意: dimention a(5),y(2,3) y(1,1) y(1,2) y(1,3)y(2,1)y(2,2) y(2,3) null①在一切使用简单内存变量的地方,均可以使用数组元素。 ②在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。 ③在同一个运行环境下,数组名不能与简单变量名重复。 ④在赋值语句中的表达式位置不能出现数组名。x=a ⑤可以用一维数组的形式访问二维数组。如:数组y中的各元素用一维数组形式可依次表示为:y(1),y(2),y(3),y(4),y(5),y(6),其中y(4)与y(2,1)是同一变量。 null三、内存变量常用命令 1.内存变量的赋值 格式1 STORE<表达式> TO <变量名表> 格式2 <内存变量名>=<表达式> 2.表达式值的显示 格式1: ?[<表达式>] 区别 格式2: ??<表达式> 3.内存变量的显示 格式1:LIST MEMORY[LIKE<通配符>][TO PRINTER|TO FILE<文件名>] 格式2:DISPLAY MEMORY[LIKE<通配符>][TO PRINTER|TO FILE<文件名>]null功能: 显示内存变量的当前信息,包括变量名,作用域,类型,取值。 LIKE只显示与通配符相匹配的内存变量。通配符包括*和?。 TO PRINTER或TO FILE<文件名>用于显示的同时送往打印机,或者存入给定文件名的文本文件中。文件的扩展名为.txt 区别: LIST MEMORY一次显示与通配符匹配的所有内存变量,如果内存变量多,一屏显示不下,则自动向上滚动。DISP MEMORY分屏显示与通配符匹配的所有内存变量,如果内存变量多,显示一屏后暂停,按任意键之后再继续显示下一屏。 null4.内存变量的清除清楚 格式1:CLEAR MEMORY 格式2:RELEASE<内存变量名表> 格式3:RELEASE ALL[EXTENDED] 格式4:RELEASE ALL[LIKE<通配符>|EXCEPT<通配符>] 功能: 格式1清除所有内存变量。 格式2清除指定的内存变量。 格式3清除所有内存变量。一般情况下作用与格式1相同。如果出现在 程序中则应该加上短语EXTENDED,否则不能删除公共内存变量。 格式4选用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语 清除与通配符不相匹配的内存变量。null例:RELEASE ALL LIKE A*    RELEASE ALL EXCEPT A? 例3.5 CLEAR MEMORY DIMENSION y(2,2) STORE ‘xxx’ TO x1,y(1,1) y(3)={^2001-03-23} y(1,1) y(1,2) y(2,1) y(2,2) x2=$123.23 LIST MEMO LIKE y*null显示如下: Y Pub A (注意显示结果) (1,1) C “xxx” (1,2) L .F. (2,1) D 03/23/01 (2,2) L .F. RELEASE ALL LIKE y* X={^2001-08-22,11:30P} LIST MEMO LIKE X* 显示如下: X Pub T 08/22/01 11:30:00PM X1 Pub C “xxx” X2 Pub Y 123.2300null5.表中数据与数组数据之间的交换 表文件的数据内容是以记录的方式存储和使用的,而数组是把一批数据组织在一起的数据处理方法,为了使它们之间方便地进行数据交换,以利于程序的使用,Visual FoxPro提供了相互之间数据传递的功能,可以方便地完成表记录与内存变量之间的数据交换。 ①将表的当前记录复制到数组 格式1:SCATTER[FIELDS<字段名表>][MEMO] TO <数组名>[BLANK] 格式2: SCATTER[FIELDS LIKE<通配符>|FIELDS EXCEPT< 通配符>][MEMO] TO <数组名>[BLANK]null格式1的功能: 1)是将表的当前记录从指定字段表中的第一个字段内容开始,依次复制到数组名中的从第一个数组元素开始的内存变量中。若不使用FIELDS短语指定字段,则复制除备注型M和通用型G之外的全部字段。 2)若事先没有创建数组,系统将自动创建;若已创建的数组元素个数少于字段数,系统自动建立其余数组元素;若已创建的数组元素个数多于字段数,其余数组元素的值保持不变。 3)若选用MEMO短语,则同时复制备注型字段。若选项用BLANK短语,则产生一个空数组,各数组元素的类型和大小与表中当前记录的对应字段相同。null格式2的功能: 是用通配符指定包括或排除的字段。FIELDS LIKE<通配符>和FIELDS EXCEPT<通配符>可以同时使用。 例3.6打开表文件“职工.dbf”,包括9个字段。 职工号(C,4),姓名(C,6),性别(C,2)婚否(L),政治面貌(C,4),工作日期 (D,8),职称(C,6),基本工资(N,6,2)简历(M). 当前记录为第一记录,把它复制到数组ZG中。 USE 职工 &&打开职工表 SCATTER TO ZG ?ZG(1),ZG(2),ZG(3),ZG(4),ZG(5),ZG(6),ZG(7) ,ZG(8)null显示如下:1001 李小明 男 .F. 群众 10/12/95 助教 700.00 SCATTER TO ZG MEMO &&要求包括备注型字段 ?zg(1),zg(2),zg(3),zg(5),zg(9) 显示如下: 1001 李小明 男 群众 1994年北京大学计算机系毕业。 SCATTER TO BB FIELDS LIKE 职* null②将数组数据复制到表的当前记录 格式1:GATHER FROM <数组名>[FIELDS<字段名表 >][MEMO] 格式2:GATHER FROM <数组名>[FIELDS LIKE<通配符 >|FIELDSEXCEPT<通配符>][MEMO] 格式1的功能: 将数组中的数据作为一个记录复制到表的当前记录中。从第一个数组元素开始,依次向字段名表指定的字段填写数据。若缺省FIELDS选项,则依次向各个字段复制,若数组元素个数多于记录中字段的个数,则多余部分被忽略。若选用MEMO短语,则依次向备注型字段复制数据。 null例3.7 打开表文件“职工.dbf”,追加一条空记录,将数组RR中的内容复制到空记录中,注意数组中各个数组元素的数据类型必须与字段的数据类型对应一致。 DIMENSION RR(1,3) &&创建一个二维数组 RR(1,1)=1088 RR(1,2)=”张友谊” RR(1,3)=”女” USE 职工 &&打开职工表 APPEND BLANK &&在表中追加一条空记录 GATHER FROM RR ?职工号,姓名,性别 &&显示字段变量 3.2表达式3.2表达式表达式是由常量、变量和函数通过特定的运算符连接直接起来的式子。 表达式可分为数值表达式、字符表达式、日期时间表达和逻辑表达式一、数值、字符与日期时间表达式 1.数值表达式 数值表达由算术运算符将数值型数据连接起来形成,其运算结 果仍然是数值型数据。数值型数据可以是数值型常量或者变量。 ①算术运算优先级 null表3.2 算术运算符及其优先级优先级 运算符说 明1234( )**或^*、/、%+、-形成表达式内的子表达式 乘方运算 乘、除运算、求余运算 加、减运算null例3.8 计算数学算式和的值。 ?(1/60-3/56)*18.4500 结果为:-0.6809 ?(1+2^(1+2))/(2+2) 结果为:2.25null②求余运算 求余运算%和取余函数MOD()的作用相同。 注:余数的正负号与除数一致,当被除数与除数异号时,结果为余数+除数。例3.9求余运算: % ?15%4,15%-4 15%-4商3余3  结果为余数+除数 结果为:3 -1 STORE 122 TO X,Y     15%-7 2 1 Z=73 ?X%Z,MOD(X,Z),X%(Y-200) 结果为:49 49 -34 null2.字符表达式 字符表达式由字符串运算符将字符型数据连接起来形成,其运算结果仍然是字符型数据。 运算符: +:前后两个字符串首尾连接形成一个新的字符串  -:连接前后两个字符串,并将前字符串的尾部空格移 到合并后的新字符串尾部。null例3.10字符串运算 a= “Hello_ _ ” b=”everyone!” ?a+b,a-b 显示为: Hello_ _everyone! Helloeveryone!_ _ use  职工 &&打开职工表 ? 姓名-“的职称是”+职称 显示为:李小明的职称是助教 null3.日期时间表达式 运算符:+和- 注:日期时间表达式的格式有一定限制,不能任意组合.如: 不能用运算符+将两个<日期>连接起来。合法的日期 时间表达式格式如表3.3所示,其中<天数>和<秒数>都是数值表达式。null表3.3  日期时间表达式的格式格式结果及类型<日期>+<天数> 日期型。指定日期若干天后的日期 <天数>+<日期> 同上<日期>-<天数> <日期> - <日期><日期时间>+<秒数> <秒数>+<日期时间> <日期时间>-<秒数> <日期时间>-<日期时间> 日期型指定日期若干天前的日期 数值型。两个指定日期相差的天数 日期时间型。指定日期时间若干秒后的日期时间 同上日期时间型。指定日期时间若干秒前的日期时间 数值型。两个指定日期相差的秒数null例3.11日期时间运算 ?{^2001-03-19}+10,{^2001-03-19}-{^2000-03-19} 显示:03/29/01 365 ?{^2001-03-19 11:10:10 am}-{^2001-03-19 10:10:10 am} 显示:3600 ?{^2001-03-19 10:10:10 am}+10 显示:03/19/01 10:10:20 am null二、关系表达式 1.关系表达式  由关系运算符将两个运算对象连接起来形成。 即<表达式1><关系运算符><表达式2>表3.4 关系运算符子串包含测试 $不等于<>、# 或!=字符串精确比较 = =等于=大于等于 >=大于>小于等于 <=小于<说明 运算符 说明运算符注:前后两个运算对象的数据类型要一致。但日期和日期时间型数据可以比较null①数值型和货币型数据比较 按数值的大小比较,包括负号。如0>-1 $150>$105.(返回值的类型?) ②日期或日期时间型数据比较 越早的日期或时间越小,越晚的日期或时间越大。 如:{^2002-01-10}>{^2001-12-28} ③逻辑型数据比较 .T.>.F.  .t. ④子串包含测试$ 格式:<前字符型表达式>$<后字符型表达式> 若前者是后者的一个子字符串,结果为逻辑真(.T.),否则为逻辑假(.F.)。null例3.12关系运算符示例 store “计算机” to s1 store “微型计算机” to s2 ?s1$s2,s2$s1,(s1$s2)>(s2$s1) null2.设置字符的排序次序 当比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较,一旦发现两个对应的字符不同,就根据这两个字符的排序序列决定两个字符串的大小。对字符序列的排序设置有人机对话和命令两种方式。 ①在人机对话方式(菜单)下设置 工具选项数据(选项卡)排序序列 ②命令方式设置null命令: SET COLLATE TO “<排序次序名>” 排序次序名有三种:“Machine”(机器)、“PinYin”(拼音)、 “Stroke”(笔画) “Machine”(机器): 按照机内码顺序排序,在微机中,西文字符是按照ASCII码值排列的,空格在最前面,大写字母ABCD序列在小写字母abcd序列的前面。因此,大写字母<小写字母。对常用的汉字而言,根据它们的拼音顺序决定大小null“PinYin”(拼音): 按照机内码顺序排序,对西文字符而言,空格在最前面,小写字母abcd序列在大写字母ABCD序列的前面。因此,空格<小写字母<大写字母 “Stroke”(笔画): 无论中文、西文,均按照书写笔画的多少排序。null例3.13在不同的字符排序设置下比较字符串大小。 SET COLLATE TO “machine” ? “a”< “abc”, “a”< “A”, “a”< “_A”    .t. .f. .f.                         ? “一”<“二”, “李”<“王”,“王老师”<“王”,“您好”>”你好”   .f. .t.  .f. .t.  SET COLLATE TO “pinyin” ? “a”< “abc”, “a”< “A”, “a”< “_A” .t. .t. .f. ? “一”<“二”, “李”<“王”,“王老师”<“王”,“您好”>”你好” .f. .f. .f. .t. SET COLLATE TO “stroke” ? “a”< “abc”, “a”< “A”, “a”< “_A” .t. .t. .f. ? “一”<“二”, “李”<“王”,“王老师”<“王”,“您好”>”你好” .t. .f. .f. .t.null3.字符串精确比较与EXACT设置 在用运算符“==”比较两个字符串时,只有当两个字符串完全相同(包括空格以及各字符的位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.,在用“=”比较两个字符串时,运算结果与set exact on|off设置有关,该命令是设置精确匹配与否的开关. ①系统默认off状态.当处于off状态时,只要右边的字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真.T.的结果.也就是说,字符串的比较以右面的字符串为目标,右字符串结束即终止比较. ②当处于on状态时,比较到两个字符串全部结束,先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较.set exace设置详见下表示例。nullnull例3.14字符串精确比较与exact设置示例。 SET EXACT OFF STORE “计算机” TO S1 STORE “计算机_ _” TO S2 STORE “计算机世界” TO S3 ?S1=S3,S3=S1,S1=S2,S2=S1,S2==S1 .f. .t. .f. .t. .f. SET EXACT ON ?S1=S3,S3=S1,S1=S2,S2=S1,S2==S1 .f. .f. .t. .t. .f. null三.逻辑表达式 由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。 逻辑运算符 : NOT或!(逻辑非)、AND(逻辑与)、OR(逻辑或) 逻辑运算符的优先顺序:NOT AND  OR 逻辑运算规则:null运算符的优先级: 算术运算符、字符串运算符和日期时间运算符关系运算符逻辑运算符 高 低例:不同运算符组成的表达式示例。 ?12>2 and ‘人’> ‘民’or .t.<.f. .t. ?2=2+12 or 5>6 and ‘AB’>’abc’ .f.null函数: 用程序来实现的一种数据运算或转换。每一个函数都有特定的数据运算或转换功能,它往往需要若干个变量,即运算对象,但只能有一个运算结果,称为函数值或返回值,函数可以用函数名加一对圆括号加以调用,自变量放在圆括号里,如LEN(x) 分类:数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数5类。null数值运算函数 1.绝对值和符号函数 ABS(<数值表达式>) 返回指定数值表达式的绝对值。 例:?abs(-5) 结果为:5 SIGN(<数值表达式>) 返回指定数值表达式的符号。 例: ?sign(-5) 结果为:-1 数值表达式 正 函数返回值 1 ?sign(5) 结果为:1 负 函数返回值 -1 ?sign(0) 结果为:0null2.求平方根函数 SQRT(<数值表达式>) 返回指定表达式的平方根。但自变量表达式的值不能为负。 例:?sqrt(-5)(错误) 3.圆周率函数 PI():返回圆周率п(数值型)。该函数没有自变量。 4.求整数函数 INT(<数值表达式>) 返回指定数值表达式的整数部分。 CEILING(<数值表达式>) 返回大于或等于指定数值表达式的最小整数。 FLOOR(<数值表达式>) 返回小于或等于指定数值表达式的最大整数。null例: STORE 5.8 TO X ?INT(X),INT(-X),CEILING(X),CEILING(- X),FLOOR(X),FLOOR(-X) 5 -5 6 -5 5 -6null5.四舍五入函数 ROUND(<数值表达式1>,<数值表达式2>) 返回指定表达式在指定位置四舍五入的结果。<数值表达式2>指明四舍五入的位置。若<数值表达式2>大于等于0,表示要保留的小数的位数;若<数值表达式2>小于0,表示的整数部分的舍入位数。例:x=123.456 ?ROUND(x,2),ROUND(X,1),ROUND(X,0), ROUND(X,-1) 123.46 123.5 123 120 null6.求余数函数 MOD(<数值表达式1>,<数值表达式2>) 返回两个数值相除后的余数。<数值表达式1>是被除数,<数值表达式2>是除数。注:余数的正负号与除数相同。如果被除数与除数同号,那么函数值即为两数相除的余数。如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。例:15%-43-4=-1 MOD(15,4)null7.求最大值和最小值函数 MAX(<数值表达式1>,<数值表达式2>) [<数值表达式3>…] ) 计算各自变量表达式的值,并返回其中的最大值。 MIN(<数值表达式1>,<数值表达式2>) [<数值表达式3>…] ) 注:所有表达式的类型必须相同 例:?MAX(‘2’,’12’,’05’),MIN(‘汽车’,’飞机’,’轮船’) null字符处理函数 1.求字符串长度函数 LEN(<字符表达式>) 返回指定字符表达式值的长度,即所包含字符个数。函数值为数值型。 例:x=”Hello!” ?LEN(x) null2.大小写转换函数 LOWER(<字符表达式>) 将指定表达式值中的大写字母转换成小写字母,其他字符不变。 UPPER(<字符表达式>) 将指定表达式值中的小写字母转换成大写字母,其他字符不变。 例:?LOWER(‘X1y2A*’),UPPER(‘n=1’) x1y2a* N=1 3.空格字符串生成函数 SPACE(<数值表达式>) 返回由指定数目的空格组的字符串。null4.删除前后空格函数 TRIM(<字符表达式>) 返回指定字符表达式值去掉尾部空格后形成的字符串。 LTRIM(<字符表达式>) 返回指定字符表达式值去掉前导空格后形成的字符串。 ALLTRIM(<字符表达式>) 返回指定字符表达式值去掉前导和尾部空格后形成的字符串。null5.取子串函数 LEFT(<字符表达式>,<长度>) 从指定表达式值的左端取一个指定长度的子串作为函数值。 RIGHT(<字符表达式>,<长度>) 从指定表达式值的右端取一个指定长度的子串作为函数值。 SUBSTR(<字符表达式>,<起始位置>,<长度>) 从指定表达式值的指定起始位置取一个指定长度的子串作为函数值。null例:STORE “GOOD BYE!” TO X ?LEFT(X,2),SUBSTR(X,6,2)+SUBSTR(X,6), RIGHT(X,3) GO BYBYE! YE!注:在SUBSTR()函数中,若缺省第三个自变量<长 度>,则函数从指定位置一直取到最后一个字符null6.计算子串出现次数函数 OCCURS(<字符表达式1>,<字符表达式2>) 返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。若第一个字符串不是第二个字符串的子串,函数值为0。 7.求子串位置函数 AT(<字符表达式1>,<字符表达式2>[,<数值表达式>]) ATC(<字符表达式1>,<字符表达式2>[,<数值表达式>]) 功能:函数值为数值型。如果<字符表达式1>是<字符表达式2>的子串,则返回字符表达式1>值的首字符在<字符表达式2>值中的位置;若不是子串,则返回0。 ATC与AT功能类似,但在子串比较时字母不区分大小写。null例:STORE “This is Visual FoxPro” TO x ?AT(“fox”,x),ATC(“fox”,x),AT(“is”,X,3), AT(“xo”,x) 0 16 10 0null8.子串替换函数 STUFF(<字符表达式1>
本文档为【vf教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_491684
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:企业经营
上传时间:2011-11-15
浏览量:66