10.函数

Supcan Treelist的函数是通过插件/加载项的 func(string funcname, string paras) 函数间接调用的，Supcan Treelist组件的可用funcname及用途说明如下表。
很多函数需要行、列参数，行、列参数的书写规则为：

- 行号从 0 开始计数；
- 列名应当采用 XML 描述文件中指定的列名；
- 列名也可以用 #1、#2... 顺序表示, 这样性能最好，但需要考虑列被拖拽交换次序的因素；
- 如果不是考虑大量密集调用的性能因素，强烈建议不要采用#1、#2这种写法.

分类 | 函数名 | 用途
--- | --- | ---
初始函数 | Build | 创建Treelist
Load | 加载数据
Refresh | 刷新数据
基本函数 | GetRows | 取得行数
GetCols | 取得列数
SetProp(用途1) | 动态更改 Properties 属性
GetProp(用途1) | 取得 Properties 属性内容
SetProp(用途2) | 设置打印配置属性
GetProp(用途2) | 取得打印配置属性
GetUserProps | 取得 Properties 中的全部自定义属性名
SetColProp | 动态更改列属性
GetColProp | 取得列的属性内容
GetColUserProps | 取得某列的全部自定义属性名
SetGroupProp | 动态更改分组(Group)属性
GetGroupProp | 取得分组(Group)的属性内容
GetDroplistProp | 取得某下拉树列表的属性
SetDroplistProp | 更改下拉内容属性
AddDroplist | 增加下拉字典资源
GetAsTree | 取得当前是否以树展现
SetAsTree | 切换到以树或列表展现
GetHandle | 取得Treelist或下拉的句柄
OpenFreeformBar | 打开freeform工具条
CloseFreeformBar | 关闭freeform工具条
OpenEditFreeformDialog | 打开用于输入的freeform对话框
单元格数据 | GetCellData | 取得某单元格的数据
SetCellData | 设置某单元格的数据
GetCellText | 取得某单元格的显示内容
SetCellText | 设置某单元格的显示内容
SetCellDataText | 同时设定某单元格的 key-value对
GetDropCellData | 取得某单元格对应到下拉树列表选中行中某列的数据
SetRowCellData | 设置整行的单元格数据
SetColCellData | 设置整列的单元格数据
GetRadioCol | 取得某行某个GroupID的单选框(RadioButton)的选中列
GetDroplistIndex | 取得某下拉List的当前选中行顺序号
SetDroplistIndex | 选中下拉List中的某行
GetEditText | 取得当前输入框中的文字
SetEditText | 设置当前输入框中的文字
GetAutoId | 取得某字段唯一的值
单元格属性 | GetCellEditAble | 取得某单元EditAble
SetCellEditAble | 单独设置某单元格EditAble
GetCellBackColor | 取得某单元的背景色
SetCellBackColor | 单独指定某单元的背景色
GetCellTextColor | 取得某单元的文字色
SetCellTextColor | 单独指定某单元的文字色
GetCellAlign | 取得某单元的文字水平对齐
SetCellAlign | 单独指定某单元的文字水平对齐
GetCellVAlign | 取得某单元的文字垂直对齐
SetCellVAlign | 单独指定某单元的文字垂直对齐
GetCellFontIndex | 取得某单元的字体序号
SetCellFontIndex | 单独指定某单元的字体序号
GetCellHyperLink | 取得某单元是否超链接
SetCellHyperLink | 单独指定某单元是否为超链接
GetCellTip | 取得某单元的Tip
SetCellTip | 单独指定某单元的Tip
GetCellLeftImage GetCellRightImage | 取得某单元的左侧/右侧小图标
SetCellLeftImage SetCellRightImage | 单独指定某单元的左侧/右侧小图标
SetCellProp | 设置某单元格的自定义属性
GetCellProp | 取得某单元格的自定义属性的值
GetCellProps | 取得某单元格的所有自定义属性
单元格合并 | MergeSame(用途1) | 合并某行给定范围内相同内容的单元格
MergeSame(用途2) | 合并某列给定范围内相同内容的单元格
MergeSame(用途3) | 多个列按大类、小类方式, 跨行合并相同内容的单元格
Merge | 合并指定范围内的单元格
DeMerge | 解除单元格的合并
GetCellStatus | 取得某单元格的状态
GetMainCell | 取得某单元格所在的合并区域中的主单元格(即左上角单元格)
GetMergedCells | 取得覆盖了某个单元格的合并范围
CopyCellDataByMerge | 将主单元格的数据复制给被合并的各个单元格
树相关 | IsTreeNodeRow | 是否树节点行
GetTreeLevel(用途一) | 取得某行在树中的层次级别，从0开始计数
GetParentRow | 取得某行的父节点所在行
GetChildRow | 取得某行的第一个儿子
GetChildRows | 取得某行的所有儿子
GetNextSibling | 取得某行的下一个/前一个同级(即同辈、兄弟)的行
SetTreeImage | 更改树的图标
GetTreeImage | 取得树的图标的URL
Expand(用法1) | 展开树节点
Expand(用法2) | 展开树的前 n 层节点
Collapse | 收拢树节点
IsExpand | 树节点是否已展开
DeleteChild | 删除所有子孙
IsLazyloadRow | 某行是否Lazyload行
RebuildTreeCombine | 重新整理 TreeCombine 的父节点的 Checkbox
RebuildPid | 重新整理 treeformat=byPid 的单列多层树的树杈树叶
ClearLazyload | 强制设定某Lazyload行没有子孙
当前行 / 当前单元格 | GetCurrentRow (方式一) | 取得当前选中的行
GetCurrentRow (方式二) | 取得当前选中的行
GetCurrentRows | 取得当前选中行的数量
IsRowSelected | 某行是否被选中
GetCurrentCell | 取得当前选中的单元格
SelectRow | 选定当前行
SelectCell | 将焦点切换到某单元格
CloseDropdown | 收起当前正处于下拉状态的树列表
CloseEdit | 结束当前单元格的输入状态
LockCurrent | 锁定当前行，使之无法被切换
UnlockCurrent | 解除锁定当前行
行列增删 | InsertRows (语法一) | 插入行
InsertRows (语法二) | 插入行
InsertCol | 插入列
DeleteRows (方式一) | 删除行
DeleteRows (方式二) | 删除行
DeleteCurrentRow | 删除当前行
CopyCurrentRow | 复制当前行
PasteCurrentRow | 粘帖到当前行
PasteNewRow | 粘帖到新增行
MoveCol | 移动某列的位置
MoveRow | 移动某行的位置
行列属性 | GetNextValidRow | 遍历行
GetNextValidCol | 遍历列
GetNextVisibleCol | 遍历可视列
IsTotalRow | 是否合计行
IsSubTotalRow | 是否小计行
GetTreeLevel(用途二) | 取得某小计行的分类层次级别，从1开始计数
GetRowKey | 取得某行的Key(即键值)
GetRowEditAble | 某行是否能修改
GetColEditAble | 某列是否能修改
SetRowEditAble | 置某行能否修改
SetColEditAble | 置某列能否修改
GetColName | 取得列名
GetColTitle | 取得列标题
SetRowDeleteAble | 单独指定某行是否允许被删除(仅限于右键菜单)
GetRowDeleteAble | 取得某行是否允许删除
GetRowBackColor | 取得某行被单独指定的背景色
SetRowBackColor | 单独指定某行的背景色
GetRowTextColor | 取得某行被单独指定的文字色
SetRowTextColor | 单独指定某行的文字色
GetRowEnable | 某行是否Enable
SetRowEnable | 置某行为Enable或disable
IsRowHide | 某行是否隐藏
HideRow | 隐藏某行
IsColHide | 某列是否隐藏
HideCol | 隐藏某列
GetColCheckState | 取得isCheckboxOnly列标题处的CheckBox的状态
SetColCheckState | 设置isCheckboxOnly列标题处的CheckBox的状态
GetColGroup | 取得某列所属的分组(Group)
行列操作 | EnsureVisible | 保证让某个单元格或某行在屏幕中可见
Find | 条件搜索
FindAll | 条件搜索
FindByKey | 按键值搜索
GetUnique | 取得某列(或多列)的唯一的值的数组
Filter | 过滤
ApplyFilter | 对某个下拉执行过滤
EnableDrag | 使2个Treelist之间能够拖拉行
DisableDrag | 终止2个Treelist之间的行拖拉
Copy | 将某单元格/某行/某区块内容复制进内存剪切板
ScrollToRow | 窗口滚动到某行
GetScrollRow | 取得窗口首个可见行
提交 | Validate | 验证
GetChangedXML | 取得修改过的内容, 包括增、删、改
GetRowChanged | 取得某行或整表的修改状态
SetAsNewRow | 修改某行的“新增行”状态(和GetRowChanged的 "N" 相关)
GetCellChanged | 取得某单元格是否被修改过
SetCellChanged | 强制更改某单元格的修改状态
SetColCellChanged | 强制更改某列所有单元格的修改状态
ResetChanged | 合并修改内容，清除行和单元格的修改标记，以避免重复提交.
GetDeleteRows | 取得被删除的总行数
GetDeleteKey | 取得被删除的行中某行的Key
UnDelete | 恢复被删除的行
Undo/Redo | EnableUndo | 开启Undo功能
IsUndoEnabled | Undo功能是否已开启
Undo | 执行Undo
Redo | 执行Redo
SaveUndo | 将当前状态保存到 Undo 缓存
UndoAble | 当前是否有Undo可操作
RedoAble | 当前是否有Redo可操作
ResetUndo | 清空Undo缓存以重置Undo
其它 | GetCustom | 取得当前Treelist的定制信息
SetCustom | 设置Treelist定制信息
AddMenu | 增加自定义的弹出菜单项
EnableMenu | 配置内置的右键菜单项，使之能显示
DisableMenu | 配置内置的右键菜单项，使之不显示
GetExpress | 取得表达式(Expresses)
SetExpress | 设置表达式(Expresses)
ReCalc | 重新新建表达式、合计小计
GetRedrawAble | 是否能够重画
SetRedrawAble | 设置让Treelist能够重画或不能重画
PrintPreview | 打印预览
Print | 直接打印
Import | 从 Excel 文件导入数据
Export | 取得XML格式的全部数据
OpenImportDialog | 打开从 Excel 导入数据的对话框
OpenExportDialog | 打开转换输出对话框、或直接转换输出
SetExportFilename | 指定转换输出的文件名
OpenDeleteRowsDialog | 打开删除行对话框
AddHotKey | 增设快捷键

