VisualFoxpro教学教学讲解课件_第1页
VisualFoxpro教学教学讲解课件_第2页
VisualFoxpro教学教学讲解课件_第3页
VisualFoxpro教学教学讲解课件_第4页
VisualFoxpro教学教学讲解课件_第5页
已阅读5页,还剩364页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一次课VisualFoxpro工作界面与操作第二次课VisualFoxPro的表达式与函数第三次课数据库基本概念、项目管理器第四次课VFP数据库和数据表的建立第五次课表的基本操作

第六次课第七次课第八次课第九次课第十次课第十一次课第十二次课第十三次课第十四次课第十五次课第十六次课第十七次课第十八次课第十九次课第二十次课第二十一次课6/5/20231第一次课VisualFoxpro工作界面与操作VisualFoxpro(VFP6)程序设计软件的功能用途VisualFoxPro的界面VisualFoxpro的安装VisualFoxPro的基本操作和工作方式VisualFoxPro的命令语法VisualFoxPro的数据类型、常量VisualFoxPro的环境配置6/5/20232科技学院王广VFP6.0程序设计软件的功能用途建立、操作、管理维护数据库对数据库中的各种数据进行操作;开发与数据库相关的程序和软件。VFP编程语言有自己的特点,开发的数据库及软件相对独立,对系统硬件要求低,执行效率高,但对于大型数据库编程量大。2006年VisualFoxpro的版本已达到V9.06/5/20233科技学院王广VisualFoxPro的特性

1.用户界面良好2.面向对象编程技术功能强3.快速创建应用程序4.数据库的操作简便5.多个用户可以一起开发程序6.可与其他应用程序交互操作7.独特的开发客户/服务器解决方案8.兼容性好,可以升级早期版本6/5/20234科技学院王广VisualFoxPro的安装

安装步骤:将安装光盘插入CD-ROM驱动器。在“开始”菜单中,选择“运行”。键入x:\setup,并且按ENTER键,这里x代表CD-ROM驱动器字母。或者在资源管理器中双击光盘目录下的setup.exe文件,运行安装程序。然后按照屏幕上显示的指令操作。若要进行最小化安装(15MB),请选择“用户自定义安装”。该选项允许您只选取必须的文件。若要进行典型安装(85MB),请选择“完全安装”。该选项不安装帮助文件,但是安装支持文件(包括ODBC)。

若要安装包括ActiveX和企业文件的所有VisualFoxPro文件(192MB),请突出显示“VisualFoxPro6.0”,再选择“用户自定义安装”,然后在用来添加选项的“更改选项”对话框中选择“全部选中”。6/5/20235科技学院王广MSDNLibraryVisualStudio6.0(CHS)安装示例和联机文档MSDN1安装示例VisualFoxPro6.0示例需要使用“MSDN安装向导”进行安装。先选取“自定义”选项,然后选择“VFP文档”、“VFP产品示例”复选框。这些示例将被放置在公用的MSDN示例路径下。您可以通过使用_SAMPLES系统变量或执行HOME(2)命令,以编程方式进行访问。6/5/20236科技学院王广注意:如果选择“典型”选项,VisualFoxPro将从MSDNCD而不从硬盘访问该帮助文件。VisualFoxPro帮助文件(包括Foxhelp.chm)安装于下面的位置:drive:\ProgramFiles\MicrosoftVisualStudio\Msdn98\98vs\1033当您在VisualFoxPro中按F1键、在“命令”窗口输入“HELP”、或使用“帮助”菜单请求帮助时,如果已安装MSDN,则VisualFoxPro的默认行为是调用Msdnvs98.col。如果该文件不存在,则将默认使用Foxhelp.chm。6/5/20237科技学院王广启动VisualFoxPro启动VisualFoxPro有多种方法,可采用以下三种方式之一。1.从“开始”菜单启动2.从资源管理器中启动3.从“运行”对话框中启动6/5/20238科技学院王广退出VisualFoxPro(1)在MicrosoftVisualFoxPro主菜单中,打开“文件”菜单,选择“退出”选项;(2)在MicrosoftVisualFoxPro的系统环境窗口,单击其右上角的“退出”按钮;(3)按Ctrl+Alt+Del组合键,进入“关闭程序”窗口,按“结束任务”按钮;(4)在“命令”窗口,输入命令Quit。(5)按Alt+F4组合键;6/5/20239科技学院王广VisualFoxPro的界面VisualFoxPro界面,是由标题栏、菜单栏、工具栏、工作区、状态栏和命令窗口组成的。6/5/202310科技学院王广菜单栏工具栏命令窗口状态栏工作区标题栏6/5/202311科技学院王广标题栏标题栏位于屏幕界面的第一行,它包含系统程序图标、主屏幕标题、最小化按钮、最大化按钮和关闭按钮5个对象。6/5/202312科技学院王广菜单栏菜单栏位于屏幕的第二行,它包含文件、编辑、显示、格式、工具、程序、窗口和帮助8个菜单选项。当单击其中一个菜单选项时,就可以打开一个对应的“下拉式”菜单,在该“下拉式”菜单下,通常还有若干个子菜单选项,当选择其中一个子菜单选项时,就可以执行一个操作。6/5/202313科技学院王广VisualFoxPro的菜单“文件”菜单:新建、打开、关闭、保存各种项目、表、数据库表单等,数据导入导出。“编辑”菜单:撤销、重做、复制、粘贴、查找等基本编辑操作。“显示”菜单:打开“工具”子菜单,打开“工具栏”对话框,选择或定制工具栏。“格式”菜单:对字体、段落格式进行设置。“工具”菜单:打开数据库和程序的设计向导;宏设计器;“类”、“组件”和“代码”管理器;调试器;“选项”——配置VFP的工作环境。6/5/202314科技学院王广菜单文件菜单编辑菜单显示菜单6/5/202315科技学院王广菜单格式菜单工具菜单程序菜单窗口菜单帮助菜单6/5/202316科技学院王广“程序”菜单:控制程序的运行、取消、挂起、进行程序编译。“窗口”菜单:各类窗口的显示、关闭、排列。“帮助”菜单:对数据库设计和程序设计提供各种帮助,显示软件版本信息。6/5/202317科技学院王广工具栏VisualFoxPro系统提供了11种常用的工具栏:(1)常用工具栏(2)布局工具栏(3)表单控件工具栏(4)表单设计器工具栏(5)查询设计器工具栏(6)视图设计器工具栏(7)数据库设计器工具栏(8)报表控件工具栏(9)报表设计器工具栏(10)调色板工具栏(11)打印预览工具栏6/5/202318科技学院王广激活工具栏的操作步骤例:依次打开菜单项显示

工具栏

“常用”

