打开一张报表

报表的URL(相对或绝对)，或者是Report的XML串

执行报表的计算，包括数据源的取数填充

可选，格式为 mode=[?];range=[?], 其含义分别为: <br> <b>mode</b> - 计算模式，值可以为 synch、asynch, 分别表示同步计算、异步计算，默认是同步计算。异步模式用于改善在数据源取数时服务器端响应缓慢而导致的界面滞涩;<br> <b>range</b> - 计算范围，值可以为：<br> 　　full - 表示计算全部工作表，默认;<br> 　　current - 仅计算当前工作表；<br> 　　工作表序号(从0开始计数) - 指定计算某工作表，也可以是以逗号分隔的多个工作表，比如 “3,4,0” 表示顺序计算第四、第五、第一个工作表

AF.func("calc", "mode=asynch;range=current");
如果是异步计算，js不应该再执行针对AF的函数了，应该在“Calced”事件中处理后续事务，否则异步将失去意义(<font color=red>非常重要</font>);
请参见演示页: 10.自定义函数、以及大量的数据源相关的demo页
取得当前报表的XML串

可选，格式是 isSaveCalculateResult=[?], 值可以为<br> <b>true</b> - 连同数据源填入的数据一起保存;<br> <b>false</b> - 清除数据源填入的数据;<br> <b>default</b> - 按照报表模版中默认的选项(在报表属性中)

XML串
1.Supcan Report是以XML保存的，而不是二进制;<br>2.该函数取得报表的XML后，通常需要再通过Ajax发送给服务器，用以保存报表;
AF.func("GetFileXML", "");<br> AF.func("GetFileXML", "isSaveCalculateResult=true");
请参见演示页: 11.动态创建
取得上次打开(Build)的报表的文件名, 包括URL
文件名或URL，如果上次是通过一个XML大串Build的，那么返回串“@XML”
预订事件

需要预订的事件有：CurSelChanged、Clicked、DblClicked、EditChanged、Editing、CellPropChanged，其含义分别是：当前单元格切换、鼠标点击单元格、鼠标双击单元格、单元格或文本框的内容输入已更新、单元格或文本框的输入框已打开并且内容有修改、工具箱中单元格的某些属性被修改

AF.func("SubscribeEvent", "CurSelChanged, Clicked");
BeforeCellPropChanged不需要单独预订，它将跟随CellPropChanged事件
请参见演示页: 24.高级功能
调用工具条上的功能

功能号

取决于功能号

取决于功能号, 通常为: 1 - 成功, 0 - 失败
功能号参见"工具条功能号"章节
请参见演示页: 1.体验硕正报表、10.自定义函数、19.中心数据源、34.左右分页打印
设置中心数据源编目的URL

中心数据源编目的URL(相对或绝对)

AF.func("setSource", "../center/dscenter.aspx");<br> AF.func("Build", "reports/myreport1.xml");
1.中心数据源的编目URL是一次设置、全局(进程)有效的;<br> 2.建议在第一次打开报表前执行;<br> 3.一旦设置了URL，报表数据源对话框中就不需要用户自己输入URL了：<img src="report3.png"><br> 4.建议该URL返回的XML/JSON数据支持<a href="pub.htm#Tag604" target=_blank>SoapLike</a>异常包
请参见演示页: 19.中心数据源
设置某临时数据源的URL

数据源ID

URL(相对或绝对); 对于XML/JSON数据源，也允许是直接的XML大串

可选，格式为 Para2=[?], 其含义为:<br> <b>Para2</b> - 可以为data/URL, 表示声明上面的“参数2”是纯数据串还是一个URL，仅用于TXT格式的数据，因为TXT格式的数据有时候很难自动判断到底是数据还是URL。如果不声明，系统优先判断为URL .<br>

AF.func("Build", "reports/myreport1.xml");><br> AF.func("setSource", "ds1 \r\n dscenter/serv1.aspx");
1.必须先打开报表，再执行本函数，否则无效，这一点和中心数据源刚好相反;<br> 2.建议该URL返回的XML/JSON数据支持<a href="pub.htm#Tag604" target=_blank>SoapLike</a>异常包
请参见临时数据源的所有演示页
强制更改某中心数据源的dataURL

数据源ID

URL(相对或绝对)

AF.func("setSource", "ds1 \r\n dscenter/serv1.aspx");
取得数据源的URL

数据源ID

1.如果报表中只有一个数据源，参数(ID)可以忽略;<br> 2.如果该数据源是中心数据源，那么将返回它的dataURL;
URL串
var url = AF.func("GetSource", "ds1");
取得所有数据源的ID
串，多个ID间以回车分隔. 例如“ds1,ds2,ds3”
取得某数据源的某些属性

数据源ID<br>注: 如果是复合XML数据源的子节点，应该命名为诸如 "ds1\node1" 这样的串(注意：在js中，应该写成"ds1\\node1")

属性名，可以是: <br> <b>CenterID</b> - 中心数据源编目中的ID，仅用于中心数据源; <br> <b>WSFunction</b> - Web Service的方法(Method)名，仅用于Web Service类型的临时数据源;<br> <b>FieldID</b> - 取得各数据项(列)的ID，以回车分隔;<br> <b>FieldText</b> - 取得各数据项(列)的标题文字，以回车分隔;<br> <b>AllFieldID</b> - 取得全部 (包括不显示的) 数据项(列)的ID，以回车分隔;<br> <b>AllFieldText</b> - 取得全部 (包括不显示的) 数据项(列)的标题文字，以回车分隔;<br> <b>para</b> - 可变参数名，以回车分隔;<br> <b>paraText</b> - 可变参数的含义，以回车分隔;<br>

串
设置某数据源的参数的值

数据源ID

参数2、参数3...参数n，根据该数据源具体的定义

AF.func("SetParas", "ds1 \r\n" + var1 +"\r\n"+ var2);
设置某数据源的参数的值

数据源ID

XML/JSON串、或类似"prop1=value1; prop2=value2; ..."的属性串