函数详解:

Build | 根据XML描述文件创建Treelist |
参数1 | XML所在的URL(相对或绝对)，或者直接就是XML大串
参数2 | 可选, 允许是XML中<Properties>下的任何属性，表示将强制采用本属性, 多个属性间以分号(；)分隔，例如 isTree=false;editable=true 可见参数2能方便地使单个XML应用于多种场景， 当然也可以调用SetProp( )、SetColProp( )、SetDroplistProp( )动态更改属性
返回值 | 1 - 成功; 空串 - 失败(将自动弹出失败页面)
示例 | AF.func("build", "../tr3.xml \r\n isTree=true;editable=true"); AF.func("build", '<?xml version="1.0"?><TreeList> ...(略) </TreeList>');

Load | 加载数据，数据格式可以为XML、JSON、TXT(TSV)、TSV-Ex |
参数1 | 数据所在的URL(相对或绝对), 或直接的XML/JSON/TSV/TSV-Ex数据大串;

参数2

可选, 格式为 Mode=[?];FillMode=[?];insertAt=[?];asNewRow=[?];Node=[?];GroupSep=[?];FadeInStep=[?];LoadUserProp=[?];Para1=[?];method=[?], 其含义分别为:
mode - 同步/异步模式，如果等于"asynch", 表示异步(多线程)加载，异步加载能改善服务器端响应时间过久而导致的界面滞涩.
FillMode - 数据填充方式, 默认为空(表示先彻底清除原有数据)，也可以为如下之一：
replaceByOrder - 不增删行，仅逐行替换数据;
replaceByKey - 不增删行，仅按相同Key的行替换数据;
insert - 不清理原有的数据，新数据添加到表中;
insertNewKey 或 insertNewRow - 不替换，仅插入新的 key 的行(即 key 在树列表中不存在的行);
注：replaceByOrder 或 replaceByKey 时，数据的列可以少于树列表的列，未包含在数据中的列不会被替换.
insertAt - 当fillmode = insert 或 insertNewKey 时，用来指定插入位置(行号, 前插), -1表示从末尾添加：
asNewRow - 可以为true/false, 默认false，用于标记加载的行的"N"(新增行标记)，用于提交：
Node - 指定XML数据内所在节点名.
GroupSep - 用于当XML/JSON数据中的节点名采用分组表头Group的id时，下属各列的数据分隔符，默认是斜杠("/");
FadeInStep - 屏幕展现时的淡入淡出效果，0至255，数字越小效果越明显，0表示关闭此效果，默认采用＜Properties＞中的同名属性.
LoadUserProp - true/false, 是否把XML中的附加属性作为单元格的自定义属性一起加载，以便让GetCellProp( )函数能存取。考虑到对性能的影响，默认是false的. XML自定义附加属性例如下图的 jtc2="2331":
method - http的发送方法，为Get / PostEncodeURI / Post，默认是Get. 如果为PostEncodeURI，则自动将URL中问号(?)后面的部分移到http body中，并对文字作EncodeURI转码处理； 如果是Post，则不作转码处理.
Para1 - 可以为data/URL, 表示声明上面的“参数1”是纯数据串还是一个URL，一般用于TSV格式的数据，因为TSV格式的数据有时候很难自动判断到底是数据还是URL。如果不声明，系统优先判断为URL .
备注1：如果是异步加载，那么在本Load( )函数后面不应该再执行针对本Treelist的其它函数，应该在“Load”事件中作后续处理，否则异步将失去意义(非常重要);
备注2：replaceByOrder 和 replaceByKey 不是很常用，加载的数据的列是原Treelist列的子集，用于增量刷新部分列;
备注3：TSV格式数据不支持Node、FillMode、insertAt选项;

返回值 | 1 - 成功; 空串 - 失败(将自动弹出失败页面)
备注 | 建议该URL能返回 SoapLike 格式的异常包
示例 | AF.func("load", "../datacenter/dataprov.aspx?id=11800102"); AF.func("load", "../datacenter/dataprov.aspx?id=11800102 \r\n fillmode=replaceByOrder"); AF.func("load", '{"Record": [{"Country":"Austria","OrderID":"10258","CustomerID":"ERNSH"}, {"Country":"Austria","OrderID":"10233","CustomerID":"GROSH"}]}');

Refresh | 刷新数据 |
参数 | 可选, true/false(默认)，true表示如果数据有改动，能弹出对话框询问用户是否刷新.
返回值 | (无)

GetRows | 取得行数 |
参数 | (无)
返回值 | 数值
示例 | var rows = AF.func("getRows", "");

GetCols | 取得列数 |
参数 | (无)
返回值 | 数值

SetProp(用途1) | 动态更改XML文档中 Properties 定义的属性、以及自定义属性 |
参数1 | 属性名, 包括Properties中的自定义属性
参数2 | 内容串. 如果是自定义属性，空串表示删除该自定义属性
返回值 | (无)
备注 | 1.更改dataURL属性相当于是调用Load( )函数，其内容可以是绝对或相对URL(相对于XML描述文件)，也可以是XML/JSON大串; 2.更改sort属性相当于执行了排序操作
示例 | AF.func("setProp", "sort \r\n ShipCity a, OrderDate d");

GetProp(用途1) | 取得XML文档中 Properties 的属性内容 |
参数1 | 属性名, 包括Properties中的自定义属性
参数2 | 可选，用于 "Sort" 属性，true/false。true表示在指定静态排序情况下，按硕正静态排序格式输出；false表示输出当前真实的排序，默认是 false
返回值 | 内容

SetProp(用途2) | 设置打印配置属性 |
参数1 | 固定的串，为 Print 或 PrintPage
参数2 | XML串
返回值 | (无)
备注 | 更改打印参数，需要借助全局函数中的DOM函数集
示例 | //如下例子是把打印纸的左边界修改为10毫米： var xml=AF.func("GetProp", "Print"); var hDOM = AF.func("dom_new", xml); //创建DOM对象 var hMargin = AF.func("dom_find", hDOM + "\r\n margin"); //查找节点 AF.func("dom_SetProp", hMargin + "\r\n left \r\n 10"); //设置 xml = AF.func("dom_export", hDOM); //输出xml AF.func("SetProp", "Print \r\n" + xml); //完成 AF.func("dom_delete", hDOM); //销毁对象

GetProp(用途2) | 取得打印配置属性, 即 PrintPage 节点下的全部内容 |
参数 | 固定的串，为 Print 或 PrintPage
返回值 | XML串
备注 | 1.打印属性稍复杂，需要您对XML规范中的 PrintPage 节点进行分析; 2.返回的XML串内容不多，因为默认的设置就不出现在XML中了;

GetUserProps | 取得 Properties 中的全部自定义属性名 |
参数 | (无)
返回值 | 属性名，多个属性名之间以逗号分隔

SetColProp | 动态更改XML文档中某 Col 的属性、以及自定义属性 |
参数1 | 列名或列号，建议用列名
参数2 | 属性名
参数3 | 内容
返回值 | (无)
备注 | 1.若要更改列标题文字，请用“Title”属性; 2.少数属性如name、atLayer、extentRows、ref是无法修改的
示例 | AF.func("SetColProp", "CustomerID \r\n edittype \r\n droptreelist");

GetColProp | 取得XML文档中某 Col 的属性内容、或者自定义属性的内容 |
参数1 | 列名或列号，建议用列名
参数2 | 属性名
返回值 | 内容
备注 | 1.若要获取列标题文字，请用“Title”属性; 2.如果属性是 "isHide", 返回值只是1或0，如果要判断 absHide 或 absShow, 属性应该用 "isAbsHide" 或 "isAbsShow"

GetColUserProps | 取得某列的全部自定义属性名 |
参数 | 列名或列号，建议用列名
返回值 | 自定义属性名，如果有多个自定义属性，则以逗号分隔

SetGroupProp | 动态更改XML文档中某 Group 的属性 |
参数1 | Group 的 ID
参数2 | 属性名, 只能是 title(或name)、headerFontIndex(或fontIndex)、textColor(或color)、Align 这几种
参数3 | 内容
返回值 | 1/0 - 成功/失败
示例 | AF.func("SetGroupProp", "GrpID1 \r\n title \r\n 本年度");

GetGroupProp | 取得XML文档中某 Group 的属性内容 |
参数1 | Group 的 ID
参数2 | 属性名, 只能是 title(或name)、headerFontIndex(或fontIndex)、textColor(或color)、Align 这几种
返回值 | 内容

GetDroplistProp | 取得某下拉树列表的属性 |
参数1 | Droplist的ID, 也可以是某列的列名
参数2 | 属性名, 例如 dataURL, RefreshDelay, treelist, dataCol, displayCol 等XML中定义的属性
返回值 | 内容

SetDroplistProp | 动态更改XML中某 Droplist 的属性 |
参数1 | Droplist的ID, 也可以是某列的列名
参数2 | 属性名
参数3 | 内容
返回值 | (无)
备注 | 1.更改dataURL相当于是重新加载数据，其内容可以是绝对或相对URL(注意：是相对于XML描述文件，而不是页面)，也可以是XML/JSON大串，且对Edittype为Droplist、 DropTreelist均能生效; 2.若treelistURL内容是相对URL，那么是相对于该XML描述文件的 3.id是无法修改的
示例 | AF.func("SetDroplistProp", "sex \r\n dataURL \r\n <items><item key=1>男</item><item key=2>女</item></items>");

