5.工具条功能号

通过上面的CallFunc函数可以调用工具条中的各个功能，各个工具条中的功能号规则如下：

5.1.主工具条 ( )：

功能号 | 含义 | CallFunc函数参数
--- | --- | ---
102 | 新建报表 | 如果没有参数，表示直接打开对话框，就像鼠标点击工具条一样; 如果含有参数，则不打开对话框，而是直接建立新表，参数规则如下： name=[?]; rows=[?];cols=[?]; rowheight=[?]; colwidth=[?]; filename=[?], 含义如下： name - 工作表名; rows/cols - 总行数/列数; rowheight/colwidth - 行高/列宽 filename - 本地的XML全文件名, 可以不指定 示例： AF.func("callfunc", "102 \r\n name=我的工作表;rows=20;cols=8");
103 | 弹出打开报表文件的对话框 | 如果没有参数，就表示像鼠标点击工具条一样；如果有参数，那么参数格式为: type=[?];Dir=[?], 含义如下： type - xml 或 xlsx、xls，表示对话框默认的文件类型; dir - 本地文件目录，表示对话框的初始目录定位; isWithFormula - true/false, 含义为当打开 xlsx、xls 文件时，是否导入计算公式, 默认是true
104 | 保存报表 | 文件名，用于强制指定文件名，文件类型可以是xml、zip
1074 | 报表另存为 | 如果没有参数，表示直接打开对话框，就像鼠标点击工具条一样; 如果含有参数，参数格式为 "Filename=[?]; WorkSheets=[?]; isReturnContent=[?]; isSaveCalculateResult=[?]"，这些参数均可选. Filename - 本地文件名, 可以是全文件名，也可以不包含路径，如果不含路径，则会生成到 BC\Temp 下。指定文件名后将不会弹出文件选择对话框; WorkSheets 或 WorkSheet- 指定工作表顺序号，用于有多工作表的情形，如果需要多个工作表，需以逗号分隔，指定工作表顺序号后将不会弹出工作表选择对话框; isReturnContent - 如果为true, 表示函数返回的不是文件名，而是内容本身的XML串, 默认是false. 如果 isReturnContent = true, 那么 Filename 就不需要指定了，也不会弹出文件选择对话框, 因为不输出到文件了; isSaveCalculateResult - true/false, 是否将数据源填入的数据也一起保存，默认值是该报表属性中的同名选项; 示例： var filename = AF.func("callfunc", "1074\r\n WorkSheets=3,5"); 　//表示将第四、第六工作表另存 返回值： 含路径的全文件名, 或 XML 串 (在 isReturnContent=true 时)
105 | 转换输出 | 如果没有参数，表示直接打开转换输出对话框，就像鼠标点击工具条一样; 如果含有参数，则不打开对话框，而是直接生成转换文件，并返回文件名，参数格式分数据文件和图像文件二种。 ### 1.数据文件 参数格式为："Type=[?]; asData=[?]; includeHide=[?]; gridLine=[?];filename=[?];isForMobile=[?];isReturnContent=[?]" Type - 是输出文档格式，有xlsx, xls, pdf, htm, mht, doc, txt, xml, dif, rtf 这几种; asData - 为 true 表示输出纯数据，否则是包含了格式掩码的数据(比如含千位符)，默认false; includeHide - 是否包含隐藏行、隐藏列，默认false; gridLine - 是否是否显示表格线，仅用于XLS，默认false; includeFormula - 用于 xlsx、xls 格式的转换，表示是否连公式一起转换, 默认是true. filename - 要生成的全文件名，如果文件名为空或没有指定目录，则文件生成到硕正的临时目录 (BC\Temp) 下. 如果转换格式是 pdf, 则还可以有如下选项： EmbedFont - 是否让其携带独立字库, true/false. BlackGridLine - 表格线颜色, true - 表格线以黑色转换, false - 与展现的颜色一致. 注：表格线是否打印, 仍然以打印配置对话框的设定为准. 如果转换格式是 xlsx 或 xls, 则还可以有如下选项： WorkSheet - 工作表范围, all - 全部工作表, current - 当前工作表，默认是全部工作表. 如果转换格式是 htm, 则还可以有如下选项, 常用于服务器专版的移动端展现功能： isForMobile - 是否用于手机客户端 (服务器专版), 该选项将对转换输出作优化, 比如采用单一字体、减少格式冗余, 默认是 false; isReturnContent - 如果为true, 表示函数返回的不是文件名，而是内容本身的字符串, 默认是 false; isKeepPictureURL - 报表中的图片如果勾选了 "仅保存文件名", 是否仅保留该 URL 而不生成图片文件, 默认是 false; isBase64Picture - 报表中的图片是否以 Base64 串表示, 默认是 false; chart - 指定统计图的别名或者ID号 (关于ID号的含义请参见函数 GetGrahics), 这样生成的 html 将不包含表格, 只包含这个统计图(包括 ECharts), 例如： var s = func("callfunc", "105 \r\n Type=html; chart=#1000; isReturnContent=true; isBase64Picture=true"); isIncludeChart - 生成的 html 是否包含统计图, 默认是 true. isEChartAsPicture 或 isEChartsAsPicture - 百度 ECharts 统计图是否也转换成图片, 默认值是 true. 注: 服务器专版不支持 true, 只支持 false. isUsingDefineFormat - 是否套用报表属性对话框中“当前工作表属性(3)”中指定的格式转换, 默认是 true; Adaptive - 可以是 "V" 和 "H" 的组合, 逗号分隔, 表示高度和宽度是否自适应。一旦设为自适应, 报表样式就无法精确模拟, 比如图片、文本框这些浮动对象就无法定位。默认是空, 即不自适应; isQueryPage - 是否用于转换一体化查询的 jQuery Mobile查询条件页，请看 "服务器专版" 中的 "9.报表转换模板"; Template - 指定模板文件，可以是URL、或文件，用于服务器专版，详细说明请参考开发文档 "服务器专版" 中的 "9.报表转换模板"; uploadURL - 用于生成上报汇总模式的 html, 当手机端输入后，用 ajax 把 XML 数据发往该目的地，详细说明请参考开发文档“服务器专版”中的“9.3.上报汇总模板”； ### 2.图像文件 参数格式为："Type=[?]; Scale=[?]; Precision=[?];filename=[?];WorkSheet=[?]" Type是输出文档格式，有img.pdf, jpg, bmp, gif, png, tif 这6种，默认是jpg; ExportAsPrint, true - 按打印预览的分页方式输出; false - 按显示尺寸(和打印无关)输出. Scale是打印比例，范围是10 到 400，默认100。对于 img.pdf 而言，Scale越大越清晰，例如300表示在300%的显示比例下仍很清晰; Precision是JPG精度，仅对JPG有效，精度范围1-100(默认85)，越接近100越清晰，但文件尺寸越大. filename 要生成的全文件名，如果文件名为空或没有指定目录，则文件生成到硕正的临时目录 (BC\Temp) 下. WorkSheet 工作表范围, all - 全部工作表, current - 当前工作表，默认是当前工作表. 示例： var filename = func("callfunc", "105\r\nType=jpg; Scale=100; Precision=85"); 返回值： 均为输出文件名(含路径的全文件名)，由于图像文件是分页输出的，所以象jpg、bmp这些格式可能会有多个文件名( img.pdf 除外)，文件名间以回车分隔，空串表示转换过程有错误. 备注： 1.如果无法确定输出文件位置、希望能弹出对话框让用户选择文件目录，那么请先调用全局函数 FileDialog; 2.如果指定了 filename 参数，则 Type 参数可以省去，因为插件也能根据文件名后缀辨认类型的; 3.PDF 有2种格式, 数据文件中的 "pdf" 即文字型的 pdf; 图像文件的 "img.pdf" 后缀即图片型的 pdf.
100 | 报表属性设置 |
189 | 关于 |
20 | 20 | 复制 |
31 | 剪切 |
32 | 34 | 粘贴格式和文字 |
35 | 仅粘贴文字 |
106 | Undo |
107 | 427 | 查找 |
426 | 替换 |