AF.func("SetParas", "ds1 \r\n year=2012; month=2");
强制设定数据源的附加参数

参数串，例如"OrgId=2001&Dept=33"

1.全局有效；对中心数据源和临时数据源都有效;<br> 2.这些参数将附加在数据源取数URL的后面，也就是说URL将被重新拼装;<br> 3.如果原URL中已经包含同名的参数，将以该函数设置的为准;<br>
取得某数据源的参数名

数据源ID

参数名，若有多个参数，则以回车分隔
设置或添加某临时数据源的某个数据列信息

数据源ID<br>注: 如果是复合XML数据源的子节点，应该命名为诸如 "ds1\node1" 这样的串(注意：在js中，应该写成"ds1\\node1")

列名

列标题名

数据类型

删除某临时数据源的某个数据列

数据源ID<br>注: 如果是复合XML数据源的子节点，应该命名为诸如 "ds1\node1" 这样的串(注意：在js中，应该写成"ds1\\node1")

列名

新建中心数据源

数据源ID

中心数据源的ID号

强制中心数据源和后端同步
强制中心数据源和后端同步，用于清理中心数据源的自定义信息，例如：列是否显示、列显示顺序、排序、超链接等.
取得某数据源能够被用于哪些工作表
取得某数据源能够被用于哪些工作表，用于在数据源对话框中限制了数据源和工作表对应关系的情况
工作表名, 若有多个工作表则以逗号分隔
取得工作表能使用哪些数据源
取得工作表能使用哪些数据源，用于在数据源对话框中限制了数据源和工作表对应关系的情况

可选，工作表名或工作表顺序号，从0开始计数。如果不指定工作表，则默认为当前工作表

数据源的ID, 若有多个数据源则以逗号分隔
取得某数据源对应到表格中的各个列
取得某数据源对应到表格中的各个列, 即取得 =datarow( ) 函数横向填充的各个列的位置

数据源ID

以逗号分隔的各个列的序号 (序号从0开始计数)
取得某数据源的XML描述串

数据源ID

XML串
根据数据源的XML描述串，动态更改或添加数据源

XML描述串

1/0 - 成功/失败
1.如果该数据源不存在，则会自动添加;<br> 2.该函数常用于动态更改数据源的内容，比如动态添加数据列. 由于XML结构比较复杂，建议借助全局函数中的 "DOM_函数" 来处理;<br>
取得工作表的计算公式中使用了哪些数据源

可选，工作表名或工作表顺序号，从0开始计数； -1表示所有工作表；如果不指定工作表，则默认为当前工作表

数据源的ID, 若有多个数据源则以逗号分隔
取得工作表的计算公式中使用了哪些数据源，包括参数

可选，工作表名或工作表顺序号，从0开始计数； -1表示所有工作表；如果不指定工作表，则默认为当前工作表

串，格式规定如下：<br> 1.数据源的ID和参数, 相互之间以Tab(即\t)分隔，参数是原参数，即有可能是带引号的；<br> 2.若有多种不同数据源及参数组合，则相互以回车符(\r\n)分隔;
取得总行数
数字
取得总列数
数字
插入行

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

可选, 插入行数，默认1

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

1-成功，空串-失败
插入列

插入处列号(从0开始计数，-1表示从末尾添加)，或列名(如A、B、C..)

可选, 插入列数，默认1

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

1-成功，空串-失败
删除行

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

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

1-成功，空串-失败
删除列

开始删除的列号(从0开始计数)，或列名(如A、B、C..)

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

1-成功，空串-失败
某行是否被隐藏

行号(从0开始计数)

1/0 - 是/否
隐藏行

行号(从0开始计数)

可选，数量，默认1

可选，true/false - 隐藏/解除隐藏，默认true

某列是否被隐藏

列号(从0开始计数)，或列名(如 A、K、AC)

1/0 - 是/否
隐藏列

列号(从0开始计数)，或列名(如 A、K、AC)

可选，数量，默认1

可选，true/false - 隐藏/解除隐藏，默认true

取得某行高

行号(从0开始计数)

数字，单位：像素数
设置某行高

行号(从0开始计数)

数字，单位：像素数，范围：0-2000

取得某列宽

列号(从0开始计数)，或列名(如 A、K、AC)

数字，单位：像素数
设置某列宽

列号(从0开始计数)，或列名(如 A、K、AC)

数字，单位：像素数，范围：0-2000

取某行的其它属性

行号(从0开始计数)

<b>ds</b> - 该行是否数据源动态插入的行; <br> <b>print</b> - 该行是否打印; <br> <b>pageBreak</b> - 在该行处是否强制分页;<br> <b>pageNumber</b> - 强制分页的页码;

对于pageNumber属性，返回页码数字；其他返回 1/0 - 是/否, 空串表示失败
数据源动态插入的行(行号在左标尺以深蓝色显示)，在模版保存是会自动被删除
设置某行的某些属性

行号(从0开始计数)

<b>ds</b> - 该行是否数据源动态插入的行; <br> <b>print</b> - 该行是否打印; <br> <b>pageBreak</b> - 在该行处是否强制分页;<br> <b>pageNumber</b> - 强制分页的页码;

对于pageNumber属性，是页码数字；请他: true / false - 是 / 否

1/0 - 成功/失败
不建议强制设置 ds 属性
根据行列号得到单元名

行号(从0开始计数)

列号(从0开始计数)

串 - 单元格名，如"D9"、"AA2
AF.func("GetCellName", "4 \r\n 0"); 返回 A5
根据单元名得到行号

单元名

行号
AF.func("GetCellRow", "A5"); 返回 4
根据单元名得到列号

单元名

列号
AF.func("GetCellCol", "A5"); 返回 0
选取焦点单元、或嵌入对象(如文本框)

行号(从0开始计数)

列号(从0开始计数)

可选, 至行号, -1表示到末行

可选, 至列号, -1表示到末列

可选, 可以为input, 表示打开输入框，直接进入编辑状态