AddDroplist | 动态增加下拉资源(Droplists\Droplist) |
参数 | 可包含id、treelistURL、dataURL等6个属性，以“;”分隔。 例如"id=cus;treelistURL=cus.xml;dataURL=http://www.abcde.com/aa/aa"
返回值 | 1 - 成功; 空串 - 失败(id为空或重复)
示例 | AF.func("AddDroplist", "id=customer;treelistURL=customer.xml;DataCol=id;DisplayCol=name");

GetAsTree | 取得当前是否以树展现 |
参数 | (无)
返回值 | 1/0 - 是/否

SetAsTree | 切换到以树或列表展现 |
参数 | true - 树, false - 列表
返回值 | 1/0 - 成功/失败

GetHandle | 取得当前TreeList、或某下拉TreeList、或某下拉List的句柄 |
参数 | 可以为: 空串(无参数) - 取当前TreeList的句柄; topBar (或tBar) - 取顶部工具条的Freeform句柄; bottomBar (或bBar) - 取底部工具条的Freeform句柄; innerDialog - 取内部非模式对话框的Freeform句柄; Validation - 取Validation的句柄; 某下拉列的列名 - 表示取得某列的下拉DropTreelist、或下拉DropList、或EditWithButton的Droplist字典的句柄;
返回值 | 整数串
备注 | 操控下拉TreeList的内容请参见“扩展函数”、操控下拉List的内容请参见“全局函数”

OpenFreeformBar | 打开freeform工具条 |
参数1 | 可以为: 空串(无参数) - freeform采用已定义的 <freeformRes> 元素中的freeform; url - 采用外部一个freeform的URL; id=[?] - 采用 <freeformRes> 下的某个freeform, id是该freeform的id;
参数2 | 可选，0/tBar/topBar - 顶部工具条; 1/bBar/bottomBar - 底部工具条。默认topBar
返回值 | (无)

CloseFreeformBar | 关闭freeform工具条 |
参数 | 可选，0/tBar/topBar - 顶部工具条; 1/bBar/bottomBar - 底部工具条。 默认值是：如果当前只开启了一个工具条，那么默认的就是这个工具条，否则默认值是topBar
返回值 | (无)

OpenEditFreeformDialog | 打开用于输入的freeform对话框 |
参数 | 行号
返回值 | (无)
备注 | 即回车或双击时打开的对话框，请参见 Properties 中的 editFreeformId 属性

GetCellData | 取得某单元格的数据 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 可选, true/false(或1/0), true表示取原始缓存中的数据(即被你修改前的数据), 默认是false(或0)
参数4 | 可选, true/false(或1/0), 表示优先从输入框中取数(当输入框打开着时)，还是直接从树列表中取数, 默认是true, 即优先从输入框中取数。 注1：当参数3为true时，本参数无效, 即原始值只能从树列表取； 注2：大多数情况下，输入框中的内容和树列表的内容是一致的，本参数意义不大
返回值 | 串

SetCellData | 设置某单元格的数据 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 内容串
参数4 | 可选，true(或1)表示修改原始缓存中的数据(即被你修改前的数据)，默认是false(或0). 这个选项一般用于强制更改"NMD"状态, 请参见下面"提交"类函数：GetRowChanged( )
参数5 | 可选，true(或1)表示自动修改 TreeCombine 的其它关联行的CheckBox内容, 默认是false(或0)
返回值 | 1 - 成功; 空串 - 失败
备注 | 1. 严重警告：参数2和参数3之间不得留有多余空格，否则结果将不是你所期望的，例如： AF.func("SetCellData", "0 \r\n city \r\n "+ vCity);　　//执行结果是左侧有多余空格 2.如果内容串中含回车，需要先把回车转义成 "\\r\\n"

GetCellText | 取得某单元格的显示内容 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 串
备注 | 显示内容是指有下拉、或显示掩码的列，或者是通过 SetCellDataText 函数设置了 key-value对的内容，有别于真实数据(data)的显示串，说白了就是你在屏幕上看到的文字

SetCellText | 设置某单元格的显示内容 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 内容串
返回值 | 1 - 成功; 空串 - 失败
备注 | 常用于和Droplist绑定的EditWithButton, 否则和SetCellData( )同义.

SetCellDataText | 同时设定某单元格的 key-value对，包括值、和显示的内容 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 值串
参数4 | 内容串
返回值 | 1 - 成功; 空串 - 失败
备注 | 1.普通的列都可以拥有简易的 key-value对字典，不管是否下拉; 2.如果 edittype 为 droplist, 此 key-value对 将自动加入下拉字典.

GetDropCellData | 取得某单元格对应到下拉树列表选中行中某列的数据 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 下拉树列表的列名
参数4 | 可选，true(或1)表示当该单元格正在编辑中时, 主键的值取编辑窗中输入的内容, 例如在 DropdownSelChanged 事件中执行本函数时, 此时数据尚未同步到单元格; false(或0)表示取单元格的数据 , 默认是 false
返回值 | 串
备注 | 仅用于该列的 EditType 为 DropTreeList 或 EditAbleDropTreeList 的情形
示例 | 如下例子表示 CustomerId 列为下拉树列表, 从第0行单元格对应的下拉树列表的选中行中，取得该下拉树列表的 Country 列的内容： var v = AF.func("GetDropCellData", "0 \r\n CustomerId \r\n Country");

SetRowCellData | 设置整行的单元格数据 |
参数1 | 行号
参数2 | XML或JSON大串(允许包含多行内容)
参数3 | 可选， true(或1)表示修改原始缓存中的数据(即被你修改前的数据), 默认是false(或0). 这个选项一般用于强制更改"NMD"状态, 请参见下面"提交"类函数：GetRowChanged( )
返回值 | 被修改的行数
示例 | AF.func("SetRowCellData", "0\r\n {id:'k101', price:33.40, orderdt:'2011/12/21'}");

SetColCellData | 设置整列的单元格数据, 支持表达式，该函数非常有用 |
参数1 | 列名或列号，建议采用列名
参数2 | 内容串，支持以"="开头的表达式
参数3 | 可选，开始行号，默认0
参数4 | 可选，结束行号，默认-1, 表示末尾行
参数5 | 可选， true(或1)表示修改原始缓存中的数据(即被你修改前的数据), 默认是false(或0). 这个选项一般用于强制更改"NMD"状态, 请参见下面"提交"类函数：GetRowChanged( )
返回值 | 1 / 0 - 成功 / 失败，失败原因有：行列不正确、企图统一设置树节点列
示例 | AF.func("SetColCellData", 'price \r\n0'); //price设置成0 AF.func("SetColCellData", 'price \r\n'); //price设置成 null AF.func("SetColCellData", 'price \r\n=if(product=102, 0, 100)'); //按条件设

GetRadioCol | 取得某行某个GroupID的单选框(RadioButton)的选中列 |
参数1 | 行号
参数2 | GroupID号，如果只有一个分组，则可忽略
返回值 | 选中的列名
备注 | 没有SetRadioCol函数的，因为直接执行SetCellData置选中列的值为1即可.

GetDroplistIndex | 取得某下拉List的当前选中行顺序号 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 本单元格中的下拉列表的当前选中行, 从0开始计数
备注 | 一般用于非排序的下拉List

SetDroplistIndex | 选中下拉List中的某行 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 本单元格中的下拉列表中的顺序号, 从0开始计数
返回值 | 1 / 0 - 成功 / 失败
备注 | 一般用于非排序的下拉List

GetEditText | 取得当前输入框中的文字 |
参数 | (无)
返回值 | 串
备注 | 通常用在事件中，因为你很难把握当前输入框是否正打开着

SetEditText | 设置当前输入框中的文字 |
参数 | 串
返回值 | (无)
备注 | 通常用在事件中，因为你很难把握当前输入框是否正打开着

GetAutoId | 取得某字段唯一的随机值 |
参数1 | 列名或列号，建议采用列名。仅支持 string、int、double三种类型的字段
参数2 | 本参数仅用于 string 型字段，格式为 len = [?]; Prefix=[?], 含义如下： len 或 length - 生成的随机串的长度，范围是从1到32，默认是6。如果您设得太小，比如设为１, 很可能会发生程序内部死循环而崩溃; Prefix - 生成的串的前缀，这个前缀的长度是不算在 len 中的;
返回值 | 值串
备注 | 1.生成过程是随机、并遍历整个表判断是否唯一的; 2.如果字段是 string 型，生成的随机串是由数字 0-9 和字母 A-Z　混合组成的，每个字符相当于有36种取值, 默认的6字长的串，值的表达范围是36的6次方, 相当于21亿多; 3.<col> 的 AutoId 属性，其内部实现时也是用到了本函数，但本函数的调用与 AutoId 是否已定义无关.
示例 | var s = AF.func("GetAutoId", "ID \r\n len=8;Prefix=@V");

GetCellEditAble | 取得某单元EditAble |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 1或0, 空串表示失败

SetCellEditAble | 单独设置某单元格的EditAble，其等级高于行列的EditAble规定，但低于 Properties 中的EditAble规定. |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 1/0，或true/false、yes/no
返回值 | (无)

GetCellBackColor | 取得某单元被单独指定的、或根据DisplayMask计算出来的背景色 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 颜色串

SetCellBackColor | 单独指定某单元的背景色 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 颜色串，空串表示解除背景色
返回值 | (无)

GetCellTextColor | 取得某单元被单独指定的、或根据DisplayMask计算出来的文字色 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 颜色串

SetCellTextColor | 单独指定某单元的文字色 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 颜色串，空串表示解除文字色
返回值 | (无)