确定6/5/202319科技学院王广命令窗口命令窗口位于菜单栏和状态栏之间,是VisualFoxPro系统命令执行、编辑的窗口。在命令窗口中,可以输入命令实现对数据库的操作管理;也可以用各种编辑工具对操作命令进行修改、插入、删除、剪切、拷贝、粘贴等操作;还可以在此窗口建立命令文件并运行命令文件。在“窗口”菜单下,选择“隐藏”,可以关闭命令窗口;选择“命令窗口”,可以弹出命令窗口。6/5/202320科技学院王广工作区与状态栏工作区在工具栏与状态栏之间的一大块空白区域是系统工作区,各种工作窗口将在这里展开。状态栏位于屏幕的最底部,用于显示某一时刻的管理数据的工作状态。(1)SETSTATUSBARON|OFF,可控制屏幕上的状态栏是否出现。(2)如果当前工作区中没有表文件打开,状态栏的内容是空白;如果当前工作区中有表文件打开,状态栏显示表名、表所在的数据库名、表中当前记录的记录号、表中的记录总数、表中的当前记录的共享状态等内容。6/5/202321科技学院王广VisualFoxpro的工作方式VFP支持两类不同的工作方式一、交互操作方式 用户在命令窗口输入命令或通过程序提供的操作界面如菜单、向导、设计器等辅助工具完成操作。二、程序执行方式 用户根据需要解决的问题,将VFP命令编成特定的序列,并存入程序文件,需要时,通过特定的命令(如DO命令)调用程序文件,VFP就能自动执行这一程序文件(也包括设计用户需要的程序操作界面等)。6/5/202322科技学院王广程序操作方式程序操作就是预先将实现某种操作处理的命令序列编成程序,通过运行程序来实现操作、管理数据库的操作方式。根据实际应用需要编写的应用程序,能够为用户提供界面更简洁直观、操作步骤更符合业务处理流程和规范要求的操作应用环境。但程序的编制,需要经过专门训练,只有具备一定设计能力的专业人员方能胜任,普通用户很难编写大型的、综合性较强的应用程序。6/5/202323科技学院王广菜单操作方式VisualFoxPro6.0系统将许多命令做成菜单命令选项,用户通过选择菜单项来使用数据库的操作方式。在菜单方式中,很多操作是通过调用相关的向导、生成器、设计器工具,以直观、简便、可视化方式完成对系统的操作,用户不必熟悉命令的细节和相应的语法规则,通过对话来完成操作。有了这种方式,一般用户无需编程就可完成数据库的操作与管理6/5/202324科技学院王广程序启动时的交互界面6/5/202325科技学院王广例如,选择“创建新的应用程序”,弹出应有程序向导,通过该向导完成后续的设置和操作。6/5/202326科技学院王广又如,点击“文件”菜单->“新建…”子菜单,弹出“新建”对话框,选择新建某种对象,如:项目、数据库、表、视图等6/5/202327科技学院王广使用工具栏当中的“打开”按钮可打开各种文件或对象,对其进行修改:6/5/202328科技学院王广命令操作方式命令操作是在命令窗口中逐条输入命令,直接操作指定对象的操作方式。命令操作为用户提供了一个直接操作的手段,其优点是能够直接使用系统的各种命令和函数,有效操纵数据库,但要求熟练掌握各种命令和函数的格式、功能、用法等细节;6/5/202329科技学院王广VisualFoxPro的命令语法使用VFP操作数据库及其数据,使用的是命令式语言,一条命令相当于一般高级语言中的一段程序,能够完成一项复杂的功能。命令格式由一个称为命令字的动词开头,后随一个或若干子句,用来说明命令的操作对象、操作结果与操作条件。如:useSB&&打开名称为SB的表文件browselast

&&浏览SB表的内容listfor价格<10000&&列表显示“价格”低于10000的项目copytoZSBfor

主要设备&&把当前表SB中的“主要设备”字段内容复制到名称为ZSB的表文件中6/5/202330科技学院王广(SB.dbf:设备清单表)useSBbrowselastlistfor价格<10000

copytoZSBfor

主要设备

6/5/202331科技学院王广命令特点采用英语祈使句格式,命令简洁规范(专用名词可以使用汉字)操作对象、结果和条件均可以用命令子语句形式表示,使命令的附属功能可方便地增删。“非过程化”语言,只讲操作要求,不用描述具体执行过程VFP的命令既可以逐条交互的方式执行,又可以编写成程序,以“程序文件”方式执行。6/5/202332科技学院王广命令分类建立和维护数据库命令数据查询命令程序设计命令(程序控制、输入输出、打印、运行环境等)界面设计命令(菜单、窗口、表单控件等)管理文件和程序命令面向对象的设计命令其他命令6/5/202333科技学院王广VisualFoxPro的命令书写规则1、命令动词必须写在命令的最前面2、命令动词与短语、短语与短语、短语的各个部分之间必须以一个或多个空格隔开。3、命令动词、各短语中的保留字及函数名都可简写为前四个字符,且大小写无关。如DISPLAY可简写为DISP。4、一个命令行的最大长度是254个字符,如果命令太长,一行写不下,可在行末用“;”续行。并按回车换行,在下一行继续输入该命令。5、一行只能写一个命令。6/5/202334科技学院王广在命令语法格式中,对符号作如下规定:[]:方括号,表示是可选的项目。若选择该项目,不要写方括号本身。<>:角括号,表示括号内的项目是必须要选的,但不要写角括号本身。|:坚线号,表示两个项目中选择其中一个,但不要写坚线号本身。…:省略号,表示前项可继续重复多次选择。():圆括号,表示括号中的内容为参数,参数的数量不限,一般要有参数存在。6/5/202335科技学院王广例如:通过命令新建数据表,其命令格式为CREATETABLE|DBFTableName1[NAMELongTableName][FREE]