请参见演示页: 1.体验硕正报表、36.套打(一)
true/false - 成功/失败
参数也不一定要完全按照上述规定，语法其实是比较灵活的，请参见下面的示例：
AF.func("SelectCell", "A5"); //选取A5单元格<br> AF.func("SelectCell", "A5 \r\n B8"); //选取从A5单元格到B8单元格之间的区域<br> AF.func("SelectCell", "5 \r\n C"); //C 是列名， 表示第三列<br> AF.func("SelectCell", "B5 \r\n -1 \r\n -1"); //选取从B5单元格到报表右下角整个区域<br> AF.func("SelectCell", "Addr \r\n DKP"); //选取从别名为"Addr"的单元格到别名为"DKP"之间的区域 AF.func("SelectCell", "Addr \r\n input"); //选取别名为"Addr"的单元格或文本框，然后直接打开输入
取得当前焦点单元格

可选，顺序号(从0开始计数)，默认是0. 如果当前焦点是一块区域，可以用顺序号参数逐个取得单元格名，循环顺序是逐行逐列

串，单元格名,如 "D4"、"E4"; 如果当前选中的是内嵌对象(如文本框)，则返回它的别名
取得当前焦点单元格
串，包含左上、右下的2个单元格名,如 "D4:E5"、"E4:E4", 注："E4:E4"是一个单元格; 如果当前选中的是内嵌对象(如文本框)，则返回以逗号分隔的别名
自动滚动到让某单元格可见

行号(从0开始计数)

列号(从0开始计数)

true/false - 成功/失败
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名
取得某单元的内容或计算结果
取得某单元的内容，或者计算公式的值

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

串
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名、或文本框的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
var s1 = AF.func("getCellData", "3 \r\n 9");<br> var s2 = AF.func("getCellData", "B7");<br> var s3 = AF.func("getCellData", "B7@Sheet2"); //指定取第二个工作表<br> var s4 = AF.func("getCellData", "MyTh"); //"MyTh"是别名<br>
设置某单元内容、或公式
设置某单元的内容、或计算公式(计算公式以等号开头)

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

串

.也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名、或文本框的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格);<br><br> <font color=red>严重警告：</font>参数2和参数3之间不得留有多余空格，否则结果将不是你所期望的，例如：<br>　　AF.func("SetCellData", "C5 \r\n "+ vCity);　　//执行结果是左侧有多余空格
取得某单元的内容或计算结果(Checkbox优先)

同 GetCellData

串
和 GetCellData 函数唯一的差别是：如果单元格是CheckBox，那么返回的是 0 或 1，否则和GetCellData一样
设置某单元内容、或公式(CheckBox优先)

同 SetCellData

和 SetCellData 函数唯一的差别是：如果单元格是CheckBox、并且最后一个参数是 0 或 1，那么就设置这个CheckBox而不是修改文字.
取得某单元的显示内容

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

串
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名、或文本框的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
var s1 = AF.func("getCellText", "3 \r\n 9");<br> var s2 = AF.func("getCellText", "B7");<br> var s3 = AF.func("getCellText", "B7@Sheet2"); //指定取第二个工作表<br> var s4 = AF.func("getCellText", "MyTh"); //"MyTh"是别名<br>
取得某单元的计算公式

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

串, 空串表示非计算公式
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名、或文本框的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
取得某单元格的属性

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

属性名，可以是自定义属性，也可以和XML文件中的一致，大约有20种，如TextColor, BgColor, formula(输入的公式), datatype, decimal, isRound(是否四舍五入), isThousandSeparat(千位符), isProtected(保护), align, vAlign, fontIndex, leftBorder, topBorder, leftBorderColr, topBorderColor, isCheckbox, isChecked, checkboxGroup, Alias(别名), HRef(超链接), Tip, Attr(指标属性)、crosstabRowDir(交叉表的行值)、crosstabColDir(交叉表的列值)、Arrow(左侧标记色)等。

内容串(透明的背景色用“T”表示)
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名、或文本框的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
设置某单元格的属性

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

属性名, 和GetCellProp( )同

值串(透明的背景色请用“T”表示)

也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名、或文本框的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
AF.func("SetCellProp", "C6 \r\n BgColor \r\n T");<br>AF.func("SetCellProp", "C6 \r\n TextColor \r\n Red");<br>AF.func("SetCellProp", "C6 \r\n CustormerID \r\n 33801"); //自定义属性
根据表达式查找单元格

表达式串，表达式中可以含变量：data(表示输入的内容或计算结果)、formula(输入的公式)、alias(别名)，其它变量表示自定义属性.

以逗号分隔的单元名，如"D3"、"K2,K4"
AF.func("FindCell", "left(formula,1)='='"); //取得所有输入了公式的单元格<br> AF.func("FindCell", "left(alias, 3)='mpc')); //取得别名以“mpc”开头的单元格<br> AF.func("FindCell", "price=33"); //自定义属性"price"为33的单元格
克隆区域
克隆某个区域到一个新的区域

左上单元格行号(从0开始计数)

左上单元格列号(从0开始计数)，或列名(如 A、K、AC)

右下单元格行号(从0开始计数)

右下列号(从0开始计数)，或列名(如 A、K、AC)

格式为 : row=[?];col=[?], row、col至少要定义一个，含义为:<br> row - 克隆到从该行开始的新区域，如果行不够，则自动向下扩展;<br> col - 克隆到从该列开始的新区域，如果列不够，则自动向右扩展;<br>

新区域的左上角、右下角单元格名，以冒号(:)分隔。如果是空串，则表示失败，失败原因通常是参数有错误、区域有交集
1.也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名;<br> 2.新、原区域不得有交集;
如下函数是同一个意思：<br>AF.func("CloneArea", "C6:F7\r\nrow=30");<br>AF.func("CloneArea", "C6 \r\n F7 \r\nrow=30");<br>AF.func("CloneArea", "5 \r\n 2 \r\n 6 \r\n 5 \r\nrow=30");
取得某单元格的状态

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