GetCellAlign | 取得某单元被单独指定的文字对齐，如果尚未被指定，则返回该列的默认对齐 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | left / center / right

SetCellAlign | 单独指定某单元的文字水平对齐 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | left / center / right
返回值 | (无)

GetCellVAlign | 取得某单元的文字垂直对齐 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | top / middle / bottom

SetCellVAlign | 单独指定某单元的文字垂直对齐 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | top / middle / bottom
返回值 | (无)

GetCellFontIndex | 取得某单元被单独指定的字体、或默认的字体(如果没有被单独指定)，也可以写成GetCellFont |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 序号，即 <Fonts> 下的字体顺序号

SetCellFontIndex | 单独指定某单元的字体序号，其等级高于默认字体，也可以写成SetCellFont |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 序号，即 <Fonts> 下的字体顺序号，-1表示解除字体
返回值 | (无)

GetCellHyperLink | 取得某单元是否超链接 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 1/0

SetCellHyperLink | 单独指定某单元是否为超链接，其等级高于 <Col> 的isHyperLink规定 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | true/false
返回值 | (无)

GetCellTip | 取得某单元的Tip, Tip的含义为: 鼠标划过时，浮现的黄色文字注释 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 串

SetCellTip | 单独指定某单元的Tip, Tip的含义为: 鼠标划过时，浮现的黄色文字注释 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 串
返回值 | (无)

GetCellLeftImage GetCellRightImage | 取得某单元的左侧/右侧小图标 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 图标的URL

SetCellLeftImage SetCellRightImage | 单独指定某单元的左侧/右侧小图标，优先级高于displayMask指定的图标 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 图标的URL
返回值 | (无)

SetCellProp | 设置某单元格的自定义属性和它的值，每个单元格允许有多个这样的名-值对，其目的是方便程序员的编程设计，Treelist控件不对其语义作任何解析 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 属性名，任意串
参数4 | 该属性的值，任意串
返回值 | (无)

GetCellProp | 取得某单元格的自定义属性的值，每个单元格允许有多个这样的名-值对，其目的是方便程序员的编程设计，Treelist控件不对其语义作任何解析 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 属性名，任意串
返回值 | 串，为该属性的值

GetCellProps | 取得某单元格的所有自定义属性 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 串，以逗号分隔的属性名

MergeSame(用途1) | 合并某行给定范围内相同内容的单元格 |
参数 | 格式为：row=[?];col1=[?];col2=[?];isIgnoreNull=[?];isDemergeFirst=[?]，含义为： row - 某行的行号 col1 - 开始列名或列号，建议采用列名，默认是0 col2 - 结束列名或列号，建议采用列名，默认是最后列 isIgnoreNull - 内容为空是否就不合并了，true/false，默认是true isDemergeFirst - 合并前是否先解除覆盖了该范围的以前的合并，true/false，默认是true isKeepMergeAsPossible - 如果新的合并区横贯了以前的合并区，是否把以前的合并区拆分为二段，true/false，默认是false, 只有在isDemergeFirst=false时才能生效
返回值 | (无)
备注 | 1.以树展现时，合并无效; 2.合并只改变外观，并不影响各自单元格的数据;

MergeSame(用途2) | 合并某列给定范围内相同内容的单元格 |
参数 | 格式为：col=[?];row1=[?];row2=[?];isIgnoreNull=[?];isDemergeFirst=[?]，含义为： col - 列名或列号，建议采用列名 row1 - 开始行的行号，默认是0 row2 - 结束行的行号，默认是最后行 isIgnoreNull - 内容为空是否就不合并了，true/false，默认是true isDemergeFirst - 合并前是否先解除覆盖了该范围的以前的合并，true/false，默认是true isKeepMergeAsPossible - 如果新的合并区横贯了以前的合并区，是否把以前的合并区拆分为二段，true/false，默认是false, 只有在isDemergeFirst=false时才能生效
返回值 | (无)
备注 | 1.以树展现时，合并无效; 2.合并只改变外观，并不影响各自单元格的数据;

MergeSame(用途3) | 多个列按大类、小类方式, 跨行合并相同内容的单元格 |
参数 | 格式为：col=[?];row1=[?];row2=[?];isIgnoreNull=[?];isDemergeFirst=[?]，含义为： col - 多个列名, 以逗号分隔；这些列通常是按顺序已经排序了的 row1 - 开始行的行号，默认是0 row2 - 结束行的行号，默认是最后行 isIgnoreNull - 内容为空是否就不合并了，true/false，默认是true isDemergeFirst - 合并前是否先解除覆盖了该范围的以前的合并，true/false，默认是true isKeepMergeAsPossible - 如果新的合并区横贯了以前的合并区，是否把以前的合并区拆分为二段，true/false，默认是false, 只有在isDemergeFirst=false时才能生效
返回值 | (无)
备注 | 1.以树展现时，合并无效; 2.合并只改变外观，并不影响各自单元格的数据;
示例 | AF.func("MergeSame", "col = Category,summary,customer");

Merge | 合并指定范围内的单元格 |
参数1 | 开始行号
参数2 | 开始列名或列号，建议采用列名
参数3 | 结束行号
参数4 | 结束列名或列号，建议采用列名
返回值 | (无)
备注 | 1.参数之间也可以用逗号分隔; 2.以树展现时，合并无效; 3.合并只改变外观，并不影响各自单元格的数据;
示例 | AF.func("merge", "0 \r\n id \r\n 10 \r\n city");

DeMerge | 解除单元格的合并 |
参数1 | 可选，开始行号
参数2 | 可选，开始列名或列号，建议采用列名
参数3 | 可选，结束行号
参数4 | 可选，结束列名或列号，建议采用列名
返回值 | (无)
备注 | 1.如果没有参数，表示解除Treelist所有合并； 2.如果只有前2个参数，表示解除覆盖了该单元的合并； 3.参数之间也可以用逗号分隔; 4.以树展现时，合并功能无效
示例 | AF.func("demerge", "0 \r\n id");

GetCellStatus | 取得某单元格的状态 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | A - 普通单元格; H - 被合并; M - 被合并，但位于合并区的左上角，是有效的主单元格; 空串 - 该单元格不存在
备注 | 以树展现时，合并功能无效

GetMainCell | 取得某单元格所在的合并区域中的主单元格(即左上角单元格) |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 诸如"10,3"格式的串，表示“行号，列号”。如果本单元格没有被合并，则返回它自己
备注 | 以树展现时，合并功能无效

GetMergedCells | 取得覆盖了某个单元格的合并范围 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | 诸如"10,3,20,3"格式的串，表示“开始行号，开始列号，结束行号，结束列号”
备注 | 以树展现时，合并功能无效

CopyCellDataByMerge | 将主单元格的数据复制给被合并的各个单元格, 换句话说：所有被合并的单元格的数据，从各自的主单元格(即左上角单元格)中去复制 |
参数1 | 可选，开始行号
参数2 | 可选，开始列名或列号，建议采用列名
参数3 | 可选，结束行号
参数4 | 可选，结束列名或列号，建议采用列名
返回值 | (无)
备注 | 该函数一般用于提交前，因为用户如果修改了主单元格，被合并的单元格数据并不会自动跟着变

IsTreeNodeRow | 是否树节点行(即树杈行) |
参数 | 行号
返回值 | 1/0 - 是/否

GetTreeLevel(用途一) | 取得某行在树中的层次级别，从0开始计数 |
参数 | 行号
返回值 | 大于等于0的数字

GetParentRow | 取得某行的父节点所在行 |
参数 | 行号
返回值 | 行号, -1表示失败，原因有：行号无效、已经是顶级、当前不是以树展现

GetChildRow | 取得某行的第一个儿子 |
参数 | 行号
返回值 | 行号, -1表示失败，原因有：行号无效、已经是末级、当前不是以树展现

GetChildRows | 取得某行的所有儿子 (不包括孙子) |
参数 | 行号
返回值 | 以逗号分隔的行号, 空串表示该行没有儿子

GetNextSibling | 取得某行的下一个或前一个同级(即同辈、兄弟)的行 |
参数 | 行号
参数 | 可选, true/false, 表示下一个兄弟/前一个兄弟, 默认是 true
返回值 | 行号, -1表示失败，原因有：行号无效、已经是同辈中最后的一个(父亲的小儿子)、当前不是以树展现

SetTreeImage | 更改树的图标, 也可写成 SetTreeIcon |
参数1 | 行号
参数2 | 图片文件URL，合拢时的图标
参数3 | 可选，图片文件URL，展开时的图标
返回值 | (无)
备注 | 仅对单列多层树有效

GetTreeImage | 取得树的图标, 也可写成 GetTreeIcon |
参数 | 行号
返回值 | URL，如果有不止一个图片(合拢和展开)，则以回车分隔
备注 | 仅对单列多层树有效

Expand(用法1) | 展开树节点 |
参数1 | 行号(从0开始计数)，如果为空或为 -1，表示展开所有节点
参数2 | 可选，true/false, 表示是否展开其子孙的节点。如果参数1为空或-1, 默认是true, 否则默认值是false
返回值 | (无)
示例 | AF.func("expand", "-1 \r\n true"); //展开所有的节点 AF.func("expand", "-1 \r\n false"); //仅展开第一层的所有节点 AF.func("expand", "0 \r\n true"); //展开第一行，包括它的所有子孙节点 AF.func("expand", "0 \r\n false"); //展开第一行，但不包括它的子孙节点

Expand(用法2) | 展开树的前 n 层节点 |
参数 | 固定的"Level" + 数字，表示展开前 n 层，例如"Level1"、"Level2"
返回值 | (无)
示例 | AF.func("expand", "Level1"); //展开第一层

Collapse | 收拢树节点 |
参数 | 可选，行号，如果为空或为 -1，表示收拢所有节点
返回值 | (无)

