3.扩展函数

3.1 普通扩展

普通的扩展函数使用方法与Supcan Treelist相同，请参见Treelist的扩展函数。

3.2 针对对象的扩展

Freeform函数中，有很多函数是针对 <Object> 的，以 GetValue 函数为例，该函数参数是对象的 ID，函数例如：

     var price = AF.func("GetValue", "price");   //price是某个输入对象的ID

硕正套件自1.0.84.0开始，支持这样的写法：

     var price = AF.func("price.GetValue", "");

上述函数中凡是针对对象的函数, 第一个参数 (即ID) 都可以按上面的写法书写，再举例如下:

     AF.func("upload.SetFiles", "");  //相当于：AF.func("SetFiles", "upload")
     AF.func("Tab1.GetCurSelId", "");  //相当于：AF.func("GetCurSelId", "Tab1")
     AF.func("Edit1.SelectCell", "");  //相当于：AF.func("SelectCell", "Edit1")

3.3 大粒度组件的扩展

对于嵌入的普通的大粒度组件(即<Component>)，扩展函数还有另一种使用方法，函数名可以直接写成 "ID号.函数名" 这样的格式，例如：

     AF.func("Te1.Load", xml);   // Te1是内部Treelist的ID

与如下常规用法效果一样：

     var h = AF.func("GetHandle", "Te1");  //先取得内嵌Treelist  Te1的句柄
     AF.func(h + "Load", xml);

在Freeform的演示页“20.Freeform框架”中有这样的实例，请参考。

3.4 选项卡组件的扩展

对于选项卡(Tab)中嵌入的大粒度组件(即<Component>)，扩展函数的函数名可以直接写成 "Tab的ID号.ID号.函数名" 这样的格式，例如：

     AF.func("Tab1.T1.Load", xml);   // Tab1是选项卡的ID号，t1是Tab1的内部Treelist的ID

对应的XML结构如下：
当然，这样写也可以：

     var h = AF.func("GetHandle", "Tab1.t1");  //先取得内嵌Treelist  T1的句柄
     AF.func(h + "Load", xml);