A - 普通单元格; <br> H - 被合并; <br> M - 被合并，但位于合并区的左上角，是有效的主单元格; <br> 空串 - 该单元格不存在
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
取得某单元格所在的合并区域中的主单元格(即左上角单元格)

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

单元格名。如果本单元格没有被合并，则返回本单元格名
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
取得某单元格所在的合并区域

行号(从0开始计数)

列号(从0开始计数)，或列名(如 A、K、AC)

以“:”分隔的左上角和右下角的单元名。如果本单元格没有被合并，则返回本单元格名
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
合并单元格

左上单元格行号(从0开始计数)

左上单元格列号(从0开始计数)，或列名(如 A、K、AC)

右下单元格行号(从0开始计数)

右下列号(从0开始计数)，或列名(如 A、K、AC)

也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
如下函数是同一个意思：<br>AF.func("Merge", "C6:F7");<br>AF.func("Merge", "C6 \r\n F7");<br>AF.func("Merge", "5 \r\n 2 \r\n 6 \r\n 5");
解除指定区域的合并

左上单元格行号(从0开始计数)

左上单元格列号(从0开始计数)，或列名(如 A、K、AC)

右下单元格行号(从0开始计数)

右下列号(从0开始计数)，或列名(如 A、K、AC)

也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名；也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
如下函数是同一个意思：<br>AF.func("deMerge", "C6:F7");<br>AF.func("deMerge", "C6 \r\n F7");<br>AF.func("deMerge", "5 \r\n 2 \r\n 6 \r\n 5");
解除某个单元格所在区域的合并

单元格行号(从0开始计数)

单元格列号(从0开始计数)，或列名(如 A、K、AC)

也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名; 也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格)
AF.func("deMerge", "C6");
合并某行给定范围内相同内容的单元格

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

合并某列给定范围内相同内容的单元格

格式为：col=[?];row1=[?];row2=[?];isIgnoreNull=[?];isDemergeFirst=[?]，含义为：<br> <b>col</b> - 列号或类似A,B,C的列名<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>

将某列分拆成多列，并自动合并同类项
将某列分拆成多列，并自动合并同类项，分拆、合并的算法和树列表的 VColSep 算法完全一致

格式为：col=[?];row1=[?];row2=[?];VColSep=[?]，含义为：<br> <b>col</b> - 列号或类似A,B,C的列名<br> <b>row1</b> - 开始行的行号，默认是0<br> <b>row2</b> - 结束行的行号，默认是次末行<br> <b>VColSep</b> - 分隔符，含义和树列表的 VColSep 一致 <br>

取得某个区域内有效的单元格
取得某个区域内有效的单元格, 所谓“有效”是指不包括被合并的单元格

左上单元格行号(从0开始计数)

左上单元格列号(从0开始计数)，或列名(如 A、K、AC)

右下单元格行号(从0开始计数)

右下列号(从0开始计数)，或列名(如 A、K、AC)

以逗号分隔的单元格名
也可以将行、列参数合并成一个参数：单元名，如B7、K11； 或者是单元格的别名；
如下函数是同一个意思：<br>var s = AF.func("GetValidCells", "C6:F7");<br>var s = AF.func("GetValidCells", "C6 \r\n F7");<br>var s = AF.func("GetValidCells", "5 \r\n 2 \r\n 6 \r\n 5");
取得所有内嵌对象的别名

可选，类型筛选，可以是如下类型的组合(逗号分隔)：Chart、Line、TextBox、Picture、Treelist, 分别表示统计图、线条、文本框、图片、树列表

别名串，多个别名之间以逗号分隔
取得某内嵌对象的属性

内嵌对象的别名

属性名，不同的内嵌对象类型是有差别的，请参考XML文件，内嵌对象的属性有:<br> <b>公共属性</b>：<br> 　type - 内嵌对象类型，返回值为Chart、Line、Textbox、Picture;<br> 　isPrint - 打印　　　　　　　isProtected - 保护　　　　　rect - 矩形区的坐标<br> 　isLocked - 锁定行列位置　　unDragAbleAtRuntime - 运行时不可拖拽<br> <b>文本框的属性</b>：<br> 　text - 文字或计算结果　　　　formula - 计算公式　　　　 fontIndex - 字体索引 <br> 　bgColor - 背景色　　　　　　textColor - 文字色　　　　　align/valign - 文字对齐 <br> 　dataType - 数据类型　　　　 isRound - 四舍五入　　　　decimal - 小数位数 <br> 　isThousandSeparat - 千位符　maskid - 显示掩码　　　　　rect - 矩形坐标<br> 　charSpace - 字间距　　　　　lineDistance - 行间距　　　 isUnderLine - 边框仅画底边<br> 　borderThick - 边框粗　　　　borderColor - 边框色　　　　borderStyle - 边框风格<br> 　RoundX/RoundY - 圆角直径　isNoZoom - 尺寸和打印比例无关<br> <b>图片的属性</b>：<br> 　isTransparent - 是否透明　　　blobid/picture - 图片　　　　rect - 矩形坐标<br> 　borderThick - 边框粗　　　　 borderColor - 边框色　　　　borderStyle - 边框风格<br> 　RoundX/RoundY - 圆角直径 　align/valign - 图片对齐　　　isNoZoom - 尺寸和打印比例无关<br> <b>统计图的属性</b>:<br> 　ChartType、items、textContent...等近20项，请参考统计图组件的<a href="chart.htm?62#Tag801" target=_blank>创建参数<a/>.<br> <b>自定义属性</b>:<br> 　不在上述范围内的属性就都算是自定义属性.<br>

内容串
上述矩形坐标 rect 的格式为逗号分隔的4个值: x1,y1,x2,y2
设置某内嵌对象的属性

内嵌对象的别名

属性名, 同上面的GetCellProp( )函数的属性

值串

删除某些内嵌对象

别名，如果要同时删除多个，请用逗号分隔

动态插入新的内嵌对象请用CallFunc函数
取得工作表的个数
数字
取得当前工作表序号
序号(从0开始计数)
切换当前工作表

序号(从0开始计数)，或工作表名称

1/0 - 成功/失败
取得工作表的名称