IsExpand | 树节点是否已展开 |
参数 | 行号
返回值 | 1/0 - 是/否

DeleteChild | 删除某行下的所有子孙行 |
参数1 | 行号
参数2 | 可选, 格式为 cacheKey=[true/false], 选项的含义为： cacheKey(或 isCacheKey) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true
返回值 | 被删除的总行数

IsLazyloadRow | 某行是否Lazyload行 |
参数 | 行号
返回值 | 1/0 - 是/否
备注 | 用于单列多层树、以Lazyload方式加载数据的场景

RebuildTreeCombine | 重新整理 TreeCombine 的父节点的 Checkbox |
参数 | (无)
返回值 | (无)
备注 | 用于 TreeCombine 包含了 "auto" 的树

RebuildPid | 重新整理 treeformat=byPid 的单列多层树的树杈树叶 |
参数 | (无)
返回值 | 1/0 - 成功/失败，失败原因为非byPid树
备注 | 用于 pid 和 id 字段被手工修改后、需要重新整理树的排列的情况

ClearLazyload | 强制设定某Lazyload行没有子孙 |
参数 | 行号
返回值 | (无)
备注 | 用于单列多层树、以Lazyload方式加载数据的场景

GetCurrentRow (方式一) | 取得当前选中的行 |
参数 | (无)
返回值 | 行号，空串表示没有当前行；如果有多行，行号之间以逗号分隔

GetCurrentRow (方式二) | 取得当前选中的行 |
参数 | 顺序号，从0开始，依次取得第几个选中行，直到返回空串
返回值 | 行号，空串表示没有当前行

GetCurrentRows | 取得当前选中行的数量 |
参数 | (无)
返回值 | 数量

IsRowSelected | 某行是否被选中 |
参数 | 行号
返回值 | 1/0 - 是/否

GetCurrentCell | 用于取得当 curSelMode=“excel” 时当前选中的单元格范围，因为此时选中的单元格是一个区域 |
参数 | 如果为串 “ColName”，表示返回的列是用列名，否则用列号，默认是列号
返回值 | 以逗号分隔的4个值：开始行号, 开始列号或列名，结束行号, 结束列号或列名
示例 | var s = AF.func("GetCurrentCells", ""); //返回串可能为 "3,5,4,6" var s = AF.func("GetCurrentCells", "ColName"); //返回串可能为 "3,dept,4,price"

SelectRow | 选定当前行 |
参数1 | 行号
参数2 | 可选，true/false - 允许动画方式定位/禁止动画, 默认false
返回值 | (无)
备注 | 1.在可多选(curselmode = rows)的情况下,可以有多个参数,分别表示其它各个选中行; 2.如果行号无效，原当前行将失去当前标记; 3.本函数同时也让控件获得了焦点 (即SetFocus)

SelectCell | 选定当前行、并让某个单元格立即进入编辑状态 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | 可选，true/false - 允许动画方式定位/禁止动画, 默认false
返回值 | (无)
备注 | 1.如果行列号无效，原当前行将失去当前标记; 2.本函数同时也让控件获得了焦点 (即SetFocus)

CloseDropdown | 收起当前正处于下拉状态的树列表 |
参数 | (无)
返回值 | 已成功收起的行号、列名，以逗号分隔。空串表示当前没有处于下拉状态的树列表.

CloseEdit | 结束当前单元格的输入状态 |
参数 | 可选，true/false - 将输入框中的内容存入单元格/忽略输入框中的内容, 默认true
返回值 | 已成功关闭的行号、列名，以逗号分隔。空串表示当前不在输入状态.

LockCurrent | 锁定当前行，使之无法被切换，当前行内的单元格默认是无法被修改的、右键菜单是屏蔽的. |
参数 | 可选, 可以是如下串的组合，以逗号分隔： edit - 当前行内的单元格允许被修改 button - 当前行内的按钮、Radio、Checkbox允许被点击 hyper(或 hyperLink) - 当前行内的超链接允许被点击 menu - 允许右键菜单;
返回值 | (无)
示例 | AF.func("LockCurrent", "edit"); //锁定当前行, 但允许本行内容被修改

UnlockCurrent | 解除锁定当前行 |
参数 | (无)
返回值 | (无)

InsertRows(语法一) | 插入行 |
参数1 | 插入处行号(从0开始，-1表示从末尾添加)

参数4

可选, 选项子句，语法为：
rows=[?]; isBefore=[true/false]; raiseEvent=[true/false];selectRow=[true/false];openEdit=[true/false];asChild=[true/false];autoId=[true/false], 各选项的含义为：
rows(或 count) - 行数，默认是 1;
isBefore - 前插或后插，默认是true;
raiseEvent(或 isRaiseEvent) - 是否触发 rowsInserted 事件，默认是false
selectRow(或 isSelectRow) - 是否将当前行切换成新插入行，默认是true
openEdit(或 isOpenEdit) - 是否继续直接打开输入框，默认是true
autoId - 如果该列的 <col> 定义了 autoId, 那么是否自动生成唯一值, 默认是true;
asFirstChild - 后插的行是否作为第一个儿子，默认是false;
asLastChild - 后插的行是否作为最后一个儿子，默认是false;
备注：asFirstChild, asLastChild 不能同时为true，并且仅用于 treeFormat="format=byId; autoid=true" 或 "format=bypid"、"format=bydata"的单列多层树、在后插入1行的情况;

返回值 | 新增行的行号，空串表示失败
备注 | 当以树显示时，插入的新行是插入处所在行（即参数1）的同级
示例 | AF.func("insertRows", -1); //后端添加一行 AF.func("insertRows", "0 \r\n count=4; isBefore=false; raiseEvent=true;SelectRow=false");

InsertRows(语法二) | 插入行 (过时的语法) |
参数1 | 插入处行号(从0开始，-1表示从末尾添加)
参数2 | 可选, 插入行数，默认1
参数3 | 可选, true/false(或1/0、yes/no)，分别表示前插/后插，默认前插
参数4 | 可选, 选项子句，语法为： raiseEvent=[true/false];selectRow=[true/false];openEdit=[true/false];asChild=[true/false];autoId=[true/false], 各选项的含义同语法一.
返回值 | 同语法一

InsertCol | 插入列 |
参数1 | 插入处列号(从0开始，-1表示从末尾添加)
参数2 | 列的参数，例如"name=price;title=项目名称;width=100"，列属性可参考《Treelist XML文档规范》之Cols\col;
返回值 | 新增列的列号，空串表示失败

DeleteRows (方式一) | 删除行 |
参数1 | 开始删除的行号
参数2 | 行数，-1表示删除后面所有行
参数3 | 可选, 选项子句，语法为： raiseEvent=[true/false];cacheKey=[true/false];withChild=[true/false], 各选项的含义为： raiseEvent(或 isRaiseEvent) - 是否触发 rowsDeleted 事件，默认是false cacheKey(或 isCacheKey) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true withChild(或 withChildren) - 当以树显示时，是否将其子孙行也删除，默认是false
返回值 | (无)

DeleteRows (方式二) | 删除行 |
参数1 | 表达式。满足表达式的行均会被删除
参数2 | 可选, 选项子句，语法为： raiseEvent=[true/false];cacheKey=[true/false];withChild=[true/false], 各选项的含义为： raiseEvent(或 isRaiseEvent) - 是否触发 rowsDeleted 事件，默认是false cacheKey(或 isCacheKey) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true withChild(或 withChildren) - 当以树显示时，是否将其子孙行也删除，默认是false
返回值 | (无)
示例 | AF.func("deleteRows", "price>100 and toUpperCase(left(ProdId,2))='KS' \r\n cacheKey=true");

DeleteCurrentRow | 删除当前行 |
参数 | 可选, 选项子句，语法为： raiseEvent=[true/false];cacheKey=[true/false];withChild=[true/false], 各选项的含义为： raiseEvent(或 isRaiseEvent) - 是否触发 rowsDeleted 事件，默认是false cacheKey(或 isCacheKey) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true withChild(或 withChildren) - 当以树显示时，是否将其子孙行也删除，默认是false
返回值 | (无)
备注 | 如果当前行允许多选，那么可能有多行

CopyCurrentRow | 将当前行拷贝入操作系统的剪帖板 |
参数 | 可选，可包含如下属性子句：content=[asData/asDisplay];inIncludeHide=[true/false]，含义为: content - 内容，asData表示纯数据，asDisplay表示显示的内容，默认是asData; includeHide (或isIncludeHide) - 是否包含隐藏行或隐藏列，默认是false;
返回值 | (无)
备注 | 如果有多个当前行(多选)，那么所有选中行内容都将被复制

PasteCurrentRow | 将操作系统剪帖板内容粘帖到当前行 |
参数 | (无)
返回值 | (无)
备注 | 如果有多个当前行(多选)，那么所有选中行内容都将被粘帖

PasteNewRow | 将操作系统剪帖板内容粘帖到新增行 |
参数 | (无)
返回值 | (无)

MoveCol | 移动某列的位置 |
参数1 | 列名或列号，建议采用列名
参数2 | 目标列的列名或列号，建议采用列名
参数3 | 可选, true/false(或1/0、yes/no)，分别表示前插/后插，默认前插
返回值 | 新的位置, -1失败

MoveRow | 移动某行的位置 |
参数1 | 行号
参数2 | 目标行的行号
参数3 | 可选, true/false(或1/0、yes/no)，分别表示前插/后插，默认前插
返回值 | 新的位置, -1失败

GetNextValidRow | 遍历行，用于需要自动跨越隐藏行、树杈行(多列多层树)、小计行、合计行的情形 |
参数1 | 开始行, 如果是从头遍历，参数应该为空串或“-1”
参数2 | 可选, 1 / -1 表示 正向/反向遍历, 默认是1
返回值 | 行号，空串表示遍历完毕

