您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > FoxPro常用函数及应用
2.3FoxPro常用函数及应用FoxPro提供了大量的函数(也称为内部函数),每个函数可以完成一个特定的加工过程,并返回一个值。FoxPro内部函数的调用格式如下:函数名(参数1,参数2,…,参数n)每个函数都规定了不同的参数个数、顺序和类型,调用时必须在个数、次序、类型上和规定的一致。每个参数都可以用常量、变量或表达式(包括函数)来代替,如果函数无参数,函数名后的圆括号也不能够省略(宏代换函数&是唯一的例外)。使用函数,必须注意三个问题:函数的调用格式;参数的个数及其数据类型;函数返回值的类型。2.4.2命令的书写规则使用FoxPro命令时应遵循如下规则:⑴每条命令必须以命令动词开头,且必须符合命令的语法格式。⑵限制性短语在命令行中出现的先后次序无关紧要。⑶命令动词与限制性短语之间、子句与子句之间以及各个选项之间必须至少用一个空格隔开。⑷命令中的字母不分大小写⑸一条命令的最大长度可以为2048个字符,如果命令较长可分多行书写,但必须在每行的结尾使用分行符“;”(最后一行不用)。⑹一行内只允许写一条命令,每条命令用回车符作为结束标志。建立数据库•定义数据库的结构,即确定数据库的字段名(Name)、字段类型(Type)、字段宽度(Width)和小数位数(Dec)。•字段名是某个字段的名字,在一个数据库文件中必须唯一。字段名必须以字母开头,后跟字母、数字或下划线,最多可达10个字符。字段名中不允许有空格,且不分大小写字母,FoxPro一律看作大写。在中文版FoxPro中,允许使用汉字作为字段名(一个汉字占两个字符的宽度)。•字段类型是指该字段所存放的数据的类型。Foxpro2.5/2.6所支持的数据类型包括:字符型(C)、数值型(N)、浮点型(F)、日期型(D)、逻辑型(L)、备注型(M)和通用型(G)。•字段宽度说明该字段允许存放对象的最大字符数。字符型字段的宽度为1~254。数值型和浮点型字段的宽度为1~20。系统自动设置逻辑型、日期型字段的宽度分别为1和8。备注型字段的长度仅受磁盘可用空间的限制.小数位数仅用于数值型和浮点型字段,允许取值0~15,有效位数为16位,统计宽度时,小数点本身也占一个字符。打开数据库──USEUSE[文件名|?][IN数值表达式1][AGAIN][INDEX索引文件名表|?[ORDER[数值表达式2|idx索引文件|[TAG]索引标识名[OFcdx索引文件][ASCENDING|DESCENDING]]]][ALIAS别名][EXCLUSIVE][SHARED][NOUPDATE]2.4FoxPro命令的格式及书写规则每条Foxpro命令都有其特定的语法结构,用以说明为实现该命令的功能所必须包含和可以任选的成分。一条典型的操作命令由命令动词、操作对象和限制性短语三部分组成。⒈命令动词所有命令都以命令动词开头,它规定了命令要完成的功能。命令动词通常为一个英文动词,该动词的英文含义表示要执行的操作。例如,HELP(帮助命令)、DO(执行命令)。⑷REST操作对象为从当前记录开始直到最后的所有记录⒊限制性短语限制性短语规定对操作的种种限制,包括条件限制(FOR、WHILE)、数据来源限制(FROM、WITH)和输出结果去向限制(TO)等。例如:DISPLAYNEXT20FIELDS姓名,职称,工作单位FOR教授$职称TOPRINT操作对象指出命令所作用的对象,可以是字段名、操作范围、文件名等。其中,操作范围规定了命令所作用的记录的范围。有如下四种情况:⑴ALL操作对象为全部记录⑵NEXTn操作对象为从当前记录开始的连续n条记录⑶RECORDn操作对象为第n条记录显示数据库记录LIST/DISPLAY[FIELDS表达式列表][范围][FOR逻辑表达式1][WHILE逻辑表达式2][OFF][NOCONSOLE][NOOPTIMIZE][TOPRINTER[PROMPT]|TOFILE文件]⑴省略范围和条件,对LIST,默认范围为ALL;对DISPLAY,默认为当前记录。⑵当SETDELETE设置为ON时,逻辑删除的记录不会显示出来。⑶带OFF选项不显示记录号。⑷WHILE逻辑表达式2显示连续符合条件的记录,直到逻辑表达式2为假,即使其后仍有使逻辑表达式2为真的记录也不再显示。⑸FOR逻辑表达式1显示指定范围内符合本条件的所有记录。•⑹使用TOPRINTER[PROMPT]/TOFILE文件选项可将数据库记录送到打印机或存入指定的磁盘文件(缺省扩展名为.TXT)中。加入PROMPT可打开一个对话框,以设定打印机的状态及份数等,该参数只适用于FoxProforWindows。⑺使用NOCONSOLE选项可使数据在打印或存人磁盘文件的同时不显示在屏幕上,加入NOOPTIMIZE参数将不用Rushmore优化技术。记录的定位与顺序查找1.绝对定位──GO│GOTOGO/GOTO[RECORD]数值表达式1[IN数值表达式2|IN字符表达式1]或者GO/GOTOTOP|BOTTOM[IN数值表达式2|IN字符表达式2]⑴数值表达式1的值必须大于0且小于或等于数据库中的记录个数。⑵GOTOP将记录指针指向第一条记录;GOBOTTOM将记录指针指向最后一条记录。⑶IN数值表达式2/IN字符表达式表示在不退出本工作区的情况下移动别的工作区中的记录指针。⑷若数据库建了索引,则GOTOP指向关键值最小的记录,GOBOTTOM指向关键值最大的记录。2.相对定位──SKIP【格式】SKIP[数值表达式1][IN数值表达式2|字符表达式]【功能】在当前或指定的数据库中向前或向后移动记录指针。【说明】⑴数值表达式1确定记录指针移动的记录数,为正数则向后移;为负数则向前移,若省略,则向后移一条记录。⑵可在当前工作区中移动其它工作区中数据库的记录指针。⑶数据库的第一条记录不是文件头,只有执行SKIP-1后才到达文件头,即BOF()值为.T.,RECNO()为1;同样,最后一条记录不是文件尾,只有执行SKIP后,才到文件尾,即EOF()值为.T.。3.条件定位──LOCATE【格式】LOCATEFOR逻辑表达式1[范围][WHILE辑表达式2][NOOPTIMIZE]【功能】条件查询数据库中第一个满足给定条件的记录。【说明】⑴该命令只能找到满足条件的第一条记录,此时FOUND()函数返回.T.,EOF()返回.F.。⑵可用CONTINUE连续查找是否还有满足条件的记录,若无,则FOUND()函数返回.F.,EOF()返回.T.。⑶命令中省略范围时默认为ALL。⑷其余选项功能同前。3.2.4插入记录【格式】INSERT[BEFORE][BLANK]【功能】在当前记录的后面插入一条新记录且立即显示此新记录用于编辑。【说明】⑴加上BEFORE则所插入的记录会放于当前记录指针所指的记录前面,且用于编辑,若SETCARRY设置为ON,则上一条记录的内容会自动带到新的记录中。(2)BLANK用来向当前数据库的当前记录之后(前)插入一条空记录。3.2.5删除记录对于无用的记录,可以删除它。在FoxPro中,删除分为逻辑删除和物理删除。逻辑删除的记录还可以恢复,而物理删除的记录则不能恢复。1.逻辑删除记录──DELETE【格式】DELETE[范围][FOR逻辑表达1][WHILE逻辑表达2][NOOPTIMIZE]【功能】在当前的数据库中给要删除的记录做删除标记。【说明】⑴给要删除的记录做删除标记,但并未从数据库中真正删除记录。⑵省略范围和条件,则默认为当前记录。⑶其它选项同前。2.恢复记录──RECALL【格式】RECALL[范围][FOR逻辑表达式1][WHILE逻辑表达式2][NOOPTIMIZE]【功能】将数据库中标有删除标记的记录恢复(还原)【说明】恢复当前选择的数据库中范围为符合条件的做了删除标记的记录,意即删除标记被取消,省略范围和条件时,默认为当前记录。3.物理删除记录──PACK/ZAP【格式一】PACK[MEMO][DBF]【功能】把当前打开的数据库文件中做过删除标记的记录真正删除掉。【说明】⑴一旦执行PACK命令,被删除的记录不能再使用RECALL命令恢复。(2)使用MEMO选项只清除备注文件中的多余空白,以减小备注文件的大小,但不删除带“标记”的记录;使用DBF选项只删除带“标记”的记录,但不清除备注文件中的多余空白;不带MEMO和DBF选项,则可以同时删除带“标记”的记录和备注文件中的空白。【格式二】ZAP【功能】删除当前打开的数据库中所有的记录。【说明】ZAP命令将当前数据库中的所有记录真正删除,仅留下数据库结构。ZAP等价于DELETEALL和PACK命令。3.2.6自动替换字段【格式】REPLACE字段1WITH表达式1[ADDITIVE][,字段2WITH表达式2[ADDITIVE]...][范围][FOR逻辑表达式1][WHILE逻辑表达式2][NOOPTIMIZE]【功能】用表达式(表达式1、表达式2…)的值替换数据库中原来字段(字段1、字段2…)中的数据。【说明】⑴对于数值型字段,若表达式1,表达式2…的值比字段实际宽度长,那么REPLACE命令将按下面规则强制执行:①首先,截取小数的位置,对字段的小数部分四舍五入;②如果其值还不适合字段宽度,则用科学计数法替换字段的内容(肯定会损失精度);③最后,所有方法都失败,用“*”替换字段的内容。⑵省略范围时替换当前记录中的字段。⑶ADDITIVE选项只适用于备注字段的替换。若使用该选项,则把新内容追加到原备注字段内容后,否则,将覆盖原备注字段的内容。⑷表达式1,表达式2…的数据类型应分别与字段1,字段2…的类型相同,否则就会出错。
本文标题:FoxPro常用函数及应用
链接地址:https://www.777doc.com/doc-314245 .html