序号(从0开始计数)

字符串
修改工作表的名称

序号(从0开始计数)，或工作表名称

新的名称

1/0 - 成功/失败
删除工作表

序号(从0开始计数)，或工作表名称

1/0 - 成功/失败
添加工作表：从外部报表导入

外部报表文件的URL, 注：除了硕正报表文件，也可以是Excel2007的 xlsx 格式文件

可选，可挑选如下4种格式之一：<br> <b>空串</b> - 即无此参数，表示导入该外部报表的所有工作表;<br> <b>?</b> - 如果外部报表有多个工作表，则打开对话框选择;<br> 如<b>sheetnum=0,3,4</b>的串 - 导入顺序号为0、3、4的工作表;<br> 如<b>sheetname=利润表,资产负债表</b>的串 - 导入工作表名为“利润表”,“资产负债表”的工作表;<br>

1/0 - 成功/失败
AF.func("addWorksheet", "../model1.xml \r\n ?");<br> AF.func("appendWorksheet", "../model1.xml \r\n sheetname=工作簿3, 工作簿22");
添加工作表：新建空的工作表

格式为：name=[?]; rows=[?];cols=[?]; rowheight=[?]; colwidth=[?], 含义如下：<br> name - 工作表名;<br> rows/cols - 总行数/列数，默认是100/20;<br> rowheight/colwidth - 行高/列宽, 默认是24/140<br>

1/0 - 成功/失败
AF.func("addWorksheet", "name=薪资;rows=5;cols=10");
取得某数据源指定用于某些工作表的名称

数据源ID

逗号分隔的工作表名
指定数据源用于某些工作表的功能，在数据源首个对话框中
设置工作表的某些属性

格式为 "item1=value1;item2=value2;..." 的属性串，属性含义及可用值如下：<br> <b>isRefOriPrecision</b> - true/false, 单元格之间的引用计算是否以原始精度为准;<br> <b>isShowZero</b> - true/false, 计算结果为零时，是否显示0.00; <br> <b>isUsingEditMask</b> - true/false, 是否启用单元格的数据类型校验; <br> <b>isForGraphicObjectsOnly</b> - true/false, 是否以画文本框、线条等为主，不需要表格线; <br> <b>isRowHeightAutoExtendAble</b> - true/false, 是否允许自动调整行高; <br> <b>isRowHeightAutoExtendAfterRefreshed</b> - true/false, 从数据源加载数据后，是否立即自动调整行高; <br> <b>LineDistance</b> - 像素数, 行距; <br> <b>AutoBreakLine</b> - 0至3的数字, 文字超宽处理，0:自动换行、缩小字体，换行优先; 1:不处理; 2: 自动缩小字体、换行，缩小字体优先; 3: 自动换行，但不缩小字体;<br> <b>BackColor</b> - 背景色; <br> <b>BackPicture 或 BackImage</b> - 背景图, 为一 URL， 空串表示清除背景图; <br> <b>isTile</b> - true/false, 背景图的布局，分别表示铺满/单幅; <br> <br> 　　此外，也可以通过本函数更改某些独立于当前工作表(即对所有工作表都生效)的属性：<br> <b>Ruler</b> - 动态显示或隐藏标尺，值为Horz/Vert，分别表示水平/垂直标尺，也可以是空串，或逗号分隔的组合;<br> <b>toolbarVisible</b> - 动态显示/隐藏工具条，值为true/false;<br> <b>PagesTabPercent</b> - 底部滑动条的左侧Tab区长度占总宽度的百分比，0到100;<br> <b>isAutoCalculateWhenOpen</b> - 报表打开时是否立即自动计算，值为true/false;<br> <b>isSaveCalculateResult</b> - 报表保存时，是否连同数据源填入的数据一起保存，值为true/false;<br> <b>isSheetDragAble</b> - true/false, 底部的工作表页签是否允许被鼠标拖拽交换位置;<br> 　　上述有些属性是“创建参数”.

取得工作表的某些属性

属性名，参见函数SetProp( ). <br> 此外，参数 <b>Crosstab</b> 表示取得交叉表的XML串.

属性的值
取得工作表的交叉表、分类汇总配置XML

固定的串，为 crosstab 或 summary, 分别表示交叉表、分类汇总表

XML串
XML串较复杂，需要您对报表的XML文件中的 Crosstabs、Summaries 节点进行分析
设置工作表的交叉表、分类汇总配置XML

固定的串，为 crosstab 或 summary, 分别表示交叉表、分类汇总表

XML串

XML串较复杂，需要您对报表的XML文件中的 Crosstabs、Summaries 节点进行分析
打印

1-允许弹出系统打印对话框， 0-不弹出对话框直接打印

1/0 - 成功/失败
开始批打印

可选，格式为 StartPageNum=[?]; isMultiPrintTask=[?]; isShareBlankPart=[?]; isPreview=[?]; PreviewDPI=[?], 其含义如下:<br> <b>StartPageNum</b> 或 <b>StartPageNumber</b>- 批中起始页码(任务中的总页码)， 默认是1;<br> <b>isMultiPrintTask</b> - 是否按奇偶页拆分成2个打印任务打印， 默认是false;<br> <b>isShareBlankPart</b> - 如果是名片式打印(即每张纸能均分成多块的打印)，是否共享前一张纸的空白部分，以节省打印纸，默认是false;<br> <b>isPreview</b> - 是否用于预览，默认是false;<br> <b>PreviewDPI</b> - 预览时指定使用 DPI(每英寸像素数) 精度，0表示以当前打印设备的DPI，默认是0. 为了防止当前打印设备DPI太高导致预览速度过于慢甚至预览时出现白屏，建议设成300左右;<br>