GetNextValidCol | 遍历列，用于需要自动跨越多列多层树的首列的情形 |
参数 | 开始列的列名, 如果是从头遍历，参数应该为空串
返回值 | 列名，空串表示遍历完毕
示例 | for(var col=AF.func("GetNextValidCol", ""); col!=""; col=AF.func("GetNextValidCol", col)) { ... }

GetNextVisibleCol | 遍历可视列，用于需要自动跨越隐藏列、树的首列的情形 |
参数 | 开始列的列名, 如果是从头遍历，参数应该为空串
返回值 | 列名，空串表示遍历完毕
示例 | for(var col=AF.func("GetNextVisibleCol", ""); col!=""; col=AF.func("GetNextVisibleCol", col)) { ... }

IsTotalRow | 是否合计行，通常合计行只有一行，且位于最后 |
参数 | 行号(从0开始计数)
返回值 | 1 - 是，0 - 否

IsSubTotalRow | 是否小计行 |
参数 | 行号
返回值 | 1 - 是，0 - 否

GetTreeLevel(用途二) | 取得某小计行的分类层次级别，从1开始计数 |
参数 | 行号
返回值 | 如果此行不是小计行，返回0，否则返回大于0的数字，其含义是分类的层次，最外层是1

GetRowKey | 取得某行的Key(即键值) |
参数1 | 行号
参数2 | 可选，复合主键的分隔符，默认逗号(,)
参数3 | 可选, 0或1, 1表示取被修改前的原始内容, 默认是0
返回值 | Key串

GetRowEditAble | 某行是否能修改 |
参数 | 行号
返回值 | 1 - 是，0 - 否

GetColEditAble | 某列是否能修改 |
参数 | 列名
返回值 | 1 - 是，0 - 否

SetRowEditAble | 置某行能否修改 |
参数1 | 行号
参数2 | true/false(或1/0、yes/no)
返回值 | (无)
备注 | 通常是 <Properties> 中的 editable 为 true 的情况下, 本函数才有意义

SetColEditAble | 置某列能否修改 |
参数1 | 列名
参数2 | true/false(或1/0、yes/no)
返回值 | (无)
备注 | 通常是 <Properties> 中的 editable 为 true 的情况下, 本函数才有意义

GetColName | 取得列名 |
参数 | 列号
返回值 | 串, 空串表示列号已经超出范围了

GetColTitle | 取得列标题 |
参数 | 列号，或列名
返回值 | 串

SetRowDeleteAble | 单独指定某行是否允许被删除(仅限于右键菜单) |
参数1 | 行号
参数2 | true/false
返回值 | (无)

GetRowDeleteAble | 取得某行是否允许删除 |
参数 | 行号
返回值 | 1 / 0 - 允许/不允许

GetRowBackColor | 取得某行被单独指定的背景色 |
参数 | 行号
返回值 | 颜色串，空串表示该行尚未被单独指定背景色

SetRowBackColor | 单独指定某行的背景色 |
参数1 | 行号
参数2 | 颜色串，空串表示解除背景色
返回值 | (无)

GetRowTextColor | 取得某行被单独指定的文字色 |
参数 | 行号
返回值 | 颜色串，空串表示该行尚未被单独指定文字色

SetRowTextColor | 单独指定某行的文字色 |
参数1 | 行号
参数2 | 颜色串，空串表示解除文字色
返回值 | (无)

GetRowEnable | 某行是否Enable，disable的行以灰色(或删除线)显示、不可编辑、不触发Clicked和DblClicked事件、不可拖拽 |
参数 | 行号
返回值 | 1/0/空串 - 是/否/无效行号

SetRowEnable | 置某行为Enable或disable，disable的行以灰色(或删除线)显示、不可编辑、不触发Clicked事件 |
参数1 | 行号
参数2 | true/false(或1/0、yes/no) - 表示enable/disable
返回值 | (无)

IsRowHide | 或GetRowHide，某行是否隐藏 |
参数 | 行号
返回值 | 1/0/空串 - 隐藏/显示/无效行号

HideRow | 隐藏某行 |
参数1 | 行号
参数2 | true/false - 隐藏/显示
返回值 | (无)

IsColHide | 或GetColHide，某列是否隐藏，等同GetColProp(colname, "isHide") |
参数 | 列名
返回值 | 1/0/空串 - 隐藏/显示/无效列名

HideCol | 隐藏某列，等同SetColProp(colname, "isHide", 1/0) |
参数1 | 列名
参数2 | true/false - 隐藏/显示
返回值 | (无)

GetColCheckState | 取得isCheckboxOnly列标题处的CheckBox的状态 |
参数 | 列名或列号，建议采用列名
返回值 | 1/0 - 已选中/未选中

SetColCheckState | 设置isCheckboxOnly列标题处的CheckBox的状态 |
参数1 | 列名或列号，建议采用列名
参数2 | 1/0 - 已选中/未选中
返回值 | (无)
备注 | 仅修改选中状态，并不改动数据. 如果要修改整列的数据，请执行 SetColCellData 函数

GetColGroup | 取得某列所属的分组(Group) |
参数1 | 列名或列号，建议采用列名
参数2 | top/all - 仅返回顶层分组名/返回所有分组名，默认是 top
返回值 | 所属Group的名称，如果有多层分组，则以逗号分隔

EnsureVisible | 保证让某个单元格或某行在屏幕中可见 |
参数1 | 行号
参数2 | 可选, 列名, 如果为空表示仅定位行
参数3 | 可选，true/false - 允许动画方式定位/禁止动画, 默认false
返回值 | (无)

Find | 按表达式查找，并返回首个符合条件的行号 |
参数1 | 表达式(可参见“公共内容\表达式”)
参数2 | 可选, 格式为startRow=[行号];content=[asData/asDisplay];isReverse=[?], 其含义为: startRow - 开始的行号，默认是0; content - 为 asData 或 asDispplay，默认是asData, 表示搜索的内容是值还是显示的文字(例如下拉的值和显示文字是不一样的); isReverse - 为 true/false, 表示正向搜索 / 逆向搜索，默认是false;
返回值 | 行号，-1表示未能找到匹配的行

FindAll | 按表达式查找，并返回符合条件的所有行号 |
参数1 | 表达式(可参见“公共内容\表达式”)
参数2 | 可选, 格式为 content=[asData/asDisplay], 其含义为: content - 为 asData 或 asDispplay，默认是asData, 表示搜索的内容是值还是显示的文字(例如下拉的值和显示文字是不一样的).
返回值 | 从小到大排列的行号串，行号之间以逗号分隔，空串表示未能找到匹配的行
示例 | var s=AF.func("findAll", "price<20 and if(len(ProcId)==0, 1, 0)");

FindByKey | 按键值搜索 |
参数1 | 键值
参数2 | 可选，表示复合主键之间的分隔符，默认是逗号
返回值 | 行号，-1表示未找到

