创建Treelist
根据XML描述文件创建Treelist

XML所在的URL(相对或绝对)，或者直接就是XML大串

可选, 允许是XML中<Properties>下的任何属性，表示将强制采用本属性, 多个属性间以分号(；)分隔，例如 isTree=false;editable=true<br>可见参数2能方便地使单个XML应用于多种场景， 当然也可以调用SetProp( )、SetColProp( )、SetDroplistProp( )动态更改属性

1 - 成功; 空串 - 失败(将自动弹出失败页面)
AF.func("build", "../tr3.xml \r\n isTree=true;editable=true");<br> AF.func("build", '&lt;?xml version="1.0"?&gt;&lt;TreeList&gt; ...(略) &lt;/TreeList&gt;');
提示: 几乎每个演示页都使用了这个函数
加载数据
加载数据，数据格式可以为XML、JSON、TXT(TSV)

数据所在的URL(相对或绝对), 或直接的XML/JSON/TXT数据大串;

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

1 - 成功; 空串 - 失败(将自动弹出失败页面)
建议该URL返回的XML/JSON数据支持<a href="pub.htm#Tag604" target=_blank>SoapLike</a>异常包
AF.func("load", "../datacenter/dataprov.aspx?id=11800102");<br> AF.func("load", "../datacenter/dataprov.aspx?id=11800102 \r\n fillmode=replaceByOrder");<br> AF.func("load", '{"Record": [{"Country":"Austria","OrderID":"10258","CustomerID":"ERNSH"},{"Country":"Austria","OrderID":"10233","CustomerID":"GROSH"}]}');
刷新数据

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

取得行数
数值
var rows = AF.func("getRows", "");
取得列数
数值
动态更改 Properties 属性
动态更改XML文档中 Properties 定义的属性、以及自定义属性

属性名, 包括Properties中的自定义属性

内容串. 如果是自定义属性，空串表示删除该自定义属性

AF.func("setProp", "sort \r\n ShipCity a, OrderDate d");
1.更改dataURL属性相当于是调用Load( )函数，其内容可以是绝对或相对URL(相对于XML描述文件)，也可以是XML/JSON大串;<br>2.更改sort属性相当于执行了排序操作
参见演示页: 7.计算列合计行、19.分页方案(二)、20.提交修改内容、24.动态更改属性
取得 Properties 属性内容
取得XML文档中 Properties 的属性内容

属性名, 包括Properties中的自定义属性

内容
取得打印配置属性
取得打印配置属性, 即 PrintPage 节点下的全部内容

固定的串，为 Print 或 PrintPage

XML串
1.打印属性稍复杂，需要您对XML规范中的 PrintPage 节点进行分析;<br> 2.返回的XML串内容不多，因为默认的设置就不出现在XML中了;<br>
设置打印配置属性

固定的串，为 Print 或 PrintPage

XML串

更改打印参数，需要借助全局函数中的DOM函数集
//如下例子是把打印纸的左边界修改为10毫米：<br> var xml=AF.func("GetProp", "Print");<br> var hDOM = AF.func("dom_new", xml); //创建DOM对象<br> var hMargin = AF.func("dom_find", hDOM + "\r\n margin"); //查找节点<br> AF.func("dom_SetProp", hMargin + "\r\n left \r\n 10"); //设置<br> xml = AF.func("dom_export", hDOM); //输出xml<br> AF.func("SetProp", "Print \r\n" + xml); //完成<br> AF.func("dom_delete", hDOM); //销毁对象<br>
取得 Properties 中的全部自定义属性名
属性名，多个属性名之间以逗号分隔
动态更改列属性
动态更改XML文档中某 Col 的属性、以及自定义属性

列名或列号，建议用列名

属性名

内容

AF.func("SetColProp", "CustomerID \r\n edittype \r\n droptreelist");
1.若要更改列标题文字，请用“Title”属性;<br>2.少数属性如name、atLayer、extentRows、ref是无法修改的
参见演示页: 5.图文并茂(2)、24.动态更改属性
取得列的属性内容
取得XML文档中某 Col 的属性内容、或者自定义属性的内容

列名或列号，建议用列名

属性名

内容
如果属性是 "isHide", 返回值只是1或0，如果要判断 absHide 或 absShow, 属性应该用 "isAbsHide" 或 "isAbsShow"
取得某列的全部自定义属性名

列名或列号，建议用列名

自定义属性名，如果有多个自定义属性，则以逗号分隔
更改下拉内容属性
动态更改XML中某 Droplist 的属性

Droplist的ID, 也可以是某列的列名

属性名

内容