1.批打印常用于<b>同一个模板、多批数据</b>的集中打印;<br> 2.从调用该函数开始，后面调用Print( )函数打印的都归并在单个任务中，直至调用EndBatchPrint( )才将这个任务送往打印机，所以打印速度较快;<br> 3.如果分奇偶页打印，打印任务自动分拆成2个：奇页任务和偶页任务，调用EndBatchPrint( )后，将先打印奇页，软件会弹出对话框“正在打印奇数页，按'是'将开始打印偶数页...”，待用户换好纸张即打印偶页;<br> 4.如果isPreview=true, 则参数 isMultiPrintTask 无效;<br> 5.如果isPreview=true, 当调用EndBatchPrint( )结束后，将会弹出预览界面。此外，尽管在预览界面中也能打印，但打印精度和速度都不佳，因为此时是作为纯图片打印的 ;<br> 6.如果您希望在报表中能打印出在批中的页码，请在报表的表达式中使用 pageBatch( )计算函数;
AF.func("Build", "reports/aax.xml"); //打开模板<br> AF.func("BeginBatchPrint", "isShareBlankPart=true"); //开始批打印<br> for( ... ) { //通常是循环<br> 　AF.func("SetSource", "ds1 \r\n abc.aspx?mon=" + mon); //设置查询取数条件<br> 　AF.func("Calc", ""); //填充数据<br> 　AF.func("Print", "0"); //打印, 通常在循环的第一遍时将参数置为“1”(选择打印机)<br> }<br> AF.func("EndBatchPrint", ""); //终止批打印：把打印任务送往打印机
结束批打印，将打印任务发送给打印机
取得工作表的打印配置属性

固定的串，为 Print 或 Printer

XML串
1.打印属性比较复杂，需要您对报表的XML文件中的 PrintPage 节点进行分析;<br> 2.返回的XML串内容不多，因为默认的设置就不出现在XML中了;<br> 3.PaperNumber是打印纸号，请参考本文档“附录4.打印纸对照表”
设置工作表的打印配置属性

固定的串，为 Print 或 Printer

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>
设定指标库的URL
设定指标库的URL，用于上报模式的设计时(运行时通常不需要执行)

URL, 或XML串，其格式请参见Report文档

请参见演示页: 40.指标库
动态修改指标的属性的值

诸如 "attr1=value1; attr2=value2; attr3=value3"这样的名-值对.

可选，别名(即指标名)，表示范围仅限于该类指标; 如果为空，表示对所有单元格、凡是含这些属性的值统一设置.

被修改的单元格个数
用于报表的汇总上报模式(WorkMode=UploadRuntime)，取得当前填入内容的XML串

可选，用于当报表有多个TabOrder方案时，是否仅上报当前方案, 默认true

XML串, 如果返回 "0"，表示报表中的内嵌Treelist对象未通过验证
仅用于创建参数为WorkMode=UploadRuntime时
请参见演示页: 39.填写与申报阶段
加载已上报的数据，用于报表的显示

URL, 或XML串，其格式须和GetUploadXML( )返回的XML一致 (但不需要 Cell="?" 内容)

可选，格式为 autoCalc=asynch/synch/none, 表示执行完加载后立即自动执行一遍计算，asynch表示异步计算; synch是同步计算; none表示不需要计算， 默认是asynch

AF.func("setUploadXML", "../getxml.do?id=332 \r\n autoCalc=none");
取得当前采用了多个TabOrder方案中的哪一个，用于上报运行时
顺序号，从0开始计数
指定采用多个TabOrder方案中的某一个，用于上报运行时

顺序号，从0开始计数

取得所有TabOrder方案的名称
以回车分隔的串。如果只有单个方案，返回串有可能是空串
取得有TabOrder的单元名

可选，方案的顺序号, 空串或-1表示当前方案，默认是空串

以逗号分隔的单元名(如果有文本框，则为文本框的别名)串
用于上报运行时，直接打开第一个可输入的单元格的输入框
请参见演示页: 39.填写与申报阶段
合并修改内容，为以后调用 GetChangedCells( ) 作准备.
取得所有被修改过的单元格.
以逗号分隔的单元名
必须在之前执行过 ResetChanged( ) 函数才能生效.
获取某些单元格的公式、内容

需要获取的单元格的条件，条件为背景色或别名，如"BackColor=#00ff00"、"alias=ABC*", 别名中的星号(*)的含义是通配符.<br>也可以同时书写这2个条件，以分号分隔，二者将是“或”的关系.

XML串
取得数据源填充区内容的XML串

可选, 可以有如下的选项，相互以分号分隔：<br> <b>ds</b> - 数据源ID, 表示取得该数据源的 "=datarow( )" 函数所在单元格的数据源填充区内容;<br> <b>cell</b> - 单元格名，或别名，表示该单元格肯定包含 "=datarow( )" 的函数，并取得数据源填充区内容;<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>includeCol / excludeCol</b> - 仅包含某些列/不包含某些列，二者可选其一，表示列的<b>范围</b>. 列名之间以逗号分隔。默认是空串，表示提交所有列;<br> 　　备注：这个“列名”是指数据源中的列名.<br> <b>自定义属性</b> - 附加在XML根节点处的属性串<br>

XML大串 - 成功;<br>空串 - 未发现数据源;<br>
1.取数范围是以含"=datarow( )"函数单元格作为左上角的数据源填充区;<br> 2.ds 和 cell 只要指定一个就行，如果报表中只有一处"=datarow( )"，则可以省略这2个参数;<br> 3.在让用户修改数据源内容前，通常需要调用 AF.func("callfunc", "541 \r\n 0") 函数，以保证公式不被改动 ;<br>
//取得当前工作表中唯一的数据源填充区内容<br> AF.func("GetChangedXML", "");<br> //取得当前工作表中 'ds1' 数据源填充区内容<br> AF.func("GetChangedXML", "ds=ds1");<br> //同上，但XML串含附加信息<br> AF.func("GetChangedXML", "ds=ds1; org=1001;Uid=330102");<br>
限制某些交互功能
限制某些交互功能 (也可写作 SetLimit )

