自定义函数

1、定义函数

在菜单的“管理项目”功能区,单击“内部函数”按钮,即可定义自己的函数:

自定义函数有一个Args参数,这是一个Object类型的数组,用于获得传递给该函数的参数,例如Args(0)表示第一个参数,Args(1)表示第二个参数。
参数的个数不限,而且因为是Object类型,所以任何类型的数据都可以作为参数传递给自定义函数。
需要注意的是,自定义函数中的Return语句必须有返回值,否则会报错,如果要中断函数的执行,又不需要返回任何值,可以:

Return Nothing

2、执行函数

Foxtable提供了一个Functions类型,用于管理和执行自定义函数,执行自定义函数的语法为:

Functions.Execute(函数名, 参数1, 参数2, 参数3....)

示例一

增加一个自定义函数,名称为Max,代码为:

Dim MaxVal As Double = Args(0)
For
i As Integer = 1 To Args.Length - 1
    MaxVal = Math.Max(MaxVal,Args(i))

Next
Return
MaxVal

该自定义函数可以比较任意个数的参数,并返回最大的一个,例如在命令窗口执行:

Output.Show(Functions.Execute("Max",1,3,5,7,9))

即可显示1、3、5、7、9几个数值中的最大数9。

示例二

增加一个自定义函数,名称为ClearDataRow,代码为:

Dim dr As DataRow = Args(0)
For
Each dc As DataCol In dr.DataTable.DataCols
   
If dc.Expression = "" Then '有表达式的列,不能直接赋值
        dr(dc.Name) =
Nothing
    End
If
Next

以后就可以利用该函数清空任意一行的数据,例如清空当前表选定行的数据:

Functions.Execute("ClearDataRow",CurrentTable.Current.DataRow)

3、函数名的自动完成列表

在代码编辑器中,输入:

Functions.Execute("")

光标停留在两个双引号之间,然后按Tab,既可列出所有内部函数供选择,而且会在帮助窗口显示函数代码:

3、手动选择函数名

选择 代码编辑器的"内部函数"页,该页会自动列出已经定义好的内部函数,双击函数名可以直接插入执行此函数的代码,还提供了两个按钮,分别用于编辑选定函数的代码和打开函数管理器:


本页地址:http://www.foxtable.com/webhelp/topics/1486.htm