GetUnique | 取得某列(或多列)的唯一的值的数组 |
参数1 | 列名, 也允许以加号(+)分隔的多个列
参数2 | 可选, 格式为 CaseSensitive=[?];Sort=[?], 其含义为: CaseSensitive - 大小写是否敏感, true或false, 默认是true; Sort - 是否对结果进行排序, "none"表示不排序; "string"表示按照字符串方式排序; "number"表示按照数值大小排序, 默认是"none"; (注：如果 sort=number, 则该列必须为数值列、且只能是单个列
返回值 | 以回车符分隔的值串
示例 | var s=AF.func("GetUnique", "price \r\n Sort=Number"); var s=AF.func("GetUnique", "ID+Name \r\n CaseSensitive=0");

Filter | 对已加载的数据进行过滤，只显示满足条件的行 |
参数1 | 表达式(可参见“公共内容\表达式”)
参数2 | 可选，格式为 droplistCol=[?]; content=[asData/asDisplay], 其含义为： droplistCol - , 列名，表示仅对该列的下拉TreeList的内容进行过滤; content - 为 asData 或 asDispplay，默认是asData, 表示搜索的内容是值还是显示的文字(例如下拉的值和显示文字是不一样的).
返回值 | 1 - 成功，0 - 失败，失败原因通常为表达式书写错误
示例 | AF.func("Filter", "price<20 and if(len(ProcId)==0, 1, 0)");

ApplyFilter | 对某个下拉列执行过滤，通常用于EditChanged事件中，对多个关联下拉、下拉过滤采用了表达式的某个下拉强制过滤 |
参数1 | 基准的行号，例如在EditChanged事件中，行号就是 p1 参数
参数2 | 下拉列的列名
返回值 | 无
示例 | AF.func("ApplyFilter", p1 + "\r\n cityId");

EnableDrag | 使2个Treelist之间能够用鼠标拖拉(Drag)行 |
参数 | 另一个TreeList的句柄(句柄可通过GetHandle()取得)
返回值 | 1 - 成功

DisableDrag | 终止2个Treelist之间的行拖拉 |
参数 | 另一个TreeList的句柄(句柄可通过GetHandle()取得)
返回值 | 1 - 成功

Copy | 将某单元格/某行/某区块内容复制进内存剪切板 |
参数1 | 开始行号
参数2 | 开始列名或列号，建议采用列名
参数3 | 可选，结束行号，默认等于开始行号
参数4 | 可选，结束列名或列号，建议采用列名，-1表示最后列，默认值是-1
参数5 | 可选，可包含如下属性子句：content=[asData/asDisplay];isIncludeTotalRow=[true/false];inIncludeHide=[true/false]，含义为: content - 内容，asData表示纯数据，asDisplay表示显示的内容，默认是asData; includeTotalRow (或isIncludeTotalRow) - 是否包含合计/小计行，默认是false; includeHide (或isIncludeHide) - 是否包含隐藏行或隐藏列，默认是false;
返回值 | 1/0 - 成功/失败
示例 | AF.func("copy", "3 \r\n 0"); //复制第四行整行 AF.func("copy", "3 \r\n orderid \r\n 5 \r\n price \r\n content=asDisplay;includeHide=true"); //复制一个区块

ScrollToRow | 窗口滚动到某行 |
参数 | 行号, 表示滚动到的首个可见行
返回值 | (无)
备注 | 请参见函数 GetScrollRow

GetScrollRow | 取得窗口首个可见行 |
参数 | (无)
返回值 | 行号
备注 | 请参见函数 ScrollToRow

Validate | 验证输入的内容 |
参数 | 可选, 可以有如下的选项，相互以分号分隔： isReturnText - true/false, true 表示未通过验证时返回错误文字串, 不浮现错误提示窗; false 表示将当前单元格切换到未通过验证的单元格, 并自动浮现出错误提示, 默认是 false; startRow - 开始行，默认是0; endRow - 结束行，默认是-1，-1表示最后行; isValidateKey - 是否需要在校验Key(例如key重复)，默认是True; includeCol / excludeCol - 仅包含某些列/不包含某些列，二者可选其一，表示列的范围. 列名之间以逗号分隔。默认是空串，表示验证所有列; 备注1：这个“范围”是指验证的范围，以及限定NMD中“M”的识别范围. 备注2：Key以及Key的验证和这个“范围”无关.
返回值 | 如果 isReturnText 参数为 false, 返回 1 或 0, 分别表示通过验证、未通过验证. 如果 isReturnText 参数为 true, 验证通过时返回空串, 未通过时则返回这种 json 串: {"row":3, "col":"price", "errorType":"key", "errorText":"价格未输入!"} 其中 row 和 col 表示错误处的行列, errorType 是未通过的验证类型, 有 key, unique, nullable, validation 四种
备注 | 1.验证范围为 notNull、isUnique，以及 <Validations> 中的内容; 2.一般不需要调用这个函数，因为函数GetChangedXML( )本身就包含了验证过程.
示例 | AF.func("Validate", "isValidateKey=false");

GetChangedXML | 调用Validate( )验证，并生成用于提交的XML/JSON大串, XML/JSON格式规范请参见 "XML提交格式规范". |

参数

可选, 可以有如下的选项，相互以分号分隔：
level - 级别号，可以是0(默认)、1、2、3，其含义分别为:
0 - 级别0，生成当前全部、最新内容(不包括修改前的原始内容);
1 - 级别1，仅生成被修改过的单元格的内容(包括原始内容);
2 - 级别2，在级别1的基础上，增加被修改过单元的整行内容;
3 - 级别3，内容包含所有行、所有列、修改前后的内容;
isIgnoreChange - true/false, 仅用于Level=0. true表示不管内容是否被修改过，始终生成XML; false表示除非内容被修改过，否则返回空串. 默认是false;
returnFormat - 本函数返回串的格式, xml/json, 默认是xml;
startRow - 开始行，默认是0;
endRow - 结束行，默认是-1，-1表示最后行;
DateFormat - 日期的格式，默认是'%Y.%m.%d'，可参见公共内容中now( )函数的参数;
DateTimeFormat - 日期时间的格式，默认是'%Y.%m.%d %H:%M:%S'，可参见公共内容中now( )函数;的参数
isValidateKey - 是否需要在客户端校验Key(如key重复)，默认是True;
isExecuteValidations - 是否自动执行XML描述文件的 <Validations> 中的验证，默认是true.
isNeedDeleteDetail - 删除行的XML节点, 除了Key以外, 是否还需要包含该行的全部原始内容，默认是False，用于级别1、2、3;
includeCol / excludeCol - 仅包含某些列/不包含某些列，二者可选其一，表示列的范围. 列名之间以逗号分隔。默认是空串，表示提交所有列;
absIncludeCol - 始终包含某些列，不管其列数据有没有被修改过，并且在删除行的XML节点中也包含这些列的内容. 仅用于Level=1;
备注1：这个“范围”是指提交、验证的范围，以及限定NMD中“M”的识别范围.
备注2：Key以及Key的验证和这个“范围”无关.
CompKeySep - 复合主键的分隔符，默认逗号分隔;

返回值 | XML/JSON大串 - 成功; 空串 - 内容尚未被修改; 0 - 失败(原因为未通过客户端验证, 如notNull、isUnique)
备注 | 1.XML描述文件的 <Properties> 中必须定义Key; 2.如果包含了开始行和结束行参数，生成的XML中将不包括被删除行的信息
示例 | //取得级别为0、复合主键无分隔符的XML提交串，且不校验Key是否重复 AF.func("GetChangedXML", "level=0; CompKeySep=;isValidateKey=false"); //取得级别为1、不校验Key重复、仅包含3个字段的XML提交串 AF.func("GetChangedXML", "level=1; isValidateKey=false; includeCol=id,price,custid");

GetRowChanged | 取得某行或整表的修改状态 |
参数1 | 行号. 如果为 -1，表示所有行，即整个表.
参数2 | 可选, 状态掩码，为字母 N、M、D 的组合(简称“ni-ma-的”)： N - 表示有新增行; M - 表示有修改过的行; D - 表示有删除行(仅用于整表) 默认值为 NM 或 NMD(如果是整表)
返回值 | 为上述3个字母的组合，空串表示未符合掩码
示例 | AF.func("GetRowChanged", "-1\r\n ND");　　//可能返回N、D、ND、空串 AF.func("GetRowChanged", "30");　　//可能返回N、M、NM、空串

SetAsNewRow | 修改某行的“新增行”状态(和GetRowChanged的 "N" 相关)，它影响GetChangedXML( )的执行结果 |
参数1 | 行号, 也可以是逗号分隔的多个行号、减号分隔的行号范围
参数2 | 可选，true/false，默认true
返回值 | (无)
示例 | AF.func("SetAsNewRow", "2 \r\n true"); AF.func("SetAsNewRow", "3,5,7-11,13-22 \r\n true");

GetCellChanged | 取得某单元格是否被修改过 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
返回值 | M - 被修改过，空串：未改过

SetCellChanged | 强制更改某单元格的修改状态 |
参数1 | 行号
参数2 | 列名或列号，建议采用列名
参数3 | M - 将原始缓存数据修改成和当前不一样的内容; 空串 - 用当前内容替换原始缓存数据, 即清除修改状态
返回值 | (无)

SetColCellChanged | 强制更改所有行、某列的单元格的修改状态 |
参数1 | 列名或列号，建议采用列名
参数2 | M - 将原始缓存数据修改成和当前不一样的内容; 空串 - 用当前内容替换原始缓存数据, 即清除修改状态
返回值 | (无)

ResetChanged | 合并修改内容，清除行和单元格的修改标记(即 "NMD" 状态)，以避免重复提交. |
参数1 | 可选，表示开始行，默认是0
参数2 | 可选，表示结束行，默认是-1, -1表示末行
参数3 | 可选，是多个"名=值"对选项，以分号分隔： includeCol/excludeCol - 仅包括某些列/仅排除某些列，二者只能选其一, 列名之间以逗号分隔. 默认为空，表示包含全部列; resetDelete - true/false, true表示清空删除行的缓存，默认是true, 该选项和开始行、结束行无关; resetNew - true/false, true表示清除新增行的“新增”标志，默认是true, 该选项和开始行、结束行有关;
返回值 | (无)
示例 | //清除所有修改标记; AF.func("resetchanged", ""); //仅清除某单元格的"M"标志; AF.func("resetchanged", "3\r\n3\r\n includeCol=id; resetDelete=false; resetNew=false"); //清除所有行中除了3个列以外的"M"标志, 并清除删除行缓存("D"); AF.func("resetchanged", "0\r\n-1\r\n excludeCol=id,orgNo,flag; resetDelete=true; resetNew=false");

GetDeleteRows | 或 GetDeletedRows，取得被删除的总行数. |
参数 | (无)
返回值 | 被删除的总行数
备注 | 删除区并不缓存新插入的行.

GetDeleteKey | 或 GetDeletedKey，取得被删除的行中某行的Key. |
参数 | 序号，空串表示取得所有被删行的Key
返回值 | Key值，如果是多个行，则以逗号分隔
备注 | 删除区并不缓存新插入的行.

UnDelete | 恢复被删除的行 |
参数 | 以逗号分隔的Key值，空串表示恢复所有被删行
返回值 | 恢复的总行数
备注 | 1.被恢复的行将位于表格末尾处; 2.删除区并不缓存新插入的行.

EnableUndo | 启用Undo/Redo功能 |
参数 | (无)
返回值 | 1/0 - 成功/失败

IsUndoEnabled | Undo/Redo功能是否已启用 |
参数 | (无)
返回值 | 1/0 - 是/否

Undo | 执行Undo操作 |
参数 | (无)
返回值 | (无)

Redo | 执行Redo操作 |
参数 | (无)
返回值 | (无)

SaveUndo | 将当前状态保存到 Undo 缓存, |
参数 | (无)
返回值 | (无)
备注 | 凡是涉及到对树列表的更改数据的交互操作, 系统都是自动保存Undo状态的, 但调用API函数更改数据时 (例如 SetCellData) 是不自动保存Undo状态. 本函数通常用于 js 更改数据前,

UndoAble | 当前是否有Undo可操作 |
参数 | (无)
返回值 | 1/0 - 是/否

RedoAble | 当前是否有Redo可操作 |
参数 | (无)
返回值 | 1/0 - 是/否

ResetUndo | 清空Undo缓存，相当于重置Undo |
参数 | (无)
返回值 | (无)

GetCustom | 取得当前Treelist的外观状态XML串用于上传，使操作者可定制外观 |
参数 | (无)
返回值 | XML串

SetCustom | 应用原先已保存(上传)的外观状态XML串， 通常需要在 Build( ) 后立即执行 |
参数 | XML串
返回值 | (无)

AddMenu | 增加自定义的弹出菜单项 |
参数1 | 串、XML串，或URL，内容的格式规范请参考Treelist的帮助文档“13.自定义菜单”
参数2 | 可选，格式为LocateAt=[top/bottom], 表示自定义菜单在弹出时位于顶部还是底部，默认是bottom
返回值 | (无)
备注 | 只能在OnEvent(id, "MenuBeforePopup", ...)事件中执行。

EnableMenu | 配置内置的右键菜单项，使之能显示 |

参数1

固定的菜单项名称，以逗号分隔，含义为:
copy - 复制　　　　　　paste - 粘贴　　　　　　　　pasteNewRow - 粘贴到新行
delete - 删除　　　　　deleteMore - 删除更多　　　insert - 插入
print - 打印预览　　　　addSort - 加入多重排序　　 selectCol - 自定义显示隐藏列
export - 转换输出　　　import - 导入Excel文件　　curselMode - 焦点选取方式
separate - 分屏冻结　　enter - 回车键行为　　　　　expandTree - 展开/合拢树
showRuler - 显示/隐藏左标尺　　　　　　　　　　　　displayAs - 以列表/树展现
exportAll - 转换输出全部页(用于分页显示时)　　　　　printAll - 打印全部页(用于分页显示时)
hue - 色调　　　　　　language - 语言切换

参数2 | 可选， true - 仅对参数1的菜单项生效； false - 仅显示参数1的菜单项，其余的统统不显示. 默认是true
返回值 | (无)
备注 | 默认情况下，language、exportAll、printAll是disable的

DisableMenu | 配置内置的右键菜单项，使之不显示 |
参数1 | 同上
参数2 | 可选，true/false. true - 仅对参数1的菜单项生效； false - 仅隐藏参数1的菜单项，其余的统统显示, 默认是true
参数3 | 可选，true/false. true - 临时性的，仅用于 MenuBeforPopup 事件中, 默认是false
返回值 | (无)
备注 | 默认情况下，language、exportAll、printAll是disable的

GetExpress | 取得当前表达式(Expresses)节点的完整XML串 |
参数 | (无)
返回值 | XML串
示例 | var s = AF.func("GetExpress", ""); alert(AF.func("toJson", s)); //可以用全局函数 toJson 转换成 JSON 串

SetExpress | 设置当前表达式(Expresses)节点的完整XML串 |
参数 | XML/JSON串, 格式须和 GetExpress 返回串类似
返回值 | (无)
示例 | var exp = "<expresses>\ <express>total=round(price*num, 2)</express>\ <express>price=round(total/num, 4)</express>\ </expresses>"; AF.func("SetExpress", exp); AF.func("ReCalc", "")); //按照新的表达式重新计算