可包含如下、以逗号分隔的串:<br>　1 －公式修改权<br>　2 －非公式的修改权 <br>　4 －格式修改权(如字体、行高列宽、对齐、隐藏等) <br> 　8 －行列增删权, 也可拆分成：<br> 　　　256 －行增删权<br> 　　　512 －列增删权<br> 　16－被保护的单元的内容修改权<br>　32－平衡校验修改权<br> 　64－数据源修改权，也可拆分成：<br> 　　　64a －新建数据源权<br> 　　　64d －删除数据源权<br> 　　　64m －修改数据源权<br> 　128－工作表的增删权<br>

请参见演示页: 6.自动计算
1.在上报模式的运行时(workMode=UploadRunTime)，不完全遵照这个限制;<br> 2.权限仅限制交互操作，不限制API调用;
AF.func("Swkrntpomzqa", "2, 4, 256, 64");
添加可编辑的单元格范围
添加可编辑的单元格范围，除了这些单元格，其它单元格都不得修改

可包含如下格式的串: level=[?]; [cell=?]; [cellArea=?]; [fixedCell=?]; [fixedCellArea=?]; [alias=?]; [aliasArea=?]; [bgColor=?]; [droplist]; [checkbox], 含义即语法如下: <br> 　level － top/normal, "top" 表示独立增加权限，且级别最高，不受其它权限函数影响, 默认是normal;<br> 　cell － 单元格名(有多个则以逗号分隔)，如"A5, B4, D4";<br> 　fixedCell － 同上，但位置是固定的，不受行列增删影响;<br> 　cellArea － 以":"分隔的2个单元格名，表示左上角到右下角的矩形区域，如“B2:D5”;<br> 　fixedCellArea － 同上，但位置是固定的，不受行列增删影响;<br> 　alias － 别名(有多个则以逗号分隔)，可以含 * 的通配符;<br> 　aliasArea － 以":"分隔的2个别名，表示左上角到右下角的矩形区域，如“Tag12:Tag33”;<br> 　bgColor － 某种背景色的单元格(多个背景色之间以逗号分隔), 如“red, blud, #334400”，T 表示无背景色(透明);<br> 　droplist － 凡是下拉的单元格;<br> 　checkbox － 凡是Checkbox的单元格;<br> 　arrow － 左侧标记色，多个颜色之间以逗号分隔;<br>

AF.func("addEditAbleOnly", "cellArea=B3:B5, D3:D5; alias=KK*"); //仅如下范围的单元格可以编辑: B3:B5之间的单元格、 D3:D5之间的单元格、或别名以"KK"开头的单元格<br><br> AF.func("addEditAbleOnly", "droplist; checkbox; bgColor=black"); //除了下拉的、Checkbox的、或黑色背景的单元格可编辑，其它单元格都不可编辑
当 level = normal 时: <br> 　　1.独立于 Swkrntpomzqa( )，但和 Swkrntpomzqa( ) 同时生效，语义上有冲突时Swkrntpomzqa( )优先;<br> 　　2.和 AddUnEditAbleOnly( )函数是互斥的，即调用AddUnEditAbleOnly( )函数后以前的设置将失效.<br> 　　3.只能执行一遍， 如果再次执行，以前的 level=normal 的设置将失效.<br> 当 level = top 时: <br> 　　1.等级高于 Swkrntpomzqa( )；<br> 　　2.允许执行多遍，设置的权限都将被保持，和其它 AddEditAbleOnly( ) / AddUnEditAbleOnly( )函数不互斥，等级仍然保持最高.<br>
添加不可编辑的单元格范围
添加不可编辑的单元格范围，除了这些单元格不可修改，其它单元格都是可以修改的

同AddEditAbleOnly函数

同AddEditAbleOnly函数
清除所有系列

统计图别名

取得系列数

统计图别名

数字
取得某系列的名称

统计图别名

顺序号，从0开始计数

串，空串表示已经到达末尾
系列的增删改操作

统计图别名

顺序号，从0开始计数

系列名. 空串表示删除这个系列；如果不存在则添加；如果已经存在则修改系列名

取得所有数据项的名称

统计图别名

以逗号分隔的数据项名
取得某数据项的名称

统计图别名

顺序号，从0开始计数

数据项名
设置全部数据项的名称

统计图别名

以逗号分隔的数据项名

可选，true/false - 重构统计图/不重构，默认是true

设置某个数据项的名称

统计图别名

顺序号，从0开始计数

数据项名

可选，true/false - 重构统计图/不重构，默认是true

取得某系列的全部数值

统计图别名

系列名，或系列的顺序号. 如果只有一个系列，那么可以是空串或任意串

以逗号分隔的值
取得某系列的某个数值

统计图别名

系列名，或系列的顺序号. 如果只有一个系列，那么可以是空串或任意串

数据项的顺序号，或数据项名

值
设置某系列的全部数值

统计图别名

系列名，或系列的顺序号. 如果只有一个系列，那么可以是空串或任意串

以逗号分隔的值, 值可以是数值、单元名、别名

可选，true/false - 重构统计图/不重构，默认是true

设置某系列的某个数值

统计图别名

系列名，或系列的顺序号. 如果只有一个系列，那么可以是空串或任意串

数据项的顺序号，或数据项名

值, 值可以是数值、单元名、别名

可选，true/false - 重构统计图/不重构, 默认是true

取得所有下拉字典

name 或 id, 表示返回字典名 或 字典的id号

以逗号分隔的串
取得某个下拉字典的句柄

字典名 或 字典的id号

句柄串，空串表示该字典不存在
取得看句柄后，可以使用全局函数中的 “下拉List管理函数” 访问字典数据
取得当前工作表中使用了某个下拉字典的所有单元格

字典名 或 字典的id号

以逗号分隔的单元格名
删除某个下拉字典

字典名 或 字典的id号

可选，true-绝对删除, false - 如果有单元格使用了该字典就不删除, 默认是true

1/0 - 成功/失败
动态添加下拉字典

语法串