(FieldName1

FieldType[(nFieldWidth[,nPrecision])]

[NULL|NOTNULL]

[CHECKlExpression1[ERRORcMessageText1]]

[DEFAULTeExpression1]

[PRIMARYKEY|UNIQUE]

[REFERENCESTableName2[TAGTagName1]]

…6/5/202336科技学院王广CREATETABLE

orders;

(OrderIdiPRIMARYKEY,; CustIdiREFERENCES

customer

TAGCustId,; OrderAmty(4),; OrderQtyi;

DEFAULT10;

CHECK

(OrderQty>9);

ERROR"OrderQuantitymustbeatleast10",; DiscPercentn(6,2)NULL;

DEFAULT.NULL.,;

CHECK(OrderAmt>0)

ERROR"OrderAmountMustbe>0"

)

6/5/202337科技学院王广VisualFoxPro数据类型VFP中每一个数据都有一定的类型,数据类型决定了数据的存储方式和运算方式,因此,在VFP中任何数据须先定义其数据类型,然后才能对其进行数据处理。VFP提供了13种数据类型,分别是:字符型、数值型、货币型、逻辑型、日期型、日期时间型、整型、浮点型、双精度型、备注型、通用型、字符型(二进制)备注型(二进制)。其中6种类型只用于数据表的字段,此外还有一种特殊数据类型Variant(变量),它包含(指代)了上述全部的数据类型以及null值,如果设置为这种类型数据,则程序会根据数据形态设定合适的数据类型。6/5/202338科技学院王广VisualFoxPro的数据类型1.字符型(character)用字母C表示,字符型数据包括中文字符、英文字符、数字字符和其他ASCII字符,其长度最长不超过254个字符。2.数值型(Numeric)用字母N表示,用来表示数量并可以进行算术运算的数据类型。由阿拉伯数字、正负号、小数点组成。VisualFoxPro中,具有数值特征的数据类型还有整型、浮点型和双精度型,但这三种数据类型只用于字段变量。6/5/202339科技学院王广3.日期型(Date)用字母D表示,用来表示日期的数据类型。日期的默认格式为:{mm/dd/yy}

其中MM表示月,DD表示日,YY表示年。日期型数据的长度固定为8位。4.日期时间型(DateTime)用字母T表示,是用来表示日期和时间,默认格式为:{mm/dd/yy

hh:mm:ss}其中mm,dd,yy的意义与日期型相同,hh,mm,ss分别表示时、分、秒。长度也固定为8位。5.逻辑型(Logic)用字母L表示,用来描述客观事物真假或是非判断的数据类型。只有两个取值:真(.t.或.T.)和假(.f.或.F.),逻辑型数据长度固定为1位。6/5/202340科技学院王广6.货币型(Currency)用字母Y表示,为存储货币值而使用的一种数据类型,它默认保留4位小数,占据8字节的存储空间。7.备注型(Memo)用字母M表示,用来存放较多字符的数据类型。只用于表中字段类型的定义。字段长度固定为4个字节。实际数据存放在与表文件同名的备注文件(.fpt)中,其长度依实际需要而定。8.通用型(General)用字母G表示,是用来存储OLE对象的数据类型。可以是电子表格、文挡、图形、声音等,跟备注型数据一样,它只用于表中字段类型的定义,通用型数据字段长度固定为4位。6/5/202341科技学院王广常量常量是在命令或程序中可直接引用、具有具体值的数据项,其特征是在整个操作过程中它的值和表现形式保持不变。VisualFoxPro按常量取值的数据类型,将常量分为6种类型:数值型常量、货币型常量、字符型常量、逻辑型常量、日期型常量、日期时间型常量。6/5/202342科技学院王广字符型常量1.字符型常量由任意ASCII字符、汉字和汉字字符组成的字符型数据,字符型常量又称为字符串。为与其他类型常量、变量和标识符相区别,VisualFoxPro要求将字符串中所有字符,用一对双引号“””或单引号“‘”或方括号“[]”作为定界符对括起来。如:“

Iamastudent.”,‘中华人民共和国’,[VisualFoxPro6.0系统],"‘book’的中文意思是‘书’。"都是字符串常量。如果字符串中包含一种定界符,则必须用另一种定界符括起来。如:“[计算机]”6/5/202343科技学院王广日期时间型常量2.日期型常量日期型常量是表示日期值的数据,其默认格式是:{mm/dd/[yy]yy}如{10/01/02}和{10/01/2002}均表示2002年10月1日这一日期常量值。3.日期时间型常量VisualFoxPro系统中增加了一种表示日期和时间值的日期时间型常量,其默认格式是:{mm/dd/[yy]yy[,]hh:mm:ss[a|p]}其中a和p分别表示AM(上午)和PM(下午)。日期值和日期时间值的输入格式与输出格式并不完全相同,特别是输出格式受系统环境设置的影响,用户可根据应用需要进行相应调整、设置。6/5/202344科技学院王广设置世纪值(1)日期格式中的世纪值通常日期格式中用2位数表示年份,但涉及到世纪问题就不便区分。VisualFoxPro提供设置命令进行相应设置。命令格式:SETCENTURYON|OFF|TO[nCentury]命令功能:ON:日期数据显示10位,其中年份4位,即日期值输出时显示年份值;OFF:(默认值)。日期数据显示8位,年份2位,即日期值输出时不显示年份值;TO[nCentury]:指定日期数据所对应的世纪值。nCentury是一个1~99的整数,代表世纪数。6/5/202345科技学院王广设置日期显示格式(2)设置日期显示格式用户可以调整、设置日期值和时间值的显示输出格式。既可以用命令方式设置,也可以用菜单方式设置。命令格式:SETDATE[TO]AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY|DMY|YMD|SHORT|LONG命令功能:设置日期型和日期时间型数据的显示输出格式。系统默认为AMERICAN美国格式。如果日期格式设置为SHORT或LONG格式,VisualFoxPro系统将按Windows系统设置的短日期格式或长日期格式显示输出日期数据,而且SETCENTURY命令的设置被忽略。

6/5/202346科技学院王广 各种日期格式设置所对应的日期显示输出格式,见表2-1所示。 表2-1系统日期格式

Windows长日期格式LONGyy/mm/ddJAPANWindows短日期格式SHORTdd-mm-yyITALIANyy/mm/ddYMDdd.mm.yyGERMANdd//mm/yyDMYdd//mm/yyBRITISH/FRENCHmm/dd/yyMDYyy.mm.ddANSImm-dd-yyUSAmm/dd/yyAMERICAN日

6/5/202347科技学院王广设置日期2000年兼容性

通常日期型和日期时间型数据的结果,与SETDATE命令和SETCENTURY命令设置状态及当前系统时间有关。由于系统时间与相应设置不同,同一数据的结果可能有不同的解释。如日期值{10/11/12}可以解释为1912年10月11日、2012年10月11日、1912年11月10日、1910年11月12日或者2010年11月12日等。这显然会导致系统混乱,而且还可能造成2000年兼容性错误,影响系统正常、有效的操作运行。6/5/202348科技学院王广严格的日期格式VisualFoxPro系统增加了一种所谓严格的日期格式。不论哪种设置,按严格日期格式表示的日期型和日期时间型数据,都具有相同的值和表示形式。严格的日期格式是:{^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]}^符号表明该格式是严格的日期格式,并按照YMD的格式解释日期型和日期时间型数据,它是严格日期格式的标志,不可缺少。有效的日期型和日期时间型数据分隔符为:连字符“-”、正斜杠“/”、句点“.”和空格。如{^2002-10-01}、{^2002-10-0110:30:30a},分别表示2002年10月1日及该日上午10时30分30秒这两个日期数据。6/5/202349科技学院王广VisualFoxPro系统默认采用严格的日期格式,并以此检测所有日期型和日期时间型数据的格式是否规范、合法。为与早期版本兼容,用户通过命令或菜单设置改变这一格式。命令设置的命令格式:SETSTRICTDATETO[0|1|2]命令功能:0:关闭严格的日期格式检测,即设置日期格式按传统的严格的格式;1:设置严格的日期格式检测(默认值),要求所有日期型和日期时间型数据均按严格的格式;2:设置与1相同,但如果程序代码中出现CTOD()和CTOT()函数时,会出现编译错误。这个设置最适合调试时使用,用来检测2000年兼容性错误;省略:恢复系统默认值,等价于1的设置。6/5/202350科技学院王广日期格式示例?SET("Date"),?SET("Century")?SET("Strictdate")?date()SETCENTURYON?date()SETDATETOYMD?date()?{02/22/09} &&提示输入日期数据不正确?{^2009/02/22} &&则可以正确显示SETSTRICTDATETO0?{09/02/22} &&此时可以正确显示日期,设置SETSTRICTDATETO0可以省略世纪的输入,即,年使用后2位,系统默认使用当前世纪设置状态,由SETCENTURY决定。?{02/22/09} &&按美国格式输入日期将无法正确显示,说明无论SETSTRICTDATETO设置为何种状态,日期都要按年/月/日的顺序输入,6/5/202351科技学院王广SETSTRICTDATETO0?{09/02/22} &&此时可以正确显示日期,设置SETSTRICTDATETO0可以省略世纪的输入,即,年使用后2位,系统默认使用当前世纪设置状态,由SETCENTURY决定。?{02/22/09} &&按美国格式输入日期将无法正确显示,说明无论SETSTRICTDATETO设置为何种状态,日期都要按年/月/日的顺序输入,即日期输入方式由SETDATETO…决定SETDATETOAMERICAN?{02/22/09} &&按美国格式输入日期则系统可以正确识别6/5/202352科技学院王广逻辑型常量4.逻辑型常量逻辑型常量就是表示逻辑判断结果“真”或“假”的逻辑值。逻辑常量只有真和假两种,分别用(.t.或.y.)和(.f.或.n.)表示真和假。一般应在表示逻辑常量的字母左右加注圆点符“.”以示区别。逻辑型常量在内存中占用一个字节。逻辑型常量只有真假两个值。用.T.或.t.、.Y.或.y.表示逻辑值为真,用.F.或.f.、.N.或.n.表示逻辑值为假。字母两边的英文句点不能省略。6/5/202353科技学院王广数值型、货币型常量5.数值型常量也称常数,用来表示一个数量的大小,由数字0-9、小数点和正负符号组成。例如,12.3,-67,3.14等。也可以使用科学计数法形式表示,例如:6.789*105可表示为6.789E5。数据最大长度为20位,其中小数点占1位。示例:数值型常量(538,-10.5)浮点型常量(-1.05E+20)6.货币型常量用来表示货币值,书写格式与数值型类似,但要加上一个前置的货币符号$。货币型数据在存储和计算时,采用4位小数,如果多于4位,那么系统自动四舍五入。货币型常量不能用科学计数法表示。6/5/202354科技学院王广VisualFoxPro系统环境的配置VisualFoxPro系统环境的配置,决定了VisualFoxPro系统的操作环境和工作方式。设置是否合理、适当,直接影响系统的操作运行效率和操作的方便性。系统安装时按默认方式进行了相应的设置。VisualFoxPro系统允许用户设置大量参数控制其工作方式。通过设置系统环境,可以添加或删除VisualFoxPro控件、更新WindowsRegistry注册项、改变选项栏和工具栏、安装ODBC数据源等。6/5/202355科技学院王广设置默认目录的菜单操作方法环境设置包括主窗口标题、默认目录、项目、编辑器、调试器及表单工具选项、临时文件存储、拖放字段对应的控件和其他选项等内容运用“选项”对话框或SET命令进行附加的配置设定,还可以通过配置文件进行设置。