2.打印工具条 ( )：

功能号 | 含义 | CallFunc函数参数
--- | --- | ---
11 | 11 | 打印报表 | 请参考 Print( ) 函数
318 | 转换为PDF或图片文件 | 请参考功能号105(转换输出)
216 | 打印设置 |
18 | 打印预览 | 可以包含参数，参数规则如下： all=[?];zoom=[?];needWarning=[?] , 含义如下： all - true/false, true表示预览所有工作表 (注: 仅对打印格式一致的工作表有效，比如纸张号、纸张方向等), false表示仅预览当前工作表, 默认是 false; zoom - 10到200之间的数字, 表示预览显示百分比 needWarning - true/false, true 表示当 all=true 时需要检查工作表的打印配置是否一致, 如果不一致时将弹出提示, 配置将被统一

3.常用功能工具条 ( )：

功能号 | 含义 | CallFunc函数参数
--- | --- | ---
110 | 单元合并 |
162 | 求和 |
164 | 计算器 |
163 | 163 | 重新计算 |
260 | 除数据源外，重新计算 |
630 | 仅计算当前工作表 |
786 | 仅计算当前单元格 |
140 | 140 | 打开数据源对话框 |
536 | 自定义显示列 | 数据源的ID, 或数据源的顺序号
537 | 自定义排序 | 同上
116 | 自定义超链接 | 同上
395 | 数据分类汇总 | 同上
520 | 交叉表 | 同上
143 | 清理从数据源填入的数据 | 如果参数是 true, 表示同时清理表头的信息
932 | 清理缓存的数据源数据 |
717 | 全屏显示 | 0-自动，1-退出全屏, 2-进入全屏
4 | 折叠/展开工具条 |