新增字典的id号, 0表示失败，失败原因可能为name重复
AF.func("Droplists_Add", "name=kk1;dataURL=../getDict.aspx");<br> AF.func("Droplists_Add", "name=kk2;dataURL=＜items＞＜item key=1＞男＜/item＞＜item key=2＞女＜/item＞＜/items＞");<br> AF.func("Droplists_Add", "name=kk3;treelistURL=customer.xml;DataCol=id;DisplayCol=name");
取得所有显示掩码的id
掩码的id，相互以逗号分隔
取得某个显示掩码的表达式

ID号

表达式
删除某个显示掩码

ID号

1/0 - 成功/失败
添加一个显示掩码

数据类型，可以是 string, int, double, date, datetime

表达式

如果该掩码表达式已经存在，则返回原ID号
ID号
var id = AF.func("Mask_Add", "string \r\n =formatNum(data, '￥#,##0.00')");<br> var id = AF.func("Mask_Add", "string \r\n =picture()"); //添加图片显示掩码<br> var id = AF.func("Mask_Add", "string \r\n =barcode(33,0,0,0)"); //添加二维码显示掩码<br>
取得当前工作表中使用了某个显示掩码的单元格

ID号

以逗号分隔的单元格名、或文本框的别名
动态更改工具条中某按钮的图标

功能号

图标文件的URL，如果是相对路径，则相对于当前页面

1 / 0 - 成功 / 失败
动态更改工具条中某按钮的Tip (鼠标滑过时的文字)

功能号

文字串

1 / 0 - 成功 / 失败
取得自定义工具条中某按钮/菜单项的状态

功能号，必须是自定义的功能号(大于等于3000)

可用状态，为 Enable、Visible、Check

1 / 0
enable决定按钮或菜单是否灰色显示(disable);<br>visible决定是否让该按钮/菜单项出现;<br>check比较特殊，如果是按钮，必须是style="checkbutton"类型的，决定按钮的凹陷状态；如果是菜单，则会在菜单左侧打一个勾
动态更改自定义工具条中某按钮/菜单项的状态

功能号，必须是自定义的功能号(大于等于3000)

可用状态，为 Enable、Visible、Check

true / false

1 / 0 - 成功 / 失败
enable决定按钮或菜单是否灰色显示(disable);<br>visible决定是否让该按钮/菜单项出现;<br>check比较特殊，如果是按钮，必须是style="checkbutton"类型的，决定按钮的凹陷状态；如果是菜单，则会在菜单左侧打一个勾
增加自定义的弹出菜单项

串、XML串，或URL，内容的格式规范请参考“5.自定义菜单”

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

只能在OnEvent(id, "MenuBeforePopup", ...)事件中执行。
参见演示页: 9.自定义右键菜单
增设快捷键
增设快捷键。快捷键将触发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)
并不是所有键都能用作快捷的，受制于浏览器，您需要逐个测试
添加自定义函数的声明

XML文档，或XML大串

指定批处理自定义函数的URL地址

URL，绝对或相对

可选，每一批中最多函数个数，默认100

可选，附加参数，为任意格式的字符串

取得某自由存储区的存储串

工作表顺序号(从0开始计数)，如果为空串，则表示是和工作表无关的的独立存储区

存储区的ID，为任意串，但不得含逗号

串
自由存储区的内容是保存在报表的XML中的
设置某自由存储区的存储串

工作表顺序号(从0开始计数)，如果为空串，则表示是和工作表无关的的独立存储区

存储区的ID，为任意串，但不得含逗号

要储存的任意串，空串表示删除该存储区

自由存储区的内容是保存在报表的XML中的
取得自由存储区的所有ID

工作表顺序号(从0开始计数)，如果为空串，则表示是和工作表无关的的独立存储区

逗号分隔的存储区ID号
自由存储区的内容是保存在报表的XML中的
是否能够重画
1 / 0 - 能 / 不能
设置让报表能够重画或不能重画
设置让报表能够重画或不能重画。为了提高性能，在需要连续对报表作改动性操作(比如改数据、改属性)前关闭重画，操作完成后再开启重画.

true/false - 能 / 不能

取得工作表、或Validation、或树列表、或内部非模式对话框的句柄

可以为串:<br> <b>Validation</b> - 取得Validation句柄, 用于全局函数动态存取Validation;<br> <b>innerDialog</b> - 取得内部非模式对话框的freeform的句柄;<br> <b>树列表的别名</b> - 取得某内嵌树列表(Treelist)的句柄;<br> <b>工作表的序号(纯数字, 从0开始计数)</b> - 取得某工作表的句柄;<br> <b>工作表名</b> - 取得某工作表的句柄;<br>

句柄串
将报表切换成仅显示统计图

统计图的别名，如果有多个别名，以逗号分隔；也可以是带星号(*)的通配符, 表示符合条件的别名; 也可以是空串，表示所有统计图(没有别名的统计图将被临时分配一个别名).

freeform的URL或XML大串，该freeform必须包含一个ImageFlow对象

1.如果无参数，表示报表切换成原样(显示报表);<br> 2.报表包括工具条在内的整个区域全部切换成显示统计图;<br> 3.点击统计图的某个数据项区域，将会触发同样的report的统计图事件;<br> 4.alias别名和所处的工作表(WorkSheet)无关;<br> 5.freeform即“自由表头”，请参考相关资料;<br>
请参见演示页: 33.统计图ImageFlow
取得当前统计图(以显示统计图时)
仅用于在调用了DisplayAsChart函数后、以统计图显示时
当前统计图别名。 如果报表中含有多工作表，则是类似 "mychart@sheet1"、"chart2@sheet2" 这种格式
设置让自动计算功能失效的最大单元格数量
在键盘输入过程中、复制粘帖过程中，通常能自动触发计算，但如果报表太大（即单元格太多）的话，自动计算会影响性能、操作的流畅程度，为此需要设定一个阀值，一旦单元格总数超过这个数目，就自动关闭这个自动计算功能。默认值是10000(1万).

数值，0相当于就是彻底关闭自动计算

自动计算选项是一个全局开关，对整个进程都生效的
取得自动计算选项
取得自动计算选项，请参见 SetAutoCalc 函数
数值
取得当前主区域的窗口句柄
不太常用，常用于和第三方软件底层交互
句柄串.