工具选项文件位置

默认目录6/5/202356科技学院王广设置默认目录的命令操作在命令窗口输入下列命令:setdefaultto[文件夹]例: mdd:\mypro &&在D盘建立子目录mypro setdefaulttod:\mypro &&文件夹名称中不能有空格或其他不可用符号6/5/202357科技学院王广设置文件搜索路径SETPATHTO[Path]Path,可以指定多个路径,用逗号或分号隔开。当使用命令打开或修改某个文件而没有指明路径时VisualFoxpro会在你所指定的路径寻找文件。如:SETPATHTOd:\,d:\test\6/5/202358科技学院王广显示VFP设置显示设置运行VisualFoxPro之后,可以使用“选项”对话框或DISPLAYSTATUS命令,也可以通过显示各SET命令的值,检查环境设置。若要显示多个环境设置

从“工具”菜单中选择“选项”来显示“选项”对话框并查看当前设置。—或者—在命令窗口中键入DISPLAYSTATUS命令。若要显示单个环境设置

在“命令”窗口中使用SET()函数显示任何SET命令的当前值。例如,若要查看SETTALK命令的当前状态,可键入:?SET("TALK")注释由于设置仅在当前数据工作期有效,所以您必须收集设置值并把它们放置在一个程序或表单的Init事件代码中,以供每个私有数据工作期使用。6/5/202359科技学院王广若要把“选项”对话框设置反映到“命令”窗口中

在“选项”对话框中做设置的选择。按下SHIFT键然后选择“确定”。设置反映在“命令”窗口中。从“命令”窗口复制设置命令。6/5/202360科技学院王广6/5/202361科技学院王广VisualFoxPro的向导VisualFoxPro系统为用户提供许多功能强大的向导(Wizards)。用户通过系统提供的各种不同的向导设计器,不用编程就可以创建良好的应用程序界面,并完成许多有关对数据库的操作、管理功能,为非专业用户提供了一种较为简便的操作使用方式。常用的向导设计器有:表向导、报表向导、表单向导、查询向导等。6/5/202362科技学院王广VisualFoxPro6.0系统提供的向导如下表所示。表向导报表向导一对多报表向导标签向导分组/总计报表向导表单向导一对多表单向导查询向导交叉表向导本地视图向导远程视图向导导入向导文档向导图表向导应用程序向导SQL升迁向导数据透视表向导安装向导6/5/202363科技学院王广向导6/5/202364科技学院王广6/5/202365科技学院王广VisualFoxPro设计器VisualFoxPro系统提供的设计器,为用户提供了一个友好的图形界面。用户可以通过它创建并定制数据表结构、数据库结构、报表格式和应用程序组件等。常用的设计器有:表设计器、查询设计、视图设计器、列表框设计器、报表设计器、数据库设计器、菜单设计器等。6/5/202366科技学院王广VisualFoxPro6.0提供的设计器如下表所示。表设计器查询设计器视图设计器表单设计器报表设计器标签设计器数据库设计器数据库设计器连接设计器菜单设计器数据环境设计器6/5/202367科技学院王广设计器点击“新建”按钮或“文件”>“新建”菜单,选择项目、数据库、表等,打开相应设计器。