4.工具箱工具条 ( )：

功能号 | 含义 | CallFunc函数参数
--- | --- | ---
301 | 打开工具箱 | 参数可以为一个数字, 表示将当前页定位在某个功能选项卡上, 数字的含义如下： 1 - 属性; 2 - 计算公式; 3 - 数据源; 4 - 字典; 5 - 上报的指标库页; 6 - 交叉表透视快捷窗 示例： AF.func("callfunc", "301 \r\n 6");
2 | 2 | 单元格显示计算公式 |
64 | 单元格显示计算结果 |
734 | 单元格显示计算公式、数据源标题 |
759 | 单元格显示别名 |
25 | 设置数据验证 |
50 | 执行数据验证 | 如果没有参数，就表示像鼠标点击工具条一样; 如果含有参数，参数格式为: range=[?];isReport=[?];isBeforeCalc=[?];isAfterCalc=[?];isIgnoreEmpty=[?], 其参数含义如下： range - 表示工作表范围，空串或忽略该参数表示验证全部工作表；-1表示仅验证当前工作表; 0 到 n 或工作表名称，表示验证指定名称或次序的工作表; isReport - true/one/false, 表示是否仅返回验证报告, true 表示返回全部错误, one 表示只要返回第一条错误即可, 默认是 false; isBeforeCalc - 表示是否匹配标记为计算前的那部分验证, 默认是 false; isAfterCalc - 表示是否匹配标记为计算后的那部分验证, 默认是 false; isIgnoreEmpty - 如果为 true, 表示当没有发现验证条项时，无论如何都不弹出提示, 默认是 false; 返回值：如果 isReport = FALSE, 返回1表示通过验证, 0表示未通过，空串表示工作表不存在; 如果 isReport = true, 则返回验证报告串，空串表示全部通过验证; 示例: var ErrStr = AF.func("callfunc", "50 \r\n isReport = true"); ErrStr = ErrStr.replace(/\r\n/g, "\\r\\n"); AF.func("MessageBoxFloat", ErrStr + "\r\n center=true;hold=20");
112 | 添加文本框 | 如果没有参数，就表示像鼠标点击工具条一样; 如果含有参数，则参数规则如下: x=[?];y=[?];width=[?];height=[?]; alias=[?];text=[?] 或 x1=[?];y1=[?];x2=[?];y2=[?]; alias=[?];text=[?] 或 其中的 x / y / x1 / x2 / y1 / y2 / width / height为坐标参数，alias表示别名，text表示文本框的文字(也可以是计算函数)。 坐标参数含义及可用值语法为： x / y 或 x1 / y1 - 左上角坐标, 可以是像素数，也可以是单元格名 (表示位于该单元格的左上角位置)，此外，如果是串"drag", 表示位置不固定，并将随即出现拖拽中的鼠标，效果如同点击该按钮; x2 / y2 - 右下角坐标, 可以是像素数，或单元格名 (表示位于该单元格的右下角位置); width / height - 宽度和高度, 像素数 备注：如果 x / y 使用像素单位，它们是相对于报表第一行、第一列左上角的, 和插件在页面的位置完全无关. 示例： AF.func("callfunc", "112 \r\n x=drag; text=测试");
192 | 192 | 添加图片 | 同上，但有三个跟图片相关的参数：URL、IsSaveURLOnly、MaxSize, 其含义如下： URL - 图片的URL(也可以是本地的全文件名)、也可以是 BASE64 串； IsSaveURLOnly - 是否仅仅将图片的URL保存入到报表，默认是false； MaxSize - 限定图片尺寸，格式为宽度和高度的像素数，逗号分隔。当图片的宽度或高度超过时，将自动转换到该尺寸，以减小报表文件的尺寸，仅用于IsSaveURLOnly=false时。当设置了maxSize后，图片将按比例缩放，x2、y2、width、height参数可以省略； 示例： AF.func("callfunc", "192 \r\n x=drag; URL=../mylib/demo.jpg; maxSize=400,400");
17 | 添加图片(打开对话框) |
683 | 从剪切板粘贴图片 |
144 | 添加线条 | 同上，但有二个跟线条相关的参数：color、thick, 其含义如下： thick - 线条粗细，像素数，默认是1； color - 线条颜色；
478 | 添加统计图 |
382 | 添加树列表 | 同上，但有三个跟树列表相关的参数：URL、isSaveURLOnly、isBackGround, 其含义如下： URL - 树列表的URL(也可以直接是XML大串); isSaveURLOnly - true/false, 分别表示仅将URL保存到报表/把树列表的XML串储存到报表中, 默认是true； isBackGround - true/false, 分别表示树列表采用原始背景效果/采用白色背景， 默认是true.
274 | 274 | 格式刷 |
122 | 表格线橡皮 |