ReCalc | 重新计算整表的计算关系，如表达式(Expresses)、合计小计 |
参数 | (无)
返回值 | (无)

GetRedrawAble | 是否能够重画 |
参数 | (无)
返回值 | 1 / 0 - 能 / 不能

SetRedrawAble | 设置让Treelist能够重画或不能重画。为了提高性能，消除不必要的重画，在需要连续对Treelist作改动性操作(比如改数据、改属性)前关闭重画，操作完成后再开启重画. |
参数 | true/false - 能 / 不能
返回值 | (无)

PrintPreview | 打印预览 |
参数 | (无)
返回值 | (无)

Print | 直接打印 |
参数 | 可选，格式为 isOpenSysDialog=[?]; 其含义和用法如下: isOpenSysDialog - true/false - 弹出操作系统的打印对话框/不弹出对话框，默认是true;
返回值 | (无)

Import | 从本地 Excel 文件导入数据 |

参数

格式为 filename=[?];SheetName=[?];isDeleteFirst=[?];HeaderRows=[?];TailRows=[?]; 列名1=[?]; 列名2=[?]...; 列名n=[?]：
FileName - Excel 文件的全文件名, 后缀须为 xlsx, 或 xls(仅硕正企业版);
SheetName 或 Sheet - 如果是多工作表，需指定的工作表名，否则默认导入第一个工作表;
MappingMode - 列和字段的映射方式，可以是 byContent / byComment / none, 分别表示: 按写在单元格中的字段名或标题自动匹配 / 按设在单元格中的"批注"的字段名自动匹配 / 不自动匹配。默认是None ;
TailRows - Excel 的下方不得导入的行数;
isDeleteFirst - true/false, 是否先删除原先的数据, 默认是false;
如果 MappingMode = None, 还可以进一步选择如下选项:
HeaderRows - Excel 的上方不得导入的行数;
各个列名 - Excel 中各个列的列号， 对应到XML中的列ID。需要逐个列对应过去，如果不指定这个对应关系，则以自然顺序逐个自动对应;

返回值 | 1/0 - 成功/失败
备注 | 1.mappingMode 为 byContent 或 byComment 时，标记所在的单元格往往是Excel的标题单元格，标题单元格所在行是不导入的，是从它们的下一行开始导入的; 2.下面例子中的文件是固定的文件名, 但在实际情况中，往往是用户需要打开文件对话框选择 Excel 文件的，请参考“12.全局函数”中的“其它函数”下的 FileDialog( ) 函数;
示例 | AF.func("Import", "filename=d:\\表1.xlsx; A=Country; B=PrdId; D=price"); //按指定的列-字段关系导入 AF.func("Import", "filename=d:\\表1.xlsx; mappingMode=byComment"); //按藏在批注中的字段映射关系导入

Export | 取得XML格式的全部数据，一般用于打印:将串作为数据源转交给Report组件. |
参数1 | 可选，为 asData 或 asDisplay，表示输出内容是纯数据，还是和界面显示的一样串，默认是asDisplay
参数2 | 可选，为行的范围，默认是全部行，格式可以为： row = 行号，多个行之间以逗号分隔; startRow = 开始行的行号; endRow = 结束行的行号(注：不包括结束行); 或 count = 行数;
返回值 | XML大串
示例 | var row=4; AF.func("Export", "asData \r\n row=" + row);

OpenImportDialog | 打开从 Excel 文件导入数据的对话框 |
参数 | 可选串，格式为: filename=[?], 说明如下： filename - 本地 xlsx 或 xls 文件，必须是全文件名. 如果未指定filename，那么首先会弹出文件选择对话框
返回值 | 如果未导入，返回空串；否则返回以逗号分隔的插入到树列表的开始行、行数
示例 | AF.func("OpenImportDialog", "");

OpenExportDialog | 打开转换输出对话框、或直接转换输出 |

参数

可选串，格式为:
type=[?];typeOnly=[?];filename=[?];content=[?];dropdown=[?];includeHide=[?];includeHeader=[?];scale=[?];precision=[?], 其含义说明如下：
type - 首选的文件名后缀，例如xlsx、 jpg、 pdf之类.
filename - 指定文件名.
isEcho - 完成后是否需要提示框提示成功与否.
content - 为asData 或 asDisplay，表示输出内容是纯数据，还是和界面显示的一样串，默认是asData.
dropdown - 为asData、asDisplay 或 asDataAndDisplay，表示下拉内容的输出格式，默认是asData.
includeHide - 为true或false，表示是否包含隐藏列，默认是false.
gridLine - 是否显示表格线，仅用于 xlsx 或 xls.
scale - 图像类文件的打印比例，范围是10 到 400，默认100。对于PDF而言，Scale越大越清晰，例如300表示在300%的显示比例下仍很清晰.
precision - JPG精度，仅对JPG和PDF有效，精度范围1-100(默认85)，越接近100越清晰，但文件尺寸越大.
isOpenDialog - 是否需要弹出对话框，默认是true。
如果打开对话框, 还可以有如下选项:
typeOnly - 和type类似，表示仅限于该种文件类型.
如果不弹出对话框，则直接转换输出，还可以有如下参数:
includeHeader - none/name/title, 表示无列标题/列名/列标题，默认采用上次对话框中所选的内容.

返回值 | 转换输出成功的文件名(含路径的全文件名)，空串表示未作转换. 如果有多个文件名，则以回车分隔
示例 | AF.func("OpenExportDialog", "typeOnly=xlsx;content=asDisplay"); AF.func("OpenExportDialog", "isOpenDialog=false;type=xlsx;filename=d:\\my.xlsx;includeHeader=title");

SetExportFilename | 指定转换输出的文件名，通常用于 ExportDialog 事件 |
参数1 | 文件名，可以是带路径的全文件名，也可以不带路径
参数2 | 格式为 isOpenFileDialog=[?], 值可以是true/false, 表示是否打开后面的文件选择对话框，默认是True
返回值 | 无
备注 | 如果 isOpenFileDialog=false、且文件名不带路径，那么文件将被生成到 "我的文档" 目录下
示例 | function OnEvent(id, Event, p1, p2, p3, p4) { if(Event == "ExportDialog" && p1 == "xlsx") { AF.func("SetExportFilename", "MyDoc.xlsx \r\n isOpenFileDialog=0"); } }

OpenDeleteRowsDialog | 打开删除行对话框 |
参数 | (无)
返回值 | (无)

AddHotKey | 增设快捷键。快捷键将触发HotKey事件 |
参数1 | 第一个快捷键，可以是F1至F12、字母、数字、或键的AscII码，也可再加Ctrl、Shift、Alt的组合，以'+'分隔.
参数2 | 可选，第二个快捷键，以此类推.
返回值 | (无)
备注 | 1.并不是所有键都能用作快捷的，受制于浏览器，您需要逐个测试; 2.快捷键将触发 HotKey 事件
示例 | AF.func("AddHotKey", "F12 \r\n Ctrl+F4 \r\n Ctrl+Shift+S \r\n Alt+5 \r\n Ctrl+32"); 分别表示了5个快捷键：F12、Ctrl+F4、Ctrl+Shift+S、Alt+5、Ctrl+空格(空格的AscII码是32)