6/5/202368科技学院王广表设计器示例:6/5/202369科技学院王广查询设计器示例:6/5/202370科技学院王广表单设计器示例:6/5/202371科技学院王广报表设计器示例:6/5/202372科技学院王广数据库设计器6/5/202373科技学院王广VisualFoxPro生成器概述生成器是用来帮助设置表单上控件属性的工具。与向导不同,生成器是可重入的,这样就可以不止一次地打开某一控件的生成器。VisualFoxPro为许多通用的表单控件,如表格、列表框、组合框、复选框、命令按钮组和选项按钮组等,提供了生成器。如果要激活生成器,只需在表单或类设计器中选定的对象上单击鼠标右键,再选择“生成器”菜单项即可。例如,可在表格控件上激活生成器,来设定该表格的可视化的样式和数据源。6/5/202374科技学院王广VisualFoxPro还包括一些特定的生成器,这些生成器仅能用于“组件管理库”中的一些基本类。如果将一个类从“组件管理库”拖放至表单,则会自动激活相应的生成器。例如,如果从“组件管理库”中将HyperLinkLabel类拖放至一表单,则会启动生成器,提示输入标签的标题和目标URL。当运行该表单时,单击此标签将启动Web浏览器并连接到在生成器中输入的目标URL。此后在需要时,还可以重新进入生成器,修改目标URL。6/5/202375科技学院王广迅速创建功能齐全的应用程序应用程序生成器将一组样式应用于选定的同类型控件自动格式生成器设置组合框控件的属性组合框生成器设置命令按钮组控件的属性命令按钮组生成器设置编辑框控件的属性编辑框生成器添加字段,作为表单的新控件表单生成器设置表格控件的属性表格生成器设置列表框控件的属性列表框生成器设置选项按钮组控件的属性选项按钮组生成器设置触发器来控制相关表中记录的插入、更新和删除,以确保参照完整性参照完整性生成器设置文本框控件的属性文本框生成器6/5/202376科技学院王广VisualFoxPro系统提供的生成器,可以简化创建和修改用户界面程序的设计过程,提高软件开发的质量。每个生成器都由一系列选项卡组成,允许用户访问并设置所选对象的属性。用户可以将生成器生成的用户界面直接转换成程序代码,把用户从逐条编写程序、反复调试程序的工作中解放出来。常用的生成器有:组合框生成器、命令组生成器、表达式生成器、列表框生成器等。6/5/202377科技学院王广每个生成器包含若干个选项卡,允许用户访问并设置所选择对象的相关属性。用户可将生成器生成的用户界面直接转换成程序编码,使用户从逐条编写程序代码、反复调试程序的手工作业中解放出来。VisualFoxPro6.0提供的生成器如下表所示。

自动格式化生成器组合框生成器命令组生成器编辑框生成器表达式生成器表单生成器网格生成器列表框生成器参照完整性生成器文本框生成器选项组生成器6/5/202378科技学院王广程序生成器Alt+F2打开应用程序生成器6/5/202379科技学院王广表单生成器使用“表单生成器”向表单中添加字段十分方便,这里的字段用作新的控件。可以在“表单生成器”中选择选项,来添加控件和指定样式。若要使用“表单生成器”

在“表单设计器”中,在一个新的或现有的表单上单击鼠标右键。–或者–从“表单”菜单中选择“快速表单”。当选择“确定”时,生成器关闭,各个选项卡中的属性设置开始生效。生成器选项卡字段选取:指定作为格式控制添加的字段。样式:为控件提供几种样式选项,如果必要,还提供放大表单的选项。表单大小只放大到适合“最大设计区”的大小,就象在“选项”对话框的“表单”选项卡中设置的一样。6/5/202380科技学院王广表单生成器6/5/202381科技学院王广编辑框生成器若要使用“编辑框生成器”使用“表单控件”工具栏,将一个编辑框控件放在表单上。

选中该编辑框控件,并单击鼠标右键,然后从“表单设计器”快捷菜单上选择“生成器”。这时就会出现一个与选中的控件相对应的对话框。从对话框中选择合适的选项,然后选择“确定”。当选择“确定”时,生成器关闭,各个选项卡中的属性设置开始生效。生成器选项卡格式为编辑框指定多种的格式选项。样式指定编辑框的外观形式、边框和对齐方式。值指定存贮编辑框的值的字段。6/5/202382科技学院王广编辑框生成器6/5/202383科技学院王广参照完整性生成器“参照完整性(RI)生成器”帮助设置触发器,用来控制如何在相关表中插入、更新或者删除记录,确保参照完整性。“RI生成器”在以下情况下显示:在“数据库设计器”中双击两个表之间的关系线,并在“编辑关系”对话框中选择“参照完整性”按钮。

从“数据库设计器”快捷菜单中选择“编辑参照完整性”选项。

选择“数据库”菜单中的“编辑参照完整性”选项。生成器选项卡更新规则:指定修改父表中关键字(key)值时所用的规则。删除规则:指定删除父表中的记录时所用的规则。插入规则:指定在子表中插入新的记录或更新已存在的记录时所用的规则。6/5/202384科技学院王广参照完整性生成器6/5/202385科技学院王广表达式生成器6/5/202386科技学院王广自动格式生成器6/5/202387科技学院王广6/5/202388科技学院王广本次课结束。6/5/202389科技学院王广第二次课VisualFoxPro的表达式与函数VisualFoxPro的变量VisualFoxPro的表达式VisualFoxPro的常用函数6/5/202390科技学院王广VisualFoxPro的变量变量是在程序运行过程中可以改变其取值或数据类型的数据项。(在使用过程中其值可以改变的量)在VisualFoxPro中,常用的变量类型有:内存变量、字段变量、数组变量和系统变量。