5.文字输入工具条 ( )：

功能号 | 含义 | CallFunc函数参数
--- | --- | ---
541 | 公式/计算结果录入为主 | 如果没有参数表示切换, 否则: 1 - 公式录入为主; 2 - 计算结果录入为主
585 | 弹出公式引导输入对话框 | 如果没有参数, 等同于鼠标点击该按钮 如果参数是以等号("=")开头的公式，表示该公式和单元格无关, 弹出的对话框将单独引导公式的输入, 在这种情况下, 返回值可能有三种情形: 1.返回等号开头的公式; 2.仅返回等号, 表示清除了公式; 3.仅返回0, 表示点击了对话框 “取消” 按钮

6.不在工具条上的其它功能号

如下功能不在工具条上，部分在鼠标右键菜单中，也允许通过 callfunc 函数调用:

功能号 | 含义 | CallFunc函数参数
--- | --- | ---
404 | 自动调整行高，使文字能全部显示 |
405 | 自动调整列宽，使文字能全部显示 |
446 | 合并相同内容行 | 参数为列号，列号从0开始；也可以是多个列按大类、小类合并, 列号之间以逗号分隔
0 | 计算消息窗的打开方式 | 0－始终不打开；1-遇到计算有错误就打开
900 | 取得当前报表已打印的次数，返回值其实是整数 |
108 | 切换为分页显示 |
109 | 切换为常规显示 |
15 | 切换显示比例 | 参数可为20、50、80、100、150、200
309 | 切换上报模式时的普通输入和设定输入顺序. |
800 | 分析当前单元格数据构成. |
180 | 单元格更多的边框属性, 即工具箱中, 单元格属性的 "边框(更多属性)" 按钮. |