1.更改dataURL相当于是重新加载数据，其内容可以是绝对或相对URL(注意：是相对于XML描述文件，而不是页面)，也可以是XML/JSON大串，且对Edittype为Droplist、 DropTreelist均能生效;<br>2.若treelistURL内容是相对URL，那么是相对于该XML描述文件的<br>3.id是无法修改的
AF.func("SetDroplistProp", "sex \r\n dataURL \r\n &lt;items&gt;&lt;item key=1&gt;男&lt;/item&gt;&lt;item key=2&gt;女&lt;/item&gt;&lt;/items&gt;");
增加下拉字典资源
动态增加下拉资源(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");
参见演示页: 24.动态更改属性
取得当前是否以树展现
1/0 - 是/否
切换到以树或列表展现

true - 树, false - 列表

1/0 - 成功/失败
取得Treelist或下拉的句柄
取得当前TreeList、或某下拉TreeList、或某下拉List的句柄

可以为:<br> <b>空串(无参数)</b> - 取当前TreeList的句柄;<br> <b>topBar (或tBar)</b> - 取顶部工具条的Freeform句柄;<br> <b>bottomBar (或bBar)</b> - 取底部工具条的Freeform句柄;<br> <b>innerDialog</b> - 取内部非模式对话框的Freeform句柄;<br> <b>Validation</b> - 取Validation的句柄;<br> <b>某下拉列的列名</b> - 表示取得某列的下拉DropTreelist、或下拉DropList、或EditWithButton的Droplist字典的句柄;

整数串
操控下拉TreeList的内容请参见“扩展函数”、操控下拉List的内容请参见“全局函数”
参见演示页: 17.Treelist拖曳、18.分页方案(一)
打开freeform工具条

可以为:<br> 　空串(无参数) - freeform采用已定义的 〈freeformRes〉 元素中的freeform;<br> 　url - 采用外部一个freeform的URL;<br> 　id=[?] - 采用 〈freeformRes〉 下的某个freeform, id是该freeform的id;

可选，0/tBar/topBar - 顶部工具条; 1/bBar/bottomBar - 底部工具条。默认topBar

参见演示页: 29.查询条件(一)
关闭freeform工具条

可选，0/tBar/topBar - 顶部工具条; 1/bBar/bottomBar - 底部工具条。<br> 默认值是：如果当前只开启了一个工具条，那么默认的就是这个工具条，否则默认值是topBar

参见演示页: 29.查询条件(一)
打开用于输入的freeform对话框

行号

即回车或双击时打开的对话框，请参见 Properties 中的 editFreeformId 属性
取得某单元格的数据

行号(从0开始)

列名或列号(从0开始)，建议采用列名

可选, true(或1)表示取原始缓存中的数据(即被你修改前的数据), 默认是false(或0)

串
设置某单元格的数据

行号(从0开始)

列名或列号(从0开始)，建议采用列名

内容串

可选，true(或1)表示修改原始缓存中的数据(即被你修改前的数据)，默认是false(或0).<br> 这个选项一般用于强制更改"NMD"状态, 请参见下面"提交"类函数：GetRowChanged( )

可选，true(或1)表示自动修改 TreeCombine 的其它关联行的CheckBox内容, 默认是false(或0)

1 - 成功; 空串 - 失败
参见演示页: 28.过滤: 关联下拉
1. <font color=red>严重警告：</font>参数2和参数3之间不得留有多余空格，否则结果将不是你所期望的，例如：<br>　　AF.func("SetCellData", "0 \r\n city \r\n "+ vCity);　　//执行结果是左侧有多余空格<br> 2.如果内容串中含回车，需要先把回车转义成 "\\r\\n"
取得某单元格的显示内容

行号(从0开始)

列名或列号(从0开始)，建议采用列名

串
显示内容是指有下拉、或显示掩码的列，或者是通过 SetCellDataText 函数设置了 <b>key-value对</b>的内容，有别于真实数据(data)的显示串，说白了就是你在屏幕上看到的文字
参见演示页: 25.自定义右键菜单
设置某单元格的显示内容

行号(从0开始)

列名或列号(从0开始)，建议采用列名

内容串

常用于和Droplist绑定的EditWithButton, 否则和SetCellData( )同义.
1 - 成功; 空串 - 失败
同时设定某单元格的 key-value对
同时设定某单元格的 key-value对，包括值、和显示的内容

行号(从0开始)

列名或列号(从0开始)，建议采用列名

值串

内容串

1.普通的列都可以拥有简易的 <b>key-value对</b>字典，不管是否下拉;<br> 2.如果 edittype 为 droplist, 此 <b>key-value对</b> 将自动加入下拉字典.
1 - 成功; 空串 - 失败
设置整行的单元格数据

行号

XML或JSON大串(允许包含多行内容)

可选， true(或1)表示修改原始缓存中的数据(即被你修改前的数据), 默认是false(或0).<br> 这个选项一般用于强制更改"NMD"状态, 请参见下面"提交"类函数：GetRowChanged( )

被修改的行数
AF.func("SetRowCellData", "0\r\n {id:'k101', price:33.40, orderdt:'2011/12/21'}");
参见自由表头的演示页: 14.基于Freeform的对话框
设置整列的单元格数据
设置整列的单元格数据, 支持表达式，该函数非常有用

列名或列号(从0开始)，建议采用列名

内容串，支持以"="开头的表达式

可选，开始行号，默认0

可选，结束行号，默认-1, 表示末尾行

可选， true(或1)表示修改原始缓存中的数据(即被你修改前的数据), 默认是false(或0).<br> 这个选项一般用于强制更改"NMD"状态, 请参见下面"提交"类函数：GetRowChanged( )

1 / 0 - 成功 / 失败，失败原因有：行列不正确、企图统一设置树节点列
AF.func("SetColCellData", 'price \r\n0'); //price设置成0<br> AF.func("SetColCellData", 'price \r\n'); //price设置成 null<br> AF.func("SetColCellData", 'price \r\n=if(product=102, 0, 100)'); //按条件设
参见演示页: 16.行的复选
取得某行某个GroupID的单选框(RadioButton)的选中列

行号(从0开始)

GroupID号，如果只有一个分组，则可忽略

选中的列名
没有SetRadioCol函数的，因为直接执行SetCellData置选中列的值为1即可.
取得某下拉List的当前选中行顺序号

行号(从0开始)

列名或列号(从0开始)，建议采用列名

本单元格中的下拉列表的当前选中行, 从0开始计数
一般用于非排序的下拉List
选中下拉List中的某行

行号(从0开始)

列名或列号(从0开始)，建议采用列名

本单元格中的下拉列表中的顺序号, 从0开始计数

1 / 0 - 成功 / 失败
一般用于非排序的下拉List
取得当前输入框中的文字
串
通常用在事件中，因为你很难把握当前输入框是否正打开着
设置当前输入框中的文字

串

通常用在事件中，因为你很难把握当前输入框是否正打开着
取得某单元EditAble

行号(从0开始)

列名或列号(从0开始)，建议采用列名

1或0, 空串表示失败
单独设置某单元格EditAble
单独设置某单元格的EditAble，其等级高于行列的EditAble规定，但低于 Properties 中的EditAble规定.

行号(从0开始)

列名或列号(从0开始)，建议采用列名

1/0，或true/false、yes/no

取得某单元的背景色
取得某单元被单独指定的、或根据DisplayMask计算出来的背景色

行号(从0开始)

列名或列号(从0开始)，建议采用列名

颜色串
单独指定某单元的背景色

行号(从0开始)

列名或列号(从0开始)，建议采用列名

颜色串，空串表示解除背景色

参见演示页: 24.动态更改属性
取得某单元的文字色
取得某单元被单独指定的、或根据DisplayMask计算出来的文字色

行号(从0开始)

列名或列号(从0开始)，建议采用列名

颜色串
单独指定某单元的文字色

行号(从0开始)

列名或列号(从0开始)，建议采用列名

颜色串，空串表示解除文字色

参见演示页: 24.动态更改属性
取得某单元的文字水平对齐
取得某单元被单独指定的文字对齐，如果尚未被指定，则返回该列的默认对齐

行号(从0开始)

列名或列号(从0开始)，建议采用列名

left / center / right
单独指定某单元的文字水平对齐

行号(从0开始)

列名或列号(从0开始)，建议采用列名

left / center / right

取得某单元的文字垂直对齐

行号(从0开始)

列名或列号(从0开始)，建议采用列名

top / middle / bottom
单独指定某单元的文字垂直对齐

行号(从0开始)

列名或列号(从0开始)，建议采用列名

top / middle / bottom

取得某单元的字体序号
取得某单元被单独指定的字体、或默认的字体(如果没有被单独指定)，也可以写成GetCellFont

行号(从0开始)

列名或列号(从0开始)，建议采用列名

序号，即〈Fonts〉下的字体顺序号
单独指定某单元的字体序号
单独指定某单元的字体序号，其等级高于默认字体，也可以写成SetCellFont

行号(从0开始)

列名或列号(从0开始)，建议采用列名

序号，即〈Fonts〉下的字体顺序号，-1表示解除字体

参见演示页: 24.动态更改属性
取得某单元是否超链接

行号(从0开始)

列名或列号(从0开始)，建议采用列名

1/0
单独指定某单元是否为超链接
单独指定某单元是否为超链接，其等级高于〈Col〉的isHyperLink规定

行号(从0开始)

列名或列号(从0开始)，建议采用列名

true/false

取得某单元的Tip
取得某单元的Tip, Tip的含义为: 鼠标划过时，浮现的黄色文字注释

行号(从0开始)

列名或列号(从0开始)，建议采用列名

串
单独指定某单元的Tip
单独指定某单元的Tip, Tip的含义为: 鼠标划过时，浮现的黄色文字注释

行号(从0开始)

列名或列号(从0开始)，建议采用列名

串

取得某单元的左侧/右侧小图标

行号(从0开始)

列名或列号(从0开始)，建议采用列名

图标的URL
单独指定某单元的左侧/右侧小图标
单独指定某单元的左侧/右侧小图标，优先级高于displayMask指定的图标

行号(从0开始)

列名或列号(从0开始)，建议采用列名

图标的URL

设置某单元格的自定义属性
设置某单元格的自定义属性和它的值，每个单元格允许有多个这样的名-值对，其目的是方便程序员的编程设计，Treelist控件不对其语义作任何解析

行号(从0开始)

列名或列号(从0开始)，建议采用列名

属性名，任意串

该属性的值，任意串

取得某单元格的自定义属性的值
取得某单元格的自定义属性的值，每个单元格允许有多个这样的名-值对，其目的是方便程序员的编程设计，Treelist控件不对其语义作任何解析

行号(从0开始)

列名或列号(从0开始)，建议采用列名

属性名，任意串

串，为该属性的值
取得某单元格的所有自定义属性

行号(从0开始)

列名或列号(从0开始)，建议采用列名

串，以逗号分隔的属性名
合并某行给定范围内相同内容的单元格

格式为：row=[?];col1=[?];col2=[?];isIgnoreNull=[?];isDemergeFirst=[?]，含义为：<br> <b>row</b> - 某行的行号<br> <b>col1</b> - 开始列名或列号(从0开始)，建议采用列名，默认是0<br> <b>col2</b> - 结束列名或列号(从0开始)，建议采用列名，默认是最后列<br> <b>isIgnoreNull</b> - 内容为空是否就不合并了，true/false，默认是true<br> <b>isDemergeFirst</b> - 合并前是否先解除覆盖了该范围的以前的合并，true/false，默认是true<br> <b>isKeepMergeAsPossible</b> - 如果新的合并区横贯了以前的合并区，是否把以前的合并区拆分为二段，true/false，默认是false, 只有在isDemergeFirst=false时才能生效<br>

参见演示页: 32.合并单元格
1.以树展现时，合并无效; 2.合并只改变外观，并不影响各自单元格的数据;
合并某列给定范围内相同内容的单元格

格式为：col=[?];row1=[?];row2=[?];isIgnoreNull=[?];isDemergeFirst=[?]，含义为：<br> <b>col</b> - 列名或列号(从0开始)，建议采用列名<br> <b>row1</b> - 开始行的行号，默认是0<br> <b>row2</b> - 结束行的行号，默认是最后行<br> <b>isIgnoreNull</b> - 内容为空是否就不合并了，true/false，默认是true<br> <b>isDemergeFirst</b> - 合并前是否先解除覆盖了该范围的以前的合并，true/false，默认是true<br> <b>isKeepMergeAsPossible</b> - 如果新的合并区横贯了以前的合并区，是否把以前的合并区拆分为二段，true/false，默认是false, 只有在isDemergeFirst=false时才能生效<br>

参见演示页: 32.合并单元格
1.以树展现时，合并无效; 2.合并只改变外观，并不影响各自单元格的数据;
合并指定范围内的单元格

开始行号(从0开始)

开始列名或列号(从0开始)，建议采用列名

结束行号(从0开始)

结束列名或列号(从0开始)，建议采用列名

1.参数之间也可以用逗号分隔;<br> 2.以树展现时，合并无效; <br> 3.合并只改变外观，并不影响各自单元格的数据;
AF.func("merge", "0 \r\n id \r\n 10 \r\n city");
解除单元格的合并

可选，开始行号(从0开始)

可选，开始列名或列号(从0开始)，建议采用列名

可选，结束行号(从0开始)

可选，结束列名或列号(从0开始)，建议采用列名

1.如果没有参数，表示解除Treelist所有合并；<br> 2.如果只有前2个参数，表示解除覆盖了该单元的合并；<br> 3.参数之间也可以用逗号分隔;<br> 4.以树展现时，合并功能无效
AF.func("demerge", "0 \r\n id");
取得某单元格的状态

行号(从0开始)

列名或列号(从0开始)，建议采用列名

A - 普通单元格; <br> H - 被合并; <br> M - 被合并，但位于合并区的左上角，是有效的主单元格; <br> 空串 - 该单元格不存在
以树展现时，合并功能无效
取得某单元格所在的合并区域中的主单元格(即左上角单元格)

行号(从0开始)

列名或列号(从0开始)，建议采用列名

诸如"10,3"格式的串，表示“行号，列号”。如果本单元格没有被合并，则返回它自己
以树展现时，合并功能无效
取得覆盖了某个单元格的合并范围

行号(从0开始)

列名或列号(从0开始)，建议采用列名

诸如"10,3,20,3"格式的串，表示“开始行号，开始列号，结束行号，结束列号”
以树展现时，合并功能无效
将主单元格的数据复制给被合并的各个单元格
将主单元格的数据复制给被合并的各个单元格, 换句话说：所有被合并的单元格的数据，从各自的主单元格(即左上角单元格)中去复制

可选，开始行号(从0开始)

可选，开始列名或列号(从0开始)，建议采用列名

可选，结束行号(从0开始)

可选，结束列名或列号(从0开始)，建议采用列名

该函数一般用于提交前，因为用户如果修改了主单元格，被合并的单元格数据并不会自动跟着变
是否树节点行
是否树节点行(即树杈行)

行号(从0开始)

1/0 - 是/否
取得某行在树中的层次级别，从0开始计数

行号(从0开始)

大于等于0的数字
取得某行的父节点所在行

行号(从0开始)

行号, -1表示失败，原因有：行号无效、已经是顶级、当前不是以树展现
取得某行的第一个子孙的行

行号(从0开始)

行号, -1表示失败，原因有：行号无效、已经是末级、当前不是以树展现
取得某行的下一个同级(即同辈、兄弟)的行

行号(从0开始)

行号, -1表示失败，原因有：行号无效、已经是同辈中最后的一个(父亲的小儿子)、当前不是以树展现
更改树的图标
更改树的图标, 也可写成 SetTreeIcon

行号(从0开始)

图片文件URL，合拢时的图标

可选，图片文件URL，展开时的图标

仅对单列多层树有效
取得树的图标的URL
取得树的图标, 也可写成 GetTreeIcon

行号(从0开始)

URL，如果有不止一个图片(合拢和展开)，则以回车分隔
仅对单列多层树有效
展开树节点

行号(从0开始计数)，如果为空或为 -1，表示展开所有节点

可选，true/false, 表示是否展开其子孙的节点。如果参数1为空或-1, 默认是true, 否则默认值是false

AF.func("expand", "-1 \r\n true"); //展开所有的节点 <br> AF.func("expand", "-1 \r\n false"); //仅展开第一层的所有节点 <br> AF.func("expand", "0 \r\n true"); //展开第一行，包括它的所有子孙节点 <br> AF.func("expand", "0 \r\n false"); //展开第一行，但不包括它的子孙节点
收拢树节点

可选，行号(从0开始)，如果为空或为 -1，表示收拢所有节点

树节点是否已展开

行号(从0开始)

1/0 - 是/否
某行是否Lazyload行

行号(从0开始)

1/0 - 是/否
用于单列多层树、以Lazyload方式加载数据的场景
重新整理 TreeCombine 的父节点的 Checkbox
用于 TreeCombine 包含了 "auto" 的树
强制设定某Lazyload行没有子孙

行号(从0开始)

用于单列多层树、以Lazyload方式加载数据的场景
取得当前选中的行
行号(从0开始)，空串表示没有当前行；如果有多行，行号之间以逗号分隔
取得当前选中的行

顺序号，从0开始，依次取得第几个选中行，直到返回空串

行号(从0开始)，空串表示没有当前行
取得当前选中行的数量
数量
某行是否被选中

行号(从0开始)

1/0 - 是/否
取得当前选中的单元格
用于取得当 curSelMode=“excel” 时当前选中的单元格范围，因为此时选中的单元格是一个区域

如果为串 “ColName”，表示返回的列是用列名，否则用列号，默认是列号

以逗号分隔的4个值：开始行号, 开始列号或列名，结束行号, 结束列号或列名
var s = AF.func("GetCurrentCells", ""); //返回串可能为 "3,5,4,6" <br> var s = AF.func("GetCurrentCells", "ColName"); //返回串可能为 "3,dept,4,price"
选定当前行

行号(从0开始)

可选，true/false - 允许动画方式定位/禁止动画, 默认false

1.在可多选(curselmode = rows)的情况下,可以有多个参数,分别表示其它各个选中行;<br> 2.如果行号无效，原当前行将失去当前标记
将焦点切换到某单元格
选定当前行、并让某个单元格立即进入编辑状态

行号(从0开始)

列名或列号(从0开始)，建议采用列名

可选，true/false - 允许动画方式定位/禁止动画, 默认false

如果行列号无效，原当前行将失去当前标记
参见自由表头的演示页: 9.有表头表体的表单(1)
插入行

插入处行号(从0开始，-1表示从末尾添加)

可选, 插入行数，默认1

可选, true/false(或1/0、yes/no)，分别表示前插/后插，默认前插

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

新增行的行号，空串表示失败
AF.func("insertRows", "0 \r\n 1 \r\n false \r\n raiseEvent=true;SelectRow=false");
当以树显示时，插入的新行是插入处所在行（即参数1）的同级
插入列

插入处列号(从0开始，-1表示从末尾添加)

列的参数，例如"name=price;title=项目名称;width=100"，列属性可参考<a href='../format_treelist/index.htm' target=_blank>Supcan Treelist XML文档规范</a>之Cols\col;

新增列的列号，空串表示失败
参见演示页: 16.行的复选
删除行

开始删除的行号(从0开始)

行数，-1表示删除后面所有行

可选, 选项子句，语法为：<br> raiseEvent=[true/false];cacheKey=[true/false];withChild=[true/false], 各选项的含义为：<br> <b>raiseEvent</b>(或 <b>isRaiseEvent</b>) - 是否触发 rowsDeleted 事件，默认是false<br> <b>cacheKey</b>(或 <b>isCacheKey</b>) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true<br> <b>withChild</b>(或 <b>withChildren</b>) - 当以树显示时，是否将其子孙行也删除，默认是false<br>

参见演示页: 20.提交修改内容、25.自定义右键菜单
删除行

表达式。满足表达式的行均会被删除

可选, 选项子句，语法为：<br> raiseEvent=[true/false];cacheKey=[true/false];withChild=[true/false], 各选项的含义为：<br> <b>raiseEvent</b>(或 <b>isRaiseEvent</b>) - 是否触发 rowsDeleted 事件，默认是false<br> <b>cacheKey</b>(或 <b>isCacheKey</b>) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true<br> <b>withChild</b>(或 <b>withChildren</b>) - 当以树显示时，是否将其子孙行也删除，默认是false<br>

AF.func("deleteRows", "price>100 and toUpperCase(left(ProdId,2))='KS' \r\n cacheKey=true");
参见演示页: 16.行的复选
删除当前行

可选, 选项子句，语法为：<br> raiseEvent=[true/false];cacheKey=[true/false];withChild=[true/false], 各选项的含义为：<br> <b>raiseEvent</b>(或 <b>isRaiseEvent</b>) - 是否触发 rowsDeleted 事件，默认是false<br> <b>cacheKey</b>(或 <b>isCacheKey</b>) - 是否将删除行的Key存入删除缓冲区(用于提交)，默认是true<br> <b>withChild</b>(或 <b>withChildren</b>) - 当以树显示时，是否将其子孙行也删除，默认是false<br>

如果当前行允许多选，那么可能有多行
复制当前行
将当前行拷贝入操作系统的剪帖板
如果有多个当前行(多选)，那么所有选中行内容都将被复制
粘帖到当前行
将操作系统剪帖板内容粘帖到当前行
如果有多个当前行(多选)，那么所有选中行内容都将被粘帖
粘帖到新增行
将操作系统剪帖板内容粘帖到新增行
移动某列的位置

列名或列号(从0开始)，建议采用列名

目标列的列名或列号(从0开始)，建议采用列名

可选, true/false(或1/0、yes/no)，分别表示前插/后插，默认前插

新的位置, -1失败
参见演示页: 13.分类汇总
移动某行的位置

行号(从0开始)

目标行的行号(从0开始)

可选, true/false(或1/0、yes/no)，分别表示前插/后插，默认前插

新的位置, -1失败
遍历行
遍历行，用于需要自动跨越隐藏行、树杈行(多列多层树)、小计行、合计行的情形

开始行, 如果是从头遍历，参数应该为空串或“-1”

可选, 1 / -1 表示 正向/反向遍历, 默认是1

行号，空串表示遍历完毕
参见小型页面控件的演示页: 2.与Treelist联动
遍历列
遍历列，用于需要自动跨越多列多层树的首列的情形

开始列的列名, 如果是从头遍历，参数应该为空串

列名，空串表示遍历完毕
参见自由表头的演示页: 14.和Treelist互动、13.基于Freeform的对话框
例如js:<br> for(col=AF.func("GetNextValidCol", ""); col!=""; col=AF.func("GetNextValidCol", col)) {<br> ...<br> }
遍历可视列
遍历可视列，用于需要自动跨越隐藏列、树的首列的情形

开始列的列名, 如果是从头遍历，参数应该为空串

列名，空串表示遍历完毕
例如js:<br> for(col=AF.func("GetNextVisibleCol", ""); col!=""; col=AF.func("GetNextVisibleCol", col)) {<br> ...<br> }
是否合计行
是否合计行，通常合计行只有一行，且位于最后

行号(从0开始计数)

1 - 是，0 - 否
是否小计行

行号(从0开始)

1 - 是，0 - 否
取得某小计行的分类层次级别，从1开始计数

行号(从0开始)

如果此行不是小计行，返回0，否则返回大于0的数字，其含义是分类的层次，最外层是1
取得某行的Key(即键值)
取得某行的Key(即键值)

行号(从0开始)

可选，复合主键的分隔符，默认逗号(,)

可选, 0或1, 1表示取被修改前的原始内容, 默认是0

Key串
某行是否能修改

行号(从0开始)

1 - 是，0 - 否
某列是否能修改

列名

1 - 是，0 - 否
置某行能否修改

行号(从0开始)

true/false(或1/0、yes/no)

置某列能否修改

列名

true/false(或1/0、yes/no)

取得列名

列号(从0开始)

串
取得列标题

列号(从0开始)，或列名

串
参见小型页面控件的演示页: 2.与Treelist联动
单独指定某行是否允许被删除(仅限于右键菜单)

行号(从0开始)

true/false

取得某行是否允许删除

行号(从0开始)

1 / 0 - 允许/不允许
取得某行被单独指定的背景色

行号(从0开始)

颜色串，空串表示该行尚未被单独指定背景色
单独指定某行的背景色

行号(从0开始)

颜色串，空串表示解除背景色

取得某行被单独指定的文字色

行号(从0开始)

颜色串，空串表示该行尚未被单独指定文字色
单独指定某行的文字色

行号(从0开始)

颜色串，空串表示解除文字色

某行是否Enable
某行是否Enable，disable的行以灰色(或删除线)显示、不可编辑、不触发Clicked和DblClicked事件、不可拖拽

行号(从0开始)

1/0/空串 - 是/否/无效行号
请参见演示页: 28.下拉的其它功能
置某行为Enable或disable
置某行为Enable或disable，disable的行以灰色(或删除线)显示、不可编辑、不触发Clicked事件

行号(从0开始)

true/false(或1/0、yes/no) - 表示enable/disable

请参见演示页: 28.下拉的其它功能
某行是否隐藏
或GetRowHide，某行是否隐藏

行号(从0开始)

1/0/空串 - 隐藏/显示/无效行号
隐藏某行

行号(从0开始)

true/false - 隐藏/显示

某列是否隐藏
或GetColHide，某列是否隐藏，等同GetColProp(colname, "isHide")

列名

1/0/空串 - 隐藏/显示/无效列名
隐藏某列
隐藏某列，等同SetColProp(colname, "isHide", 1/0)

列名

true/false - 隐藏/显示

取得isCheckboxOnly列标题处的CheckBox的状态

列名或列号(从0开始)，建议采用列名

1/0 - 已选中/未选中
设置isCheckboxOnly列标题处的CheckBox的状态

列名或列号(从0开始)，建议采用列名

1/0 - 已选中/未选中

仅修改选中状态，并不改动数据. 如果要修改整列的数据，请执行 SetColCellData 函数
取得某列所属的分组(Group)

列名或列号(从0开始)，建议采用列名

top/all - 仅返回顶层分组名/返回所有分组名，默认是 top

所属Group的名称，如果有多层分组，则以逗号分隔
保证让某个单元格或某行在屏幕中可见

行号

可选, 列名, 如果为空表示仅定位行

可选，true/false - 允许动画方式定位/禁止动画, 默认false

条件搜索
按表达式查找，并返回首个符合条件的行号

表达式(可参见<a href="pub.htm#Tag601" target=_blank>“公共内容\表达式”</a>)

可选, 格式为startRow=[行号];content=[asData/asDisplay];isReverse=[?], 其含义为:<br> <b>startRow</b> - 开始的行号，默认是0;<br> <b>content</b> - 为 asData 或 asDispplay，默认是asData, 表示搜索的内容是值还是显示的文字(例如下拉的值和显示文字是不一样的);<br> <b>isReverse</b> - 为 true/false, 表示正向搜索 / 逆向搜索，默认是false;<br>

行号，-1表示未能找到匹配的行
条件搜索
按表达式查找，并返回符合条件的所有行号

表达式(可参见<a href="pub.htm#Tag601" target=_blank>“公共内容\表达式”</a>)

可选, 格式为 content=[asData/asDisplay], 其含义为:<br> <b>content</b> - 为 asData 或 asDispplay，默认是asData, 表示搜索的内容是值还是显示的文字(例如下拉的值和显示文字是不一样的).

从小到大排列的行号串，行号之间以逗号分隔，空串表示未能找到匹配的行
var s=AF.func("findAll", "price<20 and if(len(ProcId)==0, 1, 0)");
按键值搜索

键值

可选，表示复合主键之间的分隔符，默认是逗号

行号，-1表示未找到
过滤
对已加载的数据进行过滤，只显示满足条件的行

表达式(可参见<a href="pub.htm#Tag601" target=_blank>“公共内容\表达式”</a>)

可选，格式为 droplistCol=[?]; content=[asData/asDisplay], 其含义为：<br> <b>droplistCol</b> - , 列名，表示仅对该列的下拉TreeList的内容进行过滤;<br> <b>content</b> - 为 asData 或 asDispplay，默认是asData, 表示搜索的内容是值还是显示的文字(例如下拉的值和显示文字是不一样的).

1 - 成功，0 - 失败，失败原因通常为表达式书写错误
AF.func("Filter", "price<20 and if(len(ProcId)==0, 1, 0)");
参见演示页: 26.过滤、27.过滤: 关联下拉
对某个下拉执行过滤
对某个下拉列执行过滤，通常用于EditChanged事件中，对多个关联下拉、下拉过滤采用了表达式的某个下拉强制过滤

基准的行号，例如在EditChanged事件中，行号就是 p1 参数

下拉列的列名

无
AF.func("ApplyFilter", p1 + "\r\n cityId");
使2个Treelist之间能够拖拉行
使2个Treelist之间能够用鼠标拖拉(Drag)行

另一个TreeList的句柄(句柄可通过GetHandle()取得)

1 - 成功
参见演示页: 17.Treelist拖曳
终止2个Treelist之间的行拖拉

另一个TreeList的句柄(句柄可通过GetHandle()取得)

1 - 成功
将某单元格/某行/某区块内容复制进内存剪切板

开始行号

开始列名或列号(从0开始)，建议采用列名

可选，结束行号，默认等于开始行号

可选，结束列名或列号(从0开始)，建议采用列名，-1表示最后列，默认值是-1

可选，可包含如下属性子句：content=[asData/asDisplay];isIncludeTotalRow=[true/false];inIncludeHide=[true/false]，含义为:<br> <b>content</b> - 内容，asData表示纯数据，asDisplay表示显示的内容，默认是asData;<br> <b>includeTotalRow</b> (或<b>isIncludeTotalRow</b>) - 是否包含合计/小计行，默认是false;<br> <b>includeHide</b> (或<b>isIncludeHide</b>) - 是否包含隐藏行或隐藏列，默认是false;<br>

1/0 - 成功/失败
AF.func("copy", "3 \r\n 0"); //复制第四行整行<br> AF.func("copy", "3 \r\n orderid \r\n 5 \r\n price \r\n content=asDisplay;includeHide=true"); //复制一个区块<br>
窗口滚动到某行

行号(从0开始), 表示滚动到的首个可见行

请参见函数 GetScrollRow
取得窗口首个可见行
行号
请参见函数 ScrollToRow
验证
验证输入的内容. 如果未通过验证，将自动浮现出错误提示，并将当前单元格切换到未通过验证的单元格

可选, 可以有如下的选项，相互以分号分隔：<br> <b>startRow</b> - 开始行，默认是0;<br> <b>endRow</b> - 结束行，默认是-1，-1表示最后行;<br> <b>isValidateKey</b> - 是否需要在校验Key(例如key重复)，默认是True;<br> <b>includeCol / excludeCol</b> - 仅包含某些列/不包含某些列，二者可选其一，表示列的<b>范围</b>. 列名之间以逗号分隔。默认是空串，表示验证所有列;<br> 　　备注1：这个“范围”是指验证的范围，以及限定NMD中“M”的识别范围.<br> 　　备注2：Key以及Key的验证和这个“范围”无关.<br>

1 - 通过验证;<br>0 - 未通过客户端验证, 如notNull、isUnique，以及〈Validations〉中的内容
AF.func("Validate", "isValidateKey=false");
一般不需要调用这个函数，因为函数GetChangedXML( )本身就包含了验证过程.
取得修改过的内容, 包括增、删、改
调用Validate( )验证，并生成用于提交的XML大串, XML格式规范请参见 "XML提交格式规范".

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

XML大串 - 成功;<br>空串 - 内容尚未被修改;<br>0 - 失败(原因为未通过客户端验证, 如notNull、isUnique)
1.XML描述文件的〈Properties〉中必须定义Key;<br>2.如果包含了开始行和结束行参数，生成的XML中将不包括被删除行的信息
//取得级别为0、复合主键无分隔符的XML提交串，且不校验Key是否重复<br> AF.func("GetChangedXML", "level=0; CompKeySep=;isValidateKey=false");<br> //取得级别为1、不校验Key重复、仅包含3个字段的XML提交串<br> AF.func("GetChangedXML", "level=1; isValidateKey=false; includeCol=id,price,custid");<br>
参见演示页: 20.提交修改内容、21.4种提交级别、22.连续输入提交控制
取得某行或整表的修改状态

行号(从0开始). 如果为 -1，表示所有行，即整个表.

可选, 状态掩码，为字母 N、M、D 的组合(简称“ni-ma-的”)：<br> N - 表示有新增行;<br> M - 表示有修改过的行;<br> D - 表示有删除行(仅用于整表)<br> 默认值为 NM 或 NMD(如果是整表)

为上述3个字母的组合，空串表示未符合掩码
AF.func("GetRowChanged", "-1\r\n ND");　　//可能返回N、D、ND、空串<br> AF.func("GetRowChanged", "30");　　//可能返回N、M、NM、空串
修改某行的“新增行”状态(和GetRowChanged的 "N" 相关)
修改某行的“新增行”状态(和GetRowChanged的 "N" 相关)，它影响GetChangedXML( )的执行结果

行号(从0开始)

可选，true/false，默认true

取得某单元格是否被修改过

行号(从0开始)

开始列名或列号(从0开始)，建议采用列名

M - 被修改过，空串：未改过
强制更改某单元格的修改状态

行号(从0开始)

开始列名或列号(从0开始)，建议采用列名

M - 将原始缓存数据修改成和当前不一样的内容， 空串 - 用当前内容替换原始缓存数据

合并修改内容，清除行和单元格的修改标记，以避免重复提交.
合并修改内容，清除行和单元格的修改标记(即 "NMD" 状态)，以避免重复提交.

可选，表示开始行，默认是0

可选，表示结束行，默认是-1, -1表示末行

可选，是多个"名=值"对选项，以分号分隔：<br> <b>includeCol/excludeCol</b> - 仅包括某些列/仅排除某些列，二者只能选其一, 列名之间以逗号分隔. 默认为空，表示包含全部列;<br> <b>resetDelete</b> - true/false, true表示清空删除行的缓存，默认是true, 该选项和开始行、结束行无关;<br> <b>resetNew</b> - true/false, true表示清除新增行的“新增”标志，默认是true, 该选项和开始行、结束行有关;<br>

//清除所有修改标记;<br> AF.func("resetchanged", "");<br> //仅清除某单元格的"M"标志;<br> AF.func("resetchanged", "3\r\n3\r\n includeCol=id; resetDelete=false; resetNew=false");<br> //清除所有行中除了3个列以外的"M"标志, 并清除删除行缓存("D");<br> AF.func("resetchanged", "0\r\n-1\r\n excludeCol=id,orgNo,flag; resetDelete=true; resetNew=false");
参见演示页: 22.连续输入提交控制
取得被删除的总行数
或 GetDeletedRows，取得被删除的总行数.
被删除的总行数
删除区并不缓存新插入的行.
取得被删除的行中某行的Key
或 GetDeletedKey，取得被删除的行中某行的Key.

序号，空串表示取得所有被删行的Key

Key值，如果是多个行，则以逗号分隔
删除区并不缓存新插入的行.
恢复被删除的行

以逗号分隔的Key值，空串表示恢复所有被删行

恢复的总行数
1.被恢复的行将位于表格末尾处;<br> 2.删除区并不缓存新插入的行.
取得当前Treelist的定制信息
取得当前Treelist的外观状态XML串用于上传，使操作者可定制外观
XML串
参见演示页: 33.定制
设置Treelist定制信息

XML串

应用原先已保存(上传)的外观状态XML串
参见演示页: 33.定制
增加自定义的弹出菜单项

串、XML串，或URL，内容的格式规范请参考Treelist的帮助文档“8.自定义菜单”

可选，格式为LocateAt=[top/bottom], 表示自定义菜单在弹出时位于顶部还是底部，默认是bottom

只能在OnEvent(id, "MenuBeforePopup", ...)事件中执行。
参见演示页: 25.自定义右键菜单
配置内置的右键菜单项，使之能显示

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

可选， true - 仅对参数1的菜单项生效； false - 仅显示参数1的菜单项，其余的统统不显示.<br>默认是true

默认情况下，language、exportAll、printAll是disable的
配置内置的右键菜单项，使之不显示

同上

可选，true/false.<br> true - 仅对参数1的菜单项生效； false - 仅隐藏参数1的菜单项，其余的统统显示, 默认是true

可选，true/false.<br> true - 临时性的，仅用于 MenuBeforPopup 事件中, 默认是false

默认情况下，language、exportAll、printAll是disable的
是否能够重画
1 / 0 - 能 / 不能
设置让Treelist能够重画或不能重画
设置让Treelist能够重画或不能重画。为了提高性能，消除不必要的重画，在需要连续对Treelist作改动性操作(比如改数据、改属性)前关闭重画，操作完成后再开启重画.

true/false - 能 / 不能

打印预览
直接打印
从 xlsx 文件导入数据

格式为 filename=[?];SheetName=[?];isDeleteFirst=[?];HeaderRows=[?];TailRows=[?]; 列名1=[?]; 列名2=[?]...; 列名n=[?]：<br> <b>FileName</b> - xlsx 文件的全文件名;<br> <b>SheetName</b> 或 <b>Sheet</b> - 如果是多工作表，需指定的工作表名，否则默认导入第一个工作表;<br> <b>HeaderRows</b> - xlsx的上方不得导入的行数;<br> <b>TailRows</b> - xlsx的下方不得导入的行数;<br> <b>isDeleteFirst</b> - true/false, 是否先删除原先的数据, 默认是false;<br> <b>各个列名</b> - xlsx中各个列的列号， 对应到XML中的列ID。需要逐个列对应过去，如果不指定这个对应关系，则以自然顺序逐个自动对应;<br>

1/0 - 成功/失败
AF.func("Import", "filename=d:\\表1.xlsx; A=Country; B=PrdId; D=price");
取得XML格式的全部数据
取得XML格式的全部数据，一般用于打印:将串作为数据源转交给Report组件.

可选，为 asData 或 asDisplay，表示输出内容是纯数据，还是和界面显示的一样串，默认是asDisplay

可选，为行的范围，默认是全部行，格式可以为：<br> row = 行号，多个行之间以逗号分隔;<br> startRow = 开始行的行号;<br> endRow = 结束行的行号(注：不包括结束行);<br> 　或 count = 行数;<br>

XML大串
参见自由表头的演示页: 10.有表头表体的表单(2)、14.基于Freeform的对话框
var row=4;<br>AF.func("Export", "asData \r\n row=" + row);
打开转换输出对话框

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

转换输出成功的文件名(含路径的全文件名)，空串表示未作转换. 如果有多个文件名，则以回车分隔
AF.func("OpenExportDialog", "typeOnly=xlsx;content=asDisplay");
打开删除行对话框
增设快捷键
增设快捷键。快捷键将触发HotKey事件

第一个快捷键，可以是F1至F12、字母、数字、或键的AscII码，也可再加Ctrl、Shift、Alt的组合，以'+'分隔.

可选，第二个快捷键，以此类推.

AF.func("AddHotKey", "F12 \r\n Ctrl+F4 \r\n Ctrl+Shift+S \r\n Alt+5 \r\n Ctrl+32");<br> 分别表示了5个快捷键：F12、Ctrl+F4、Ctrl+Shift+S、Alt+5、Ctrl+空格(空格的AscII码是32)
并不是所有键都能用作快捷的，受制于浏览器，您需要逐个测试