此外,作为面向对象的程序语言,VisualFoxPro在进行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。确定一个变量,需要确定其三个要素:变量名、数据类型和变量值。6/5/202391科技学院王广命名规则在VisualFoxPro系统中,将表示、存储数据的常量、变量、数组、字段、记录、对象、表、数据库等,都称之为数据容器。所有数据容器均需命名以相互区别,为规范各类对象的命名,VisualFoxPro系统推荐了若干“命名规则”供用户参考,以提高操作命令与程序的可读性和规范性。使用字母,下划线和数字命名。一般建议不采用汉字命名;命名以字母或下划线开头;除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1——128个字符;避免使用VisualFoxPro的保留字(保留字是指VFP语言使用的关键字,如CREATE命令中的CREATE就是一个系统保留字);文件名的命名应遵循操作系统的约定。6/5/202392科技学院王广内存变量内存变量是用户通过命令或程序临时定义的变量,内存变量独立于数据库以外,它通常用于存放程序运行过程中所需要的原始数据、中间结果以及最终结果。内存变量的数据类型由它所保存的数据的类型决定,内存变量的数据类型有字符型、数值型、货币型、逻辑型、日期型和日期时间型,可以把不同类型的数据赋值给同一个内存变量。内存变量建立后存储在内存中,当用户退出VisualFoxPro时,内存变量将自动消失。需要时可把内存变量保存在文件中。需要注意的是:当内存变量与字段同名时,若要使用内存变量,那么要在引用的内存变量名称之前添加“M.”。6/5/202393科技学院王广内存变量赋值命令建立内存变量就是给内存变量赋值。内存变量赋值既可定义一个新的内存变量,也可改变已有内存变量的值或数据类型。命令格式1:<内存变量名>=<表达式>命令格式2:store<表达式>to<内存变量名表>功能:将<表达式>的值赋给内存变量。说明:格式1只能给一个变量赋值;格式2可以给一批变量赋相同的值,各变量名之间必须用逗号分隔;可对内存变量重新赋值来改变其值和类型。6/5/202394科技学院王广1.直接为内存变量赋值使用“=”可以直接为内存变量赋值。【例】b1=3&&将b1赋值3; b2=b1+2&&将b1加2后的值赋给b2,此时b2等于5;b2=b2+3&&将b2加3后的值再赋给b2,此时b2等于8。说明:一个变量的值可以不断变化,最终结果是它最后一次的赋值。6/5/202395科技学院王广2.使用STORE命令为内存变量赋值命令格式STOREeExpressionTOVarNameList|ArrayNameList命令说明(1)eExpression参数是一个表达式。该表达式可以由常量、变量、函数和运算符组成。该命令将表达式的值赋予内存变量或数组变量。(2)VarNameList参数是内存变量列表。内存变量列表中的内存变量应用逗号分隔。该命令可以同时为多个内存变量赋值。(3)ArrayNameList参数是数组变量列表。数组变量列表中的数组变量应用逗号分隔。(4)该命令可以同时为多个内存变量或数组变量赋值。【例】store3*4toa1,a2?a1?a2&&此时a1,a2的值都是126/5/202396科技学院王广显示或打印内存变量可以使用DISPLAYMEMORY命令或LISTMEMORY命令来查看已定义的变量。命令格式命令格式:list|displaymemory[like<通配符>][toprint|tofile<文件名>]DISPLAYMEMORY或LISTMEMORY功能:显示或打印当前已定义的内存变量名、作用范围、类型和值。。6/5/202397科技学院王广说明:(1)LIKE选项子句可以使用通配符来代替变量名的一部分,以显示与通配符相符合的变量。有两种通配符:“?”代表任意一个字符,“*”代表任意多个字符。(2)LIST和DISPLAY的区别是:前者连续显示,后者分屏显示。(3)TOFILE<文件名>子句功能是将内存变量有关信息送至一个文本文件。TOPRINTER则是送至打印机打印。例:定义并显示内存变量:STORE"dggaf"TOa1a2={^2004-04-25}c=.t.LISTMEMOLIKEa?6/5/202398科技学院王广建立内存变量文件VisualFoxPro提供相应命令,可用文件形式将某些内存变量保存起来,以便重复使用。命令格式:SAVETO<变量文件名>[ALLLIKE<通配符>|ALLEXCEPT<通配符>]ALLLIKE<通配符>:只保存符合通配符条件的所有变量;ALLEXCEPT<通配符>:只保存不符合通配符条件的所有变量。命令功能:将指定变量的信息保存到指定的变量文件(*.MEM)中。6/5/202399科技学院王广示例:SAVETOAASAVETOMMALLLIKEX*SAVETOBBALLEXCEPT?Y6/5/2023100科技学院王广内存变量文件的调入需要保存在文件中的变量信息时,必须先恢复到内存后方可使用。RESTORE将指定变量文件(*.MEM)中变量信息恢复到内存中。格式:RESTOREFROM<变量文件名>[ADDITIVE]ADDITIVE:省略此项,清除内存所有变量后再恢复文件中变量的信息;加选此项,将变量文件中的变量信息追加到内存现有变量信息中。示例:RESTOREFROMMMRESTOREFROMBBADDITIVE6/5/2023101科技学院王广释放内存变量VisualFoxPro系统对定义内存变量的数量是有限制的,应及时清理,尽量减少内存的占用,定义其他变量。命令格式:RELEASE<变量表>RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]RELEASE<变量表>该命令用于释放指定的内存变量。releaseall该命令用于释放全部变量。6/5/2023102科技学院王广释放全部变量例releasea1,a2&&释放变量a1,a2releasealllikea*&&释放以字母a开头的变量

CLEARMEMORY命令该命令用于释放全部变量。命令格式clearmemory6/5/2023103科技学院王广表达式的显示输出?与??命令对表达式求值,并将结果显示在主窗体上或通过打印机打印出来。?|??<表达式表>[AT<列号>]?表达式换行显示表达式的运算(运行)结果,省略“表达式”内容,则显示一个空行。??表达式在之前显示的内容后显示表达式的运算(运行)结果,即不换行连续显示。如果SETPRINTER状态为ON,表达式的结果显示在VisualFoxPro主窗体(或用户定义的当前活动窗体)上并直接在打印机上打印;如果SETPRINTER状态为ON并且SETCONSOLE状态为OFF,表达式的结果仅直接在打印机上打印。6/5/2023104科技学院王广?|??命令语法?|??Expression1

[PICTUREcFormatCodes]|[FUNCTIONcFormatCodes]|[VnWidth]

[ATnColumn]

[FONTcFontName[,nFontSize][STYLEcFontStyle|Expression2]]

[,Expression3]...示例?DATE()FONT'COURIER',16STYLE'BI'at10?15*(10+10)?'Welcometo'PICTURE'@!'??'VisualFoxPro'?'ThisisanexampleofhowtheVfunctioncodeworks.';FUNCTION'V10'

???命令对表达式求值,并将结果直接通过打印机打印出来。6/5/2023105科技学院王广如果变量没有定义,则使用?会提示“找不到变量‘’”如6/5/2023106科技学院王广字段变量字段变量是用户在定义表结构时所定义的字段名,它是一种多值变量。字段变量的值随着数据表中记录的不同而改变。当用字段名作变量时,它的当前值就是数据表中当前记录该字段名所对应的值。6/5/2023107科技学院王广例:打开“学生情况表”表文件,显示第2条记录和第5条记录的学号和姓名字段值,结果如下图所示。6/5/2023108科技学院王广数组变量数组变量是一种特殊的内存变量。它是指一组有序的数据的集合,数组中的各元素称为数组元素。每个数组元素都可以通过一个数值下标被引用,相当于一个内存变量。数组变量是结构化的变量,是一组具有相同名称、以下标相互区分的有序内存变量。一个数组通常都包含多个数据元素。VisualFoxPro系统中只允许使用一维数组(相当于数列)和二维数组(相当于行列式或矩阵)。数组必须先定义后使用。6/5/2023109科技学院王广数组的定义数组必须先定义后使用,定义数组是向系统申请数组元素在内存中的存储空间。命令格式:DIMENSION|DECLARE<数组名1>(<数值表达式1>[,<数值表达式2>])[,<数组名2>(<数值表达式3>[,<数值表达式4>])…]命令功能:定义指定的各个数组。示例:dimensionAB(3),C[2,3]6/5/2023110科技学院王广<数值表达式>为数组下标,对一维数组来说,指的是数组元素的个数;对二维数组来说,指的是数组的最大行号和最大列号。系统规定行标号和列标号参数的下界为1。数组的下标允许使用圆括号或方括号括起来。在同一个数组中,不同的数组元素数据类型可以不同。数组一旦被定义之后,该数组的每个元素的初值为逻辑假值,可以使用有关的命令给数组元素赋值。数组元素可以包含各种类型的数据,第一次定义时被赋值为.F.。6/5/2023111科技学院王广数组中各有序变量(数据元素)组成数组的成员,称为数组元素。数组元素实质上是一个内存变量,也称数组变量,它们具有相同变量名即数组名,彼此以下标区分;数组元素的名称(变量名)用数组名加下标构成。如AA(1),BB(2,3)分别表示一维数组AA第1个元素,二维数组BB中第2行第3列的元素;一维数组的元素只有一个下标,二维数组的元素有两个以逗号分隔的下标;下标必须是非负数值,可以是常量、变量、函数或表达式,下标值会自动取整。如AA(1.5),AA(nA1),AA(2+10/3)等;数组元素的数据类型决定于最后赋值的数据类型;不同数组元素的数据类型可以不同;数组元素与普通内存变量一样操作,可以赋值和引用。6/5/2023112科技学院王广定义数组的命令DECLAREArrayName1(nRows1[,nColumns1])[,ArrayName2(nRows2[,nColumns2])]...命令功能该命令用于定义一维或二维数组。命令说明DIMENSION命令和DECLARE命令都可以一次定义多个数组。6/5/2023113科技学院王广数组元素的赋值与普通内存变量一样,可以通过STORE命令或“=”来实现。示例:给二维数组X和一维数组Y进行赋值。DIMENSIONX(3,4),Y(3)STORE5TOXY(1)=325Y(2)=“ABC”Y(3)=.T.6/5/2023114科技学院王广【例2】定义数组,并给数组赋值。DECLAREY(3),X(2,2) Y=123 X(1,1)=345 X(1,2)="abc" X(2,1)={^2003-03-25} X(4)=.T. ?Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4) 6/5/2023115科技学院王广数组的重定义数组的重定义:使用DECLARE或DIMENSION命令对已定义好的数组的尺寸和维数进行改变,即:将一维数组变为二维数组或将二维数组变为一维数组,并且可以改变数组元素的个数,同时将原数组的数据自动复制到重定义的同名数组(新数组)中。数据的复制原则:把原数组和新数组都看作是一维的;将原数组中的数据从序号1开始顺序地复制到新数组对应的数组元素中去;若新数组的元素个数多于原数组的元素个数,则新增加的数组元素取值为.F.,反之,只取原数组中的前若干个值。数组下标的排列规则:数组从下标1开始排列,二维数组的元素排列是先按行排,后按列排。示例:己定义了数组A(6)与数组B(2,3),它们对应的下标排列如下:A(6)数组:A(1),A(2),A(3),A(4),A(5),A(6)B(2,3)数组:B(1,1),B(1,2),B(1,3),B(2,1),B(2,2),B(2,3)6/5/2023116科技学院王广数组的释放数组的释放:将数组从内存中删除,释放其所占的内存空间,就是数组的释放。命令格式:格式1:CLEARALL功能:关闭所有文件,同时清除所有的内存变量、数组等,但不清除系统内存变量。格式2:CLEARMEMORY功能:清除所有内存中的变量和数组,但不清除系统内存变量。格式3:RELEASE<内存变量名表或数组名表>或RELEASEALL[LIKE<通配符>/EXCEPT<通配符>]功能:清除指定的内存变量或数组,但不清除系统内存变量。6/5/2023117科技学院王广系统变量系统变量是VisualFoxPro建立并维护的内存变量。这些变量的名称由系统定义,并且以下划线“_”开头。系统变量是VisualFoxPro系统特有的内存变量,它由VisualFoxPro系统定义、维护。系统变量有很多,其变量名均以下划线“_”开始,因此在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名冲突。系统变量设置、保存了很多系统的状态、特性,了解、熟悉并且充分地运用系统变量,会给数据库系统的操作、管理带来很多方便,特别是开发应用程序时更为突出,学习时可对此有所关注。6/5/2023118科技学院王广系统内存变量是指VFP系统定义的一批变量,它门都以下划“_”开头,分别用于控制外部设备、屏幕输出格式或处理有关计算器、日历、剪贴板等方面的信息。

【例】在命令窗口中输入DISPLAYMEMORY命令,以满屏幕暂停的方式显示当前系统的内存变量,结果如图所示。6/5/2023119科技学院王广表达式数值运算符及数值表达式字符表达式日期表达式关系表达式逻辑表达式6/5/2023120科技学院王广在一个表达式中可能包含多个由不同运算符连接起来的、具有不同数据类型的数据对象,但任何运算符两侧的数据对象必须具有相同数据类型,否则运算将会出错;由于表达式中有多种运算,不同的运算顺序可能得出不同结果,甚至出现运算错误,因此当表达式中包含多种运算时,必须按一定顺序施行相应运算,才能保证运算的合理性和结果的正确性、惟一性。用户也可以通过给表达式加圆括号的方式,改变其默认运算顺序。在VisualFoxPro系统中,各类运算的优先顺序如下:

圆括号>算术和日期运算>字符串运算>关系运算>逻辑运算同一类运算符也有一定的运算优先顺序,这在各类表达式中分别介绍。如果有多个同一级别的运算,则按在表达式中出现的先后顺序进行运算。6/5/2023121科技学院王广数值表达式数值表达式是由算术运算符将常量、变量、字段或函数连接起来的式子,其结果仍为数值型数据。例:?(3*4+SQRT(25)/5)*4&&结果等于52?(7**2-1/5)*6 &&结果等于292.8

6/5/2023122科技学院王广运算符功

能表

