微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题Foxbase中自定义函数的意义和函数的妙用
栏目软件操作与技巧
作者杨永斌
发布1996-04-26
  一、自定义函数:
  用户自定义函数(UDF)实质上是一段简单的FOXBASE+程序,其中包括一组有效的FOXBASE+语句。因此,自定义函数可以构成一个独立的命令文件,或作为一个过程包括在过程文件中。自定函数的定义方法:自定义函数由三部分组成。第一部分是PARAMETER语句定义函数的形式参数,若无参数,此语句也可缺省;第二部分是函数体,其中完成各种运算;第三部分是由RETURN语句返回函数值。自定函数定义结束后,也象标准函数一样调用。
  例如:自定义一个求长方形面积的函数:
  ***AREA.PRG***
  PARAMETER L,W
  A=L*W
  RETURN A
  调用时:.STURE AREA(5,2) TO Y
  .?Y
  10
  二、函数的妙用:
  在此仅以IIF()函数为例,说明在程序中灵活使用函数的作用:
  IIF()函数的语法形式为:IIF(<逻辑表达式>,<表达式1>,<表达式2>),其功用是:当<逻辑表达式>为真时返回<表达式1>的值,否则,返回<表达式2>的值。
  例如函数:IIF(A>B,A,B)的作用是求A、B的最大值,此函数与程序段:
  IF A>B
  M=A
  ELSE
  M=B
  ENDIF等价。
  显然IIF()函数可以简化程序代码,但由于IIF()函数的介入,给表达式的求值赋予了新意,它使得一个表达式的求值可以有选择地从某一子表达式求值。而表达式可以出现在许多命令、函数中,则IIF()函数给这些命令函数增添了新的条件选择功能。例如对一个工资库作工资调整,其中对初级职称以下者工资普调10元,初级职称调20元,中级调30元,高级调40元,则可用以下四条语句完成:
  REPLACE ALL 工资 WITH 工资+10
  REPLACE ALL 工资 WITH 工资+10 FOR 职称="助工"
  REPLACE ALL 工资 WITH 工资+20 FOR 职称="工程师"
  REPLACE ALL 工资 WITH 工资+30 FOR 职称="高工"
  若引入IIF()函数,可用以下一条语句完成:
  REPLACE ALL 工资 WITH IIF(职称="高工",工资+40,IIF(职称="工程师",工资+30,IIF(职称="助工",工资+20,工资+10)))
  显然程序代码被简化,同时执行时间也将缩短,因为前者需扫描库文件四次,后者仅扫描一次,若库文件较大,时间比也就较明显。