例运算结果优先级别()圆括号(2-5)*(3+2)-15最高|||最低-取相反数-(3-8)5**、^乘幂2**5、3^232、9*、/乘、除2*10、25/520、5%取余数20%50+、-加、减36+19、29-4755、-18数值表达式又称算术表达式,其运算对象和运算结果均为数值型数据。数值运算符的功能及运算优先顺序,如下表所示。表中运算符按运算优先级别从高到低顺序排列,同一优先级的按从左到右计算。6/5/2023123科技学院王广数值表达式示例store7.5toxstore9.7toy?(1+x/y)/(1-x/y) &&显示7.81818?x^2+3*x*y/(x-y) &&显示-42.95455?(x^3+y^3)/(1-x*y)&&显示-18.59997?sqrt(x^2+y^2)-sqrt(x*y) &&显示3.7326/5/2023124科技学院王广字符表达式字符表达式是由字符运算符将常量、变量、字段或函数连接起来的式子,其结果仍为字符型数据。在字符运算符两边的数据必须是字符型数据。字符运算符有“+”和“-”两种。(1)直接连接(+)即用“+”将两个或多个字符串首尾连接形成一个新的字符串。(2)去空连接(-)即用“-”将两个或多个字符串相连接。如果前一个字符串尾部有空格,则将此空格移到后一个字符串的尾部。【例】?“ABC”+“DEF”=“ABCDEF”?“ABC”-“DEF”=“ABCDEF”6/5/2023125科技学院王广 字符运算符两个连接运算的优先级别相同,但高于$的比较运算。运算符功能表达式举例运算结果+串1+串2:两串顺序相连接’12‘+’56’’1256’-串1-串2:串1尾空格移到串2尾后再顺序相连接’12‘-‘56’‘1256‘$串1$串2:串1是否为串2子串‘12’$‘a12345’‘1234’$‘34512’.T..F.6/5/2023126科技学院王广日期表达式由日期运算符将一个日期型或日期时间型数据与一个数值型数据连接而成的运算式称为日期表达式。日期表达式是由+、-运算符将日期连接起来的表达式,运算结果是日期或日期时间数据,也可以是数值型数据。日期运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少一个天数,在日期时间数据上增加或减少一个秒数。两个运算的优先级别相同。6/5/2023127科技学院王广合法的日期时间表达式如下表所示。表达式结果及类型<日期>+<天数>日期型(指定天数后的日期)<日期>-<天数>日期型(指定天数前的日期)<日期>-<日期>数值型(两个日期之间的天数)<日期时间>+<秒数>日期时间型(指定秒数后的日期时间)<日期时间>-<秒数>日期时间型(指定秒数前的日期时间)<日期时间>-<日期时间>数值型(两个日期时间之间的秒数)【例】?{04/03/99}+20&&结果为{04/23/99}?{04/03/99}-20&&结果为{03/14/99}?{04/03/99}-{03/14/99}&&结果为20(两日期相距的天数)需要注意的是:两个日期值相加是无意义的。6/5/2023128科技学院王广关系运算符及关系表达式关系表达式是由关系运算符将两个运算对象连接起来的式子,即:<表达式1><关系运算符><表达式2>,其运算结果是逻辑型数据.T.或.F.。

关系运算符见下表所示。运算符意义运算符意义>大于>=大于等于<小于<=小于等于=等于==字符串精确比较<>、#或!=不等于$包含说明:关系运算符两边表达式的数据类性必须相同。

6/5/2023129科技学院王广●相等比较:用运算符“=”进行两串比较时,或者到达右端串的末尾字符为止(当SETEXACTOFF时)或者当到达两串的末端为止(当SETEXACTON时),以判断两串是否相等;●恒同比较:用运算符==进行两串的恒同比较时,不论SETEXACT的设置如何,只有当两串长度相同,字符相同,排列一致时才成立;●大小比较:用运算符“<”或“>”进行两串比较时,比较到第1个不相同字符为止,否则,长度较长的串较“大”;●其他比较:除上述运算符之外的其他运算符<>、<=和>=的比较,均可看作是两个运算符以逻辑“或”的关系构成的复合运算;6/5/2023130科技学院王广关系运算规则关系表达式是由关系运算符将数值表达式、字符表达式、日期表达式连接起来的表达式,表达式成立时,结果为逻辑真,返回值为.T.,否则为逻辑假,返回值为.F.。关系运算符的优先级别相同。数值型和货币型数据根据其数据大小进行比较;日期(时间)早的日期(时间)型数据小于日期(时间)晚的日期(时间)型数据;逻辑型数据比较:.T.>.F.;6/5/2023131科技学院王广字符型数据的比较按照各个位置的字符进行比较在VisualFoxPro系统中,字符型数据的比较大小方式相对复杂,需要根据SETCOLLATETO“cSequenceName”(比较序列名称)的状态决定结果:“Machine”序列为默认规则,即按机器内码排序:空格<数字符号<大写字母<小写字母<汉字(国际码,一级汉字按拼音顺序)“PinYin”序列,按照拼音次序排序“Stroke”序列,按照书写笔画数排序(后两种情况下,小写字母<大写字母)比较序列还有其他西文方式6/5/2023132科技学院王广汉字系统默认按汉字的拼音排列汉字的顺序,也就是以汉字的拼音顺序比较“大小”,因此,汉字比较实质上是以字母的顺序进行比较;但VisualFoxPro系统可以设置汉字按笔画排列顺序,因而,汉字的“大小”就决定其笔画数的多少。用菜单设置汉字排列顺序方式的操作步骤为:单击【工具】|【选项】命令,将打开“选项”对话框中,在“数据”选项卡的“排序序列”下拉列表框中选择“Stroke”项并确定,系统将按汉字的笔画数进行汉字的排序、比较运算。若选择“Machine”项则字符按机内码次序排序,汉字在所有西文字符后,汉字内部按国标码排序。6/5/2023133科技学院王广例:在不同的字符排序设置下比较字符串的大小。

SETCOLLATETO"MACHINE"?"x"<"xyz","x"<"XYZ","x"<"X"

?"湖南"<"湖北","湖"<"湖南","你好"<"您好"

SETCOLLATETO"PINYIN"?"x"<"xyz","x"<"XYZ","x"<"X"

?"湖南"<"湖北","湖"<"湖南","你好"<"您好"SETCOLLATETO"stroke"?"x"<"xyz","x"<"XYZ","x"<"X"?"湖南"<"湖北","湖"<"湖南","你好"<"您好"6/5/2023134科技学院王广“相等”关系判断“精确比较”的说明:=与==不完全相同。前者称为普通比较,后者称为精确比较。当环境设定为SETEXACTON时,二者并无区别;当环境设定为SETEXACTOFF时,结果是不同的。比较时,使用右字符串去比较左字符串。当右字符串比较完,则比较结束。如果此时的比较结果相同,则=比较的值为.T.,而不管左字符串是否结束;相反,==则要求左右必须完全一致,结果才为.T.。【例】?“abcde”=“abc”当设置了SETEXACTO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论