2.函数
分类 | 函数名 | 用途 |
---|---|---|
基本 | Build 或 ReadSheet | 打开一张报表 |
Calc 或 Fill | 执行报表的计算,包括数据源的取数填充 | |
GetFileXML | 取得当前报表的XML串 | |
GetFileURL | 取得上次打开(Build)的报表的文件名, 包括URL | |
SubscribeEvent | 预订事件 | |
CallFunc | 调用工具条上的功能 | |
GetHandle | 取得工作表、或Validation、或树列表、或数据源、或内部非模式对话框的句柄 | |
数据源 | SetSource (用途1) | 设置中心数据源编目的URL |
SetSource (用途2) | 设置某临时数据源的URL | |
SetSource (用途3) | 强制更改某中心数据源的dataURL | |
GetSource | 取得数据源的URL | |
GetSources | 取得所有数据源的ID | |
GetSourceInfo | 取得某数据源的某些属性 | |
SetSourceInfo | 设置某数据源的某些属性 | |
SetParas (语法1) | 设置某数据源的参数的值 | |
SetParas (语法2) | 设置某数据源的参数的值 | |
SetParasEx | 强制设定数据源的附加参数 | |
SetDSMacro | 设置临时数据源的URL串的可替换宏 | |
GetParaNames | 取得某数据源的参数名 | |
SetDSColInfo | 设置或添加某临时数据源的某个数据列信息 | |
DeleteDSCol | 删除某临时数据源的某个数据列 | |
NewDS | 新建中心数据源 | |
DeleteDS | 删除数据源 | |
SynchCenterDS | 强制中心数据源和后端同步 | |
GetWorkSheetNameOfDs | 取得某数据源能够被用于哪些工作表 | |
GetDsOfWorkSheet | 取得工作表能使用哪些数据源 | |
GetColsOfDS | 取得某数据源对应到表格中的各个列 | |
GetDSFillInfo | 取得某数据源对应到表格中的行、列信息 | |
GetDSFillJson | 取得某数据源对应到表格中的行、列信息 (json格式) | |
GetDSXML | 取得某数据源的XML描述串 | |
SetDSXML | 设定数据源的XML描述串,动态更改或添加数据源 | |
GetUsedDS | 取得工作表的计算公式中使用了哪些数据源 | |
ParseUsedDS | 取得工作表的计算公式中使用了哪些数据源,包括参数 | |
ClearDSCache | 清理中心数据源缓存 | |
行列 | GetRows | 取得总行数 |
GetCols | 取得总列数 | |
InsertRows (语法1) | 插入行 | |
InsertRows (语法2) | 插入行 | |
InsertCols (语法1) | 插入列 | |
InsertCols (语法2) | 插入列 | |
SetInsertOption | 设定行/列插入操作时, 是否从基准单元格复制某些属性 | |
DeleteRows | 删除行 | |
DeleteCols | 删除列 | |
IsRowHide | 某行是否被隐藏 | |
HideRow | 隐藏行 | |
IsColHide | 某列是否被隐藏 | |
HideCol | 隐藏列 | |
GetRowOffset | 取得某行的偏移量 | |
GetColOffset | 取得某列的偏移量 | |
GetRowHeight | 取得某行高 | |
SetRowHeight | 设置某行高 | |
GetColWidth | 取得某列宽 | |
SetColWidth | 设置某列宽 | |
GetRowProp | 取得某行的某些属性 | |
SetRowProp | 设置某行的某些属性 | |
GetColProp | 取得某列的某些属性 | |
SetColProp | 设置某列的某些属性 | |
SetRowUserProp SetColUserProp | 设置某行/某列的某个自定义属性的值 | |
GetRowUserProp GetColUserProp | 取得某行/某列的某个自定义属性的值 | |
GetRowUserProps GetColUserProps | 取得某行/某列的所有自定义属性名 | |
RemoveRowUserProps RemoveColUserProps | 清除某行/某列所有自定义属性 | |
SetSeparateView | 设置分屏冻结 | |
GetSeparateView | 取得分屏冻结 | |
Sort | 排序 | |
SortDS | 对数据源填入区进行排序 | |
单元格命名相关函数 | GetCellName | 根据行列号得到单元名 |
GetCellRow | 根据单元名得到行号 | |
GetCellCol | 根据单元名得到列号 | |
单元格 | SelectCell(用途1) | 选取焦点单元、或嵌入对象(如文本框) |
GetCurrentCell | 取得当前焦点单元格 | |
GetCurrentCells | 取得当前焦点单元格 | |
EnsureVisible | 自动滚动到让某单元格可见 | |
GetCellData | 取得某单元的内容或计算结果 | |
SetCellData | 设置某单元内容、或公式 | |
GetCellDataEx | 取得某单元的内容或计算结果(Checkbox优先) | |
SetCellDataEx | 设置某单元内容、或公式(CheckBox优先) | |
SetCellResult | 清理单元格计算结果 | |
GetCellText | 取得某单元的显示内容 | |
GetCellFormula | 取得某单元的计算公式 | |
GetCellProp(用途1) | 取得某单元格的属性(包括自定义属性) | |
SetCellProp(用途1) | 设置某单元格的属性(包括自定义属性) | |
GetCellUserProps | 取得某单元格的全部自定义属性名 | |
GetCellFont | 取得单元格的字体信息 | |
SetCellFont | 设置单元格的字体信息 | |
FindCell | 根据表达式查找单元格 | |
CloneArea | 克隆区域 | |
单元格合并 | GetCellStatus | 取得某单元格的状态 |
GetMainCell | 取得某单元格所在的合并区域中的主单元格(即左上角单元格) | |
GetMergedCells | 取得某单元格所在的合并区域 | |
Merge | 合并单元格 | |
DeMerge(用法1) | 解除指定区域的合并 | |
DeMerge(用法2) | 解除某个单元格所在区域的合并 | |
MergeSame(用途1) | 合并某行给定范围内相同内容的单元格 | |
MergeSame(用途2) | 合并某列给定范围内相同内容的单元格 | |
MergeSame(用途3) | 多个列按大类、小类方式, 跨行合并相同内容的单元格 | |
SplitCol | 将某列分拆成多列,并自动合并同类项 | |
GetValidCells | 取得某个区域内有效的单元格 | |
内嵌对象(文本框/图片/统计图/线条) | GetGraphics | 取得所有内嵌对象的别名 |
GetCellProp(用途2) | 取得某内嵌对象的属性 | |
SetCellProp(用途2) | 设置某内嵌对象的属性 | |
DeleteGraphics | 删除某些内嵌对象 | |
Chart_Refresh | 刷新统计图显示 | |
工作表 | GetWorksheets | 取得工作表的个数 |
GetCurrentWorksheet | 取得当前工作表序号 | |
SetCurrentWorksheet | 切换当前工作表 | |
GetWorksheetName | 取得工作表的名称 | |
SetWorksheetName | 修改工作表的名称 | |
DeleteWorksheet | 删除工作表 | |
AppendWorksheet | 添加工作表:从外部报表导入 | |
AddWorksheet | 添加工作表:新建空的工作表 | |
ExchangeWorkSheet | 工作表交换位置 | |
GetWorksheetNameOfDS | 取得某数据源指定用于某些工作表的名称 | |
HideWorkSheet | 隐藏工作表 | |
UnhideWorkSheet | 工作表解除隐藏 | |
GetHideWorkSheet | 取得隐藏的工作表 | |
SetProp(用途1) | 设置工作表的某些属性 | |
GetProp(用途1) | 取得工作表的某些属性 | |
GetProp(用途2) | 取得工作表的交叉表、分类汇总配置XML | |
SetProp(用途2) | 设置工作表的交叉表、分类汇总配置XML | |
GetMemo | 取得某自由存储区的存储串 | |
SetMemo | 设置某自由存储区的存储串 | |
GetMemos | 取得自由存储区的所有ID | |
打印 | 打印 | |
BeginBatchPrint(用途1) | 开始批打印 | |
BeginBatchPrint(用途2) | 开始批导出 | |
EndBatchPrint | 结束批打印,将打印任务发送给打印机 | |
GetProp(用途3) | 取得工作表的打印配置属性 | |
SetProp(用途3) | 设置工作表的打印配置属性 | |
GetPrintProp | 取得工作表的某些常用打印配置属性 | |
SetPrintProp | 设置工作表的某些常用打印配置属性 | |
GetPrintPages | 取得打印的总页数 | |
SetPrintPage | 指定下次打印时,具体打印哪些页 | |
SetPrintAbreast | 设置并肩打印(2个工作表横向共享打印纸) | |
汇总上报模式 | SetItemLibraryURL | 设定指标库的URL |
SetItemAttr | 动态修改指标的属性的值 | |
GetUploadXML | 用于报表的汇总上报模式(WorkMode=UploadRuntime),取得当前填入内容的XML串 | |
SetUploadXML | 加载已上报的数据,用于报表的显示 | |
GetUploadIndex | 取得当前采用了多个TabOrder方案中的哪一个,用于上报运行时 | |
SetUploadIndex | 指定采用多个TabOrder方案中的某一个,用于上报运行时 | |
GetUploadNames | 取得所有TabOrder方案的名称 | |
GetUploadCells | 取得有TabOrder的单元名 | |
SelectCell(用途2) | 用于上报运行时,直接打开第一个可输入的单元格的输入框 | |
RebuildTabOrder | 重新整理、刷新所有 Taborder | |
简易提交(一) | ResetChanged | 合并修改内容,为以后调用 GetChangedCells( ) 作准备. |
GetChangedCells | 取得所有被修改过的单元格. | |
简易提交(二) | CollectXML | 获取某些单元格的公式、内容 |
简易提交(数据源部分) | GetChangedXML | 取得数据源填充区内容的XML串 |
权限相关 | Swkrntpomzqa | 限制某些交互功能 |
addEditAbleOnly | 添加可编辑的单元格范围 | |
addUnEditAbleOnly | 添加不可编辑的单元格范围 | |
ClearLimit | 清理上述2个函数设置的权限 | |
GetCellEditAble | 判断某单元是否有编辑权限 | |
SetConvertAble | 设定转换输出的文件类型 | |
GetConvertAble | 取得转换输出的文件类型 | |
计算相关 | AddUserFunctions | 添加自定义函数的声明 |
RemoveUserFunctions | 清除自定义函数 | |
SetBatchFunctionURL | 指定批处理自定义函数的URL地址 | |
SetAutoCalc | 设置自动计算功能生效/失效 | |
GetAutoCalc | 取得自动计算生效/失效 | |
GetLastCalcError | 取得上次计算错误信息 | |
SetHoldDSData | 在计算后, 设置数据源是否仍然保持数据 | |
GetHoldDSData | 在计算后, 数据源是否仍然保持数据 | |
统计图 | Chart_GetSeriesProp | 取得某统计图某系列的属性 |
Chart_SetSeriesProp | 设置某统计图某系列的属性 | |
外部统计图 (完全由API控制) | Chart_DeleteAllSeries | 清除所有系列 |
Chart_GetSeriesCount | 取得系列数 | |
Chart_GetSeriesName | 取得某系列的名称 | |
Chart_SetSeriesName | 系列的增删改操作 | |
Chart_GetItemNames | 取得所有数据项的名称 | |
Chart_GetItemName | 取得某数据项的名称 | |
Chart_SetItemNames | 设置全部数据项的名称 | |
Chart_SetItemName | 设置某个数据项的名称 | |
Chart_GetValues | 取得某系列的全部数值 | |
Chart_GetValue | 取得某系列的某个数值 | |
Chart_SetValues | 设置某系列的全部数值 | |
Chart_SetValue | 设置某系列的某个数值 | |
下拉字典 | Droplists_Get | 取得所有下拉字典 |
Droplists_GetHandle | 取得某个下拉字典的句柄 | |
Droplists_FindCells | 取得当前工作表中使用了某个下拉字典的所有单元格 | |
Droplists_Delete | 删除某个下拉字典 | |
Droplists_Add | 动态添加下拉字典 | |
Droplist_GetInfo | 取得某个下拉字典的定义信息 | |
显示掩码 | Masks_Get | 取得所有显示掩码的id |
Mask_Get | 取得某个显示掩码的表达式 | |
Mask_Delete | 删除某个显示掩码 | |
Mask_Add | 添加一个显示掩码 | |
Mask_FindCells | 取得当前工作表中使用了某个显示掩码的单元格 | |
工具条和菜单, 事件 | SetToolbarItemImage | 动态更改工具条中某按钮的图标 |
SetToolbarItemTip | 动态更改工具条中某按钮的Tip (鼠标滑过时的文字) | |
GetToolbarItemStatus | 取得工具条中某按钮/菜单项的状态 | |
SetToolbarItemStatus | 动态更改工具条中某按钮/菜单项的状态 | |
AddMenu | 增加自定义的弹出菜单项 | |
AddHotKey | 增设快捷键 | |
EnableEventLock | 针对 ppapi 的事件加锁声明 | |
EventLock | 针对 ppapi 的事件加锁 | |
EventUnLock | 针对 ppapi 的事件解锁 | |
Undo控制 | EnableUndo | 启用或禁用Undo |
IsUndoEnabled | Undo是否启用 | |
EnableRedo | 启用或禁用Redo | |
IsRedoEnabled | Redo是否启用 | |
Undo | 执行一步 Undo 操作 | |
Redo | 执行一步 Redo 操作 | |
SaveUndo | 保存当前状态到 Undo 缓存池 | |
ResetUndo | 清空 Undo 缓存池 | |
UndoAble | 判断 Undo 缓存池是否允许作 Undo 操作 | |
RedoAble | 判断 Undo 缓存池是否允许作 Redo 操作 | |
不太常用 | GetRedrawAble | 是否能够重画 |
SetRedrawAble | 设置让报表能够重画或不能重画 | |
FlashCell | 开启或关闭单元格闪烁 | |
CloseEdit | 强制关闭输入框 | |
GetFont | 取得字体信息 | |
AddFont | 添加字体 | |
DisplayAsPrintSetup | 将报表切换成仅显示打印配置对话框样式 | |
DisplayAsChart | 将报表切换成仅显示统计图 | |
GetCurrentChart | 取得当前统计图(以显示统计图时) | |
GetActiveWindow | 取得当前主区域的窗口句柄 | |
SetExportFilename | 设置转换输出的文件名 | |
SetExportOption | 设置转换输出的一些选项 | |
SetNavigator | 设置超链接的重定位,常用于服务器专版 | |
AnalyzeUserFunction | 分析单元格的自定义函数 | |
EChart_RegisterOption | 注册 EChart Option 模板 | |
EChart_Gen | 根据 Option 模板、和数据, 生成 Html 文件 | |
EChart_SetOption | 更新某个统计图的 Option | |
EChart_SetServer | 设置 EChart 服务器 URL | |
EChart_SetListenFuncname | 设置 EChart 事件监听函数 |
GetFileURL | 取得上次打开(Build)的报表的文件名, 包括URL | ![]() |
参数 | (无) | |
返回值 | 文件名或URL,如果上次是通过一个XML大串Build的,那么返回该串 |
CallFunc | 调用工具条上的功能 | ![]() ![]() |
参数1 | 功能号 | |
参数2 | 取决于功能号 | |
返回值 | 取决于功能号, 通常为: 1 - 成功, 0 - 失败 | |
备注 | 功能号参见"工具条功能号"章节 |
SetSource (用途1) | 设置中心数据源编目的URL | ![]() ![]() |
参数 | 中心数据源编目的URL(相对或绝对) | |
返回值 | (无) | |
备注 | 1.中心数据源的编目URL是一次设置、全局(进程)有效的; 2.建议在第一次打开报表前执行; 3.一旦设置了URL,报表数据源对话框中就不需要用户自己输入URL了: ![]() 4.建议该URL返回的XML/JSON数据支持SoapLike异常包 | |
示例 | AF.func("setSource", "../center/dscenter.aspx"); AF.func("Build", "reports/myreport1.xml"); |
SetSource (用途2) | 设置某临时数据源的URL | ![]() ![]() |
参数1 | 数据源ID | |
参数2 | URL(相对或绝对); 对于XML/JSON数据源,也允许是直接的XML大串 | |
参数3 | 可选,格式为 Para2=[?], 其含义为: Para2 - 可以为data/URL, 表示声明上面的“参数2”是纯数据串还是一个URL,仅用于TXT格式的数据,因为TXT格式的数据有时候很难自动判断到底是数据还是URL。如果不声明,系统优先判断为URL . | |
返回值 | (无) | |
备注 | 1.必须先打开报表,再执行本函数,否则无效,这一点和中心数据源刚好相反; 2.建议该URL返回的XML/JSON数据支持SoapLike异常包 | |
示例 | AF.func("Build", "reports/myreport1.xml"); AF.func("setSource", "ds1 \r\n dscenter/serv1.aspx"); |
SetSource (用途3) | 强制更改某中心数据源的dataURL | ![]() |
参数1 | 数据源ID | |
参数2 | URL(相对或绝对)、或XML/JSON大串 | |
返回值 | (无) | |
示例 | AF.func("setSource", "ds1 \r\n dscenter/serv1.aspx"); |
GetSource | 取得数据源的URL | ![]() |
参数 | 数据源ID | |
返回值 | URL串 | |
备注 |
1.如果报表中只有一个数据源,参数(ID)可以忽略; 2.如果该数据源是中心数据源,那么将返回它的dataURL; | |
示例 | var url = AF.func("GetSource", "ds1"); |
GetSources | 取得所有数据源的ID | ![]() |
参数 | (无) | |
返回值 | 串,多个ID间以回车分隔. 例如串: ds1 ds2 ds3 |
SetParas (语法1) | 设置某数据源的参数的值 | ![]() |
参数1 | 数据源ID | |
参数2 | 参数2、参数3...参数n,根据该数据源具体的定义 | |
返回值 | (无) | |
备注 | 参数的个数和顺序, 必须和数据源中定义好的一致 | |
示例 | AF.func("SetParas", "ds1 \r\n" + var1 +"\r\n"+ var2); |
GetParaNames | 取得某数据源的参数名 | ![]() |
参数 | 数据源ID | |
返回值 | 参数名,若有多个参数,则以回车分隔 |
DeleteDSCol | 删除某临时数据源的某个数据列 | ![]() |
参数1 | 数据源ID 注: 如果是复合XML数据源的子节点,应该命名为诸如 "ds1\node1" 这样的串(注意:在js中,应该写成"ds1\\node1") | |
参数2 | 列名 | |
返回值 | (无) |
NewDS | 新建中心数据源 | ![]() |
参数1 | 数据源ID | |
参数2 | 中心数据源的ID号 | |
返回值 | (无) |
DeleteDS | 删除数据源 | ![]() |
参数 | 数据源ID | |
返回值 | 1 - 成功, 0 - 数据源不存在 |
SynchCenterDS | 强制中心数据源和后端同步,用于清理中心数据源的自定义信息,例如:列是否显示、列显示顺序、排序、超链接等. | ![]() |
参数 | (无) | |
返回值 | (无) |
GetWorkSheetNameOfDs | 取得某数据源能够被用于哪些工作表,用于在数据源对话框中限制了数据源和工作表对应关系的情况 | ![]() |
参数 | (无) | |
返回值 | 工作表名, 若有多个工作表则以逗号分隔 |
GetDsOfWorkSheet | 取得工作表能使用哪些数据源,用于在数据源对话框中限制了数据源和工作表对应关系的情况 | ![]() |
参数 | 可选,工作表名或工作表顺序号,从0开始计数。如果不指定工作表,则默认为当前工作表 | |
返回值 | 数据源的ID, 若有多个数据源则以逗号分隔 |
GetColsOfDS | 取得某数据源对应到表格中的各个列, 即取得 =datarow( ) 函数横向填充的各个列的位置 | ![]() |
参数 | 数据源ID | |
返回值 | 以逗号分隔的各个列的序号 (序号从0开始计数) |
GetDSFillJson | 取得某数据源对应到当前工作表中的行、列位置信息, 即取得 =datarow( ) 函数填充的行列信息 | ![]() |
参数 | 数据源ID | |
备注 | 和函数 GetDSFillInfo 类似, 但返回的是 json 串 | |
返回值 | json串, 例如 例1 、例2 |
GetDSXML | 取得某数据源的XML描述串 | ![]() |
参数 | 数据源ID | |
返回值 | XML串 |
GetUsedDS | 取得工作表的计算公式中使用了哪些数据源 | ![]() |
参数 | 可选,工作表名或工作表顺序号,从0开始计数; all 或 full 表示所有工作表;如果不指定工作表,则默认为当前工作表 | |
参数 | 可选,指定函数名, 如 datarow、data、...等数据源函数, 表示仅返回在这些函数中使用了的数据源。允许是多个不同的函数, 函数名之间以逗号分隔 | |
返回值 | 数据源的ID, 若有多个数据源则以逗号分隔 |
ClearDSCache | 清理中心数据源缓存 | ![]() |
参数 | 可选,逗号分隔的中心数据源的ID,没有参数表示清理全部数据源 |
GetRows | 取得总行数 | ![]() |
参数 | (无) | |
返回值 | 数字 |
GetCols | 取得总列数 | ![]() |
参数 | (无) | |
返回值 | 数字 |
InsertCols (语法1) | 插入列 (语法1) | ![]() |
参数1 | 插入处列号(从0开始计数,-1表示从末尾添加),或列名(如A、B、C..),此列也有“基准列”的意思,新插入列的单元格属性(比如颜色、边界线等等)都是从该列复制过去的 | |
参数2 | 可选, 插入列数,默认1 | |
参数3 | 可选, true/false(或1/0、yes/no),分别表示前插/后插,默认前插 | |
返回值 | 1-成功,空串-失败 |
DeleteRows | 删除行 | ![]() |
参数1 | 开始删除的行号(从0开始计数) | |
参数2 | 行数,-1表示删除后面所有行 | |
返回值 | 1-成功,空串-失败 |
DeleteCols | 删除列 | ![]() |
参数1 | 开始删除的列号(从0开始计数),或列名(如A、B、C..) | |
参数2 | 列数,-1表示删除后面所有列 | |
返回值 | 1-成功,空串-失败 |
IsRowHide | 某行是否被隐藏 | ![]() |
参数 | 行号(从0开始计数) | |
返回值 | 1/0 - 是/否 |
HideRow | 隐藏行 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 可选,数量,默认1 | |
参数3 | 可选,true/false - 隐藏/解除隐藏,默认true | |
返回值 | (无) |
IsColHide | 某列是否被隐藏 | ![]() |
参数 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 1/0 - 是/否 |
HideCol | 隐藏列 | ![]() |
参数1 | 列号(从0开始计数),或列名(如 A、K、AC) | |
参数2 | 可选,数量,默认1 | |
参数3 | 可选,true/false - 隐藏/解除隐藏,默认true | |
返回值 | (无) |
GetRowOffset | 取得某行的偏移量, 偏移量是相对于第一行的顶部,和屏幕无关 | ![]() |
参数 | 行号(从0开始计数) | |
返回值 | 数字,单位:像素数 |
GetColOffset | 取得某列的偏移量, 偏移量是相对于第一列的左侧,和屏幕无关 | ![]() |
参数 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 数字,单位:像素数 |
GetRowHeight | 取得某行高 | ![]() |
参数 | 行号(从0开始计数) | |
返回值 | 数字,单位:像素数 |
SetRowHeight | 设置某行高 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 数字,单位:像素数,范围:0-2000 | |
返回值 | (无) |
GetColWidth | 取得某列宽 | ![]() |
参数 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 数字,单位:像素数 |
SetColWidth | 设置某列宽 | ![]() |
参数1 | 列号(从0开始计数),或列名(如 A、K、AC) | |
参数2 | 数字,单位:像素数,范围:0-2000 | |
返回值 | (无) |
GetRowProp | 取某行的其它属性 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 请参见 SetRowProp 函数 | |
返回值 | 取决于参数2, 请参见 SetRowProp 函数 |
GetColProp | 取某列的属性 | ![]() |
参数1 | 列名或列号 | |
参数2 | 请参见 SetColProp 函数 | |
返回值 | 串 |
GetRowUserProp GetColUserProp | 取得某行/某列的某个自定义属性的值 | ![]() |
参数 | 行号 / 列名或列号 | |
参数 | 属性名 | |
返回值 | 值串, 空串表示该属性不存在 |
GetRowUserProps GetColUserProps | 取得某行/某列的全部自定义属性名 | ![]() |
参数 | 行号 / 列名或列号 | |
返回值 | 以逗号分隔的自定义属性名 |
RemoveRowUserProps RemoveColUserProps | 清理某行/某列的全部自定义属性 | ![]() |
参数 | 行号 / 列名或列号 | |
返回值 | (无) |
SetSeparateView | 设定分屏冻结 | ![]() |
参数1 | 行数 | |
参数2 | 列数 | |
返回值 | (无) | |
示例 | AF.func("SetSeparateView", "4 \r\n 0"); //前4行上下分屏 | |
备注 | 也可以以逗号分隔、合并为一个参数, 比如 AF.func("SetSeparateView", "4,0"); |
GetSeparateView | 取得分屏冻结 | ![]() |
返回值 | 逗号分隔的行、列 |
GetCellName | 根据行列号得到单元名 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数) | |
返回值 | 串 - 单元格名,如"D9"、"AA2 | |
示例 | AF.func("GetCellName", "4 \r\n 0"); 返回 A5 |
GetCellRow | 根据单元名得到行号 | ![]() |
参数 | 单元名, 或单元格范围 | |
返回值 | 行号, 如果参数是单元格范围, 则返回逗号分隔的行号 | |
示例 | AF.func("GetCellRow", "A5"); 返回 "4" AF.func("GetCellRow", "A5:D6"); 返回 "4,5" |
GetCellCol | 根据单元名得到列号 | ![]() |
参数 | 单元名, 或单元格范围 | |
返回值 | 列号, 如果参数是单元格范围, 则返回逗号分隔的列号 | |
示例 | AF.func("GetCellCol", "A5"); 返回 "0" AF.func("GetCellRow", "A5:D6"); 返回 "0,3" |
GetCurrentCell | 取得当前焦点单元格 | ![]() |
参数 | 可选,顺序号(从0开始计数),默认是0. 如果当前焦点是一块区域,可以用顺序号参数逐个取得单元格名,循环顺序是逐行逐列 | |
返回值 | 串,单元格名,如 "D4"、"E4"; 如果当前选中的是内嵌对象(如文本框),则返回它的别名 |
GetCurrentCells | 取得当前焦点单元格 | ![]() |
参数 | (无) | |
返回值 | 串,包含左上、右下的2个单元格名,如 "D4:E5"、"E4:E4", 注:"E4:E4"是一个单元格; 如果当前选中的是内嵌对象(如文本框),则返回以逗号分隔的别名 |
EnsureVisible | 自动滚动到让某单元格可见 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数) | |
返回值 | true/false - 成功/失败 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名 |
GetCellDataEx | 取得某单元的内容或计算结果(Checkbox优先) | ![]() |
参数 | 同 GetCellData | |
返回值 | 串 | |
备注 | 和 GetCellData 函数唯一的差别是:如果单元格是CheckBox,那么返回的是 0 或 1,否则和GetCellData一样 |
SetCellDataEx | 设置某单元内容、或公式(CheckBox优先) | ![]() |
参数 | 同 SetCellData | |
返回值 | (无) | |
备注 | 和 SetCellData 函数唯一的差别是:如果单元格是CheckBox、并且最后一个参数是 1、0或空串,那么就设置这个CheckBox, 而不修改文字. |
SetCellProp(用途1) | 设置某单元格的属性(包括自定义属性) | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 属性名, 和GetCellProp( )同 | |
参数4 | 值串 注1: 透明的背景色请用“T”表示; 注2: 对于自定义属性,空串表示删除该属性. | |
返回值 | (无) | |
备注 | 1.也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名、或文本框的别名;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格); 2.也支持同时处理多个单元格,单元格名以逗号(,)分隔、且支持以冒号(:)分隔2个单元格名的矩形区域,请参见下面的示例; 3.也支持同时处理多个属性,相互之间以分号(;)分隔,格式类似 "prop1=value1; prop2=value2" 这样的,请参见下面的示例 4.如果 js 循环执行多遍时发现性能下降(界面很卡),可以试试 SetRedrawAble 函数; | |
示例 | AF.func("SetCellProp", "C6 \r\n BgColor \r\n T"); AF.func("SetCellProp", "C6 \r\n TextColor \r\n Red"); AF.func("SetCellProp", "C6 \r\n CustormerID \r\n 33801"); //自定义属性 AF.func("SetCellProp", "C6,D7,A3:A10,MyTh \r\n TextColor \r\n Red"); //同时设置多个单元格,注:"MyTh"是某个单元格的别名 AF.func("SetCellProp", "C6 \r\n TextColor=Red; CustomerId=33801"); //同时设置多种属性 AF.func("SetCellProp", "C6,D7,A3:A10,MyTh \r\n TextColor=Red; CustomerId=33801"); //同时设置多个单元格、多种属性 |
GetCellUserProps | 取得某单元格的全部自定义属性名 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 以回车分隔的自定义属性名 | |
备注 | 1.也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名、或文本框的别名、或文本框的ID号;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格); 2.要取得具体属性的值,请用 GetCellProp 函数. |
GetCellFont | 取得单元格的字体信息 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 属性名, 可以为: FontName(或 Name、FaceName)、Height(或size,但含义不一样)、Bold、Italic、Underline、StrikeOut六种 | |
返回值 | 按参数返回内容,参数和返回值对应如下: FontName(或 Name、FaceName) - 返回字体名,例如"Arial" 、 "微软雅黑"; Height (或size) - 返回字体大小, height表示返回logfont的lfHeight, 可能为负数; size表示返回转换后的大小,肯定是正数 Bold - 字体是否加粗, 返回1或0 Italic - 字体是否倾斜, 返回1或0 Underline - 字体是否有下划线, 返回1或0 StrikeOut - 字体是否有删除线, 返回1或0 | |
备注1 | 1.也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名、或文本框的别名、或文本框的ID号;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格); 2.该功能是存取单元格字体的快捷功能,以1.0.90.0版前的版本中,通常需要执行GetCellProp、GetFont多条js才能实现; 3.也适用于有别名的文本框对象 | |
备注2 | 参数1和参数2也可以合并成以冒号(:)分隔的单元格范围,如 A3:D5 , 用于一次性返回多个单元格的内容,返回的内容串中,行之间以回车符(\r\n)分隔、列之间以制表符(\t)分隔 | |
示例 | var h = AF.func("getCellFont", "C6 \r\n size"); var h = AF.func("getCellFont", "D3:E6 \r\n size"); |
SetCellFont | 设置单元格的字体信息 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 属性名, 可以为: FontName(或 Name、FaceName)、Height(或size)、Bold、Italic、Underline、StrikeOut六种 | |
返回值 | 1/0 - 成功/失败 | |
备注 | 1.请参见上面的 GetCellFont 函数, 但参数 Height/Size 是无差别的,系统能自动判断高度是正数还是负数; 2.该功能是存取单元格字体的快捷功能,以1.0.90.0版前的版本中,通常需要执行SetCellProp、SetFont多条js才能实现; 3.也适用于有别名的文本框对象; 4.如果 js 循环执行多遍时发现性能下降(界面很卡),可以试试 SetRedrawAble 函数; | |
示例 | AF.func("setCellFont", "C6 \r\n size \r\n 26"); |
FindCell | 根据表达式查找单元格 | ![]() |
参数 | 为标准的表达式串,表达式中可以包含如下变量: data - 表示输入的内容或计算结果 text - 单元格上实际显示的文字 formula - 输入的公式 alias - 别名 isProtected - 是否保护 textColor - 文字颜色 backColor 或 bgColor - 背景色, 'T'表示无背景色(即透明) droplistId - 下拉输入的字典Id droplistName - 下拉输入的字典名 isAbsRef - 公式中的单元格名是否绝对引用 checkboxGroup - 某个分组的多选一的 checkbox 其它变量名 - 表示自定义属性. | |
返回值 | 以逗号分隔的单元名,如"D3"、"K2,K4" | |
示例 | AF.func("FindCell", "left(formula,1)='='"); //取得所有输入了公式的单元格 AF.func("FindCell", "left(alias, 3)='mpc')); //取得别名以“mpc”开头的单元格 AF.func("FindCell", "isProtected=1 && price=33"); //自定义属性"price"为33、同时被设置了保护的单元格 AF.func("FindCell", "textColor='#ff0000' || bgColor=='T'"); //注:颜色常量, 必须按照例子中的写法,如'#FF0000'、'T'(表示透明背景),不得使用 red、blue这些 AF.func("FindCell", "droplistName='省份'"); //用到'省份'字典的单元格 AF.func("FindCell", "checkboxGroup='grp1' and data=1"); //取得多选一的 checkbox 组中被选中的单元格 |
CloneArea | 克隆某个区域到一个新的区域 | ![]() |
参数1 | 左上单元格行号(从0开始计数) | |
参数2 | 左上单元格列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 右下单元格行号(从0开始计数) | |
参数4 | 右下列号(从0开始计数),或列名(如 A、K、AC) | |
参数5 | 格式为 : row=[?];col=[?], row、col至少要定义一个,含义为: row - 克隆到从该行开始的新区域,如果行不够,则自动向下扩展; col - 克隆到从该列开始的新区域,如果列不够,则自动向右扩展; | |
返回值 | 新区域的左上角、右下角单元格名,以冒号(:)分隔。如果是空串,则表示失败,失败原因通常是参数有错误、区域有交集 | |
备注 | 1.也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名; 2.新、原区域不得有交集; | |
示例 | 如下函数是同一个意思: AF.func("CloneArea", "C6:F7 \r\n row=30"); AF.func("CloneArea", "C6 \r\n F7 \r\n row=30"); AF.func("CloneArea", "5 \r\n 2 \r\n 6 \r\n 5 \r\n row=30"); |
GetCellStatus | 取得某单元格的状态 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | A - 普通单元格; H - 被合并; M - 被合并,但位于合并区的左上角,是有效的主单元格; 空串 - 该单元格不存在 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) |
GetMainCell | 取得某单元格所在的合并区域中的主单元格(即左上角单元格) | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 单元格名。如果本单元格没有被合并,则返回本单元格名 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) |
GetMergedCells | 取得某单元格所在的合并区域 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 以“:”分隔的左上角和右下角的单元名。如果本单元格没有被合并,则返回本单元格名 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) |
Merge | 合并单元格 | ![]() |
参数1 | 左上单元格行号(从0开始计数) | |
参数2 | 左上单元格列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 右下单元格行号(从0开始计数) | |
参数4 | 右下列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | (无) | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) | |
示例 | 如下函数是同一个意思: AF.func("Merge", "C6:F7"); AF.func("Merge", "C6 \r\n F7"); AF.func("Merge", "5 \r\n 2 \r\n 6 \r\n 5"); |
DeMerge(用法1) | 解除指定区域的合并 | ![]() |
参数1 | 左上单元格行号(从0开始计数) | |
参数2 | 左上单元格列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 右下单元格行号(从0开始计数) | |
参数4 | 右下列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | (无) | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) | |
示例 | 如下函数是同一个意思: AF.func("deMerge", "C6:F7"); AF.func("deMerge", "C6 \r\n F7"); AF.func("deMerge", "5 \r\n 2 \r\n 6 \r\n 5"); |
DeMerge(用法2) | 解除某个单元格所在区域的合并 | ![]() |
参数1 | 单元格行号(从0开始计数) | |
参数2 | 单元格列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | (无) | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名; 也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) | |
示例 | AF.func("deMerge", "C6"); |
MergeSame(用途1) | 合并某行给定范围内相同内容的单元格 | ![]() |
参数 | 格式为:row=[?];col1=[?];col2=[?];isIgnoreNull=[?],含义为: row - 某行的行号 col1 - 开始列号或类似A,B,C的列名,默认是0 col2 - 结束列号或类似A,B,C的列名,默认是次末列 isIgnoreNull - 内容为空是否就不合并了,true/false,默认是true isDemergeFirst - 合并前是否先解除覆盖了该范围的以前的合并,true/false,默认是true isKeepMergeAsPossible - 如果新的合并区横贯了以前的合并区,是否把以前的合并区拆分为二段,true/false,默认是false, 只有在isDemergeFirst=false时才能生效 | |
返回值 | (无) |
MergeSame(用途2) | 合并某列给定范围内相同内容的单元格 | ![]() |
参数 | 格式为:col=[?];row1=[?];row2=[?];isIgnoreNull=[?];isDemergeFirst=[?],含义为: col - 列号或类似A,B,C的列名 row1 - 开始行的行号,默认是0; 也可以是串“ds”, 表示仅合并数据源的填入行 row2 - 结束行的行号,默认是次末行; 也可以是串“ds”, 表示仅合并数据源的填入行 isIgnoreNull - 内容为空是否就不合并了,true/false,默认是true isDemergeFirst - 合并前是否先解除覆盖了该范围的以前的合并,true/false,默认是true isKeepMergeAsPossible - 如果新的合并区横贯了以前的合并区,是否把以前的合并区拆分为二段,true/false,默认是false, 只有在isDemergeFirst=false时才能生效 | |
返回值 | (无) |
MergeSame(用途3) | 多个列按大类、小类方式, 跨行合并相同内容的单元格 | ![]() |
参数 | 格式为:col=[?];row1=[?];row2=[?];isIgnoreNull=[?];isDemergeFirst=[?],含义为: col - 多个列的列号或类似A,B,C的列名, 相互以逗号分隔 row1 - 开始行的行号,默认是0; 也可以是串“ds”, 表示仅合并数据源的填入行 row2 - 结束行的行号,默认是次末行; 也可以是串“ds”, 表示仅合并数据源的填入行 isIgnoreNull - 内容为空是否就不合并了,true/false,默认是true isDemergeFirst - 合并前是否先解除覆盖了该范围的以前的合并,true/false,默认是true isKeepMergeAsPossible - 如果新的合并区横贯了以前的合并区,是否把以前的合并区拆分为二段,true/false,默认是false, 只有在isDemergeFirst=false时才能生效 | |
返回值 | (无) | |
示例 | AF.func("MergeSame", "col = A,C,D; row1=ds; row2=ds"); |
SplitCol | 将某列分拆成多列,并自动合并同类项,分拆、合并的算法和树列表的 VColSep 算法完全一致 | ![]() |
参数 | 格式为:col=[?];row1=[?];row2=[?];VColSep=[?],含义为: col - 列号或类似A,B,C的列名 row1 - 开始行的行号,默认是0 row2 - 结束行的行号,默认是次末行 VColSep - 分隔符,含义和树列表的 VColSep 一致 | |
返回值 | (无) |
GetValidCells | 取得某个区域内有效的单元格, 所谓“有效”是指不包括被合并的单元格 | ![]() |
参数1 | 左上单元格行号(从0开始计数) | |
参数2 | 左上单元格列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 右下单元格行号(从0开始计数) | |
参数4 | 右下列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 以逗号分隔的单元格名 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名; | |
示例 | 如下函数是同一个意思: var s = AF.func("GetValidCells", "C6:F7"); var s = AF.func("GetValidCells", "C6 \r\n F7"); var s = AF.func("GetValidCells", "5 \r\n 2 \r\n 6 \r\n 5"); |
GetGraphics | 取得所有内嵌对象的别名 或 ID号 | ![]() |
参数1 | 可选,类型筛选,可以是如下类型的组合(逗号分隔):Chart、ECharts、Line、TextBox、Picture、Treelist, 分别表示统计图、百度ECharts统计图、线条、文本框、图片、树列表 | |
参数2 | 可选,格式为 range=[?];return=[?], 含义和可用值说明如下: range - 工作表范围,可用值为: full 或 all - 表示全部工作表,默认; current - 仅当前工作表; 工作表序号(从0开始计数) 或 工作表名 - 指定某工作表,也允许以逗号分隔多个工作表; return - 返回内容,可用值为: alias - 返回别名, 默认, 注:没有别名的对象会被忽略(不在返回串中). id - 返回 ID 号,ID号是井号(#)开头的一个数字, 数字的生成规则是 (工作表顺序号 + 1) * 1000 + 对象顺序号. | |
返回值 | 以逗号分隔的别名或ID号的串 |
GetCellProp(用途2) | 取得某内嵌对象的属性 | ![]() |
参数1 | 内嵌对象的别名 或 ID 号,ID号是井号(#)开头的一个数字, 数字的生成规则是 (工作表顺序号 + 1) * 1000 + 对象顺序号 | |
参数2 | 属性名,不同的内嵌对象类型是有差别的,请参考XML文件,内嵌对象的属性有: 公共属性: type - 内嵌对象类型,返回值为Chart、Line、Textbox、Picture; isPrint - 打印 isProtected - 保护 rect - 矩形区的坐标 isLocked - 锁定行列位置 unDragAbleAtRuntime - 运行时不可拖拽 isPrintEveryPage - 是否每页都需要打印 PrintLocation - 每页都需要打印时的打印位置(相对于打印纸的右下角百分比) 文本框的属性: text - 文字或计算结果 formula - 计算公式 fontIndex - 字体索引 bgColor - 背景色 textColor - 文字色 align/valign - 文字对齐 dataType - 数据类型 isRound - 四舍五入 decimal - 小数位数 isThousandSeparat - 千位符 maskid - 显示掩码 rect - 矩形坐标 charSpace - 字间距 lineDistance - 行间距 isUnderLine - 边框仅画底边 borderThick - 边框粗 borderColor - 边框色 borderStyle - 边框风格 RoundX/RoundY - 圆角直径 isNoZoom - 尺寸和打印比例无关 ImageArrange - 以图片显示时的缩放模式 rightButton - 文本框右侧的图标的URL, 当鼠标划过时会显示, 鼠标点击时将触发Clicked事件 图片的属性: isTransparent - 是否透明 blobid/picture - 图片 rect - 矩形坐标 borderThick - 边框粗 borderColor - 边框色 borderStyle - 边框风格 RoundX/RoundY - 圆角直径 align/valign - 图片对齐 isNoZoom - 尺寸和打印比例无关 统计图的属性: ChartType、items、textContent...等近20项,请参考统计图组件的创建参数. 自定义属性: 不在上述范围内的属性就都算是自定义属性. | |
返回值 | 内容串 | |
备注 | 上述矩形坐标 rect 的格式为逗号分隔的4个值: x1,y1,x2,y2 |
SetCellProp(用途2) | 设置某内嵌对象的属性 | ![]() |
参数1 | 内嵌对象的别名或 ID 号, 如果所有对象一次性全部设置, 则可以用星号(*)表示 | |
参数2 | 属性名, 同上面的GetCellProp( )函数的属性 | |
参数3 | 值串 | |
返回值 | (无) | |
备注 | 请参见单元格的同名函数 SetCellProp(用途1) 示例 |
DeleteGraphics | 删除某些内嵌对象 | ![]() |
参数 | 别名或ID号,如果要同时删除多个,请用逗号分隔. ID号是井号(#)开头的一个数字, 数字的生成规则是 (工作表顺序号 + 1) * 1000 + 对象顺序号 | |
返回值 | (无) | |
备注 | 动态插入新的内嵌对象请用CallFunc函数 |
Chart_Refresh | 刷新统计图显示 | ![]() |
参数 | 别名或ID号,如果要同时刷新多个,请用逗号分隔; 空串或星号(*)表示刷新所有统计图 ID号是井号(#)开头的一个数字, 数字的生成规则是 (工作表顺序号 + 1) * 1000 + 对象顺序号 | |
返回值 | (无) |
GetWorksheets | 取得工作表的个数 | ![]() |
参数 | (无) | |
返回值 | 数字 |
GetCurrentWorksheet | 取得当前工作表序号 | ![]() |
参数 | (无) | |
返回值 | 序号(从0开始计数) |
SetCurrentWorksheet | 切换当前工作表 | ![]() |
参数 | 序号(从0开始计数),或工作表名称 | |
返回值 | 1/0 - 成功/失败 |
GetWorksheetName | 取得工作表的名称 | ![]() |
参数 | 序号(从0开始计数) | |
返回值 | 字符串 |
SetWorksheetName | 修改工作表的名称 | ![]() |
参数1 | 序号(从0开始计数),或工作表名称 | |
参数2 | 新的名称 | |
返回值 | 1/0 - 成功/失败 |
DeleteWorksheet | 删除工作表 | ![]() |
参数 | 序号(从0开始计数),或工作表名称 | |
返回值 | 1/0 - 成功/失败 |
AppendWorksheet | 添加工作表:从外部报表导入 | ![]() |
参数1 | 报表的URL (也支持是 Excel 文件)、或者是报表的XML大串 | |
参数2 | 可选,格式为 isOpenDialog=[?];isWithDS=[?];sheetNum=[?];sheetName=[?];isWithFormula=[?], 其含义如下: isWithDS - 是否连数据源一起导入, 默认是 true; isOpenDialog - 如果外部报表有多个工作表,是否打开对话框选择, 默认是 false; sheetNum - 逗号分隔的工作表序号, 例如 "0,3,5" 表示导入顺序号为0、3、4的工作表; sheetName - 逗号分隔的工作表名, 例如 "利润表, 资产负债表"; isWithFormula - 是否导入计算公式, 仅用于导入 xlsx 或 xls 时, 默认是true; 备注:sheetNum 和 sheetName 只能选其一, 不能同时生效; 如果不指定 sheetNum 和 sheetName, 也不打开对话框, 那么将导入全部工作表. | |
返回值 | 1/0 - 成功/失败 | |
示例 | AF.func("appendWorksheet", "../model1.xml \r\n isOpenDialog=true"); AF.func("appendWorksheet", "../model1.xlsx \r\n sheetname=工作簿3, 工作簿22; isWithFormula=false"); |
AddWorksheet | 添加工作表:新建空的工作表 | ![]() |
参数 | 格式为:name=[?]; rows=[?];cols=[?]; rowheight=[?]; colwidth=[?], 含义如下: name - 工作表名; rows/cols - 总行数/列数,默认是100/20; rowheight/colwidth - 行高/列宽, 默认是24/140 | |
返回值 | 1/0 - 成功/失败 | |
示例 | AF.func("addWorksheet", "name=薪资;rows=5;cols=10"); |
ExchangeWorkSheet | 工作表交换位置 | ![]() |
参数1 | 工作表1的序号(从0开始计数),或工作表名称 | |
参数2 | 工作表2的序号(从0开始计数),或工作表名称, 如果为 -1, 表示将工作表1移到最末尾 | |
返回值 | 1/0 - 成功/失败 | |
示例 | AF.func("ExchangeWorksheet", "1 \r\n 3"); |
GetWorksheetNameOfDS | 取得某数据源指定用于某些工作表的名称 | ![]() |
参数 | 数据源ID | |
返回值 | 逗号分隔的工作表名 | |
备注 | 指定数据源用于某些工作表的功能,在数据源首个对话框中 |
HideWorkSheet | 工作表解除隐藏(即恢复显示) | ![]() |
参数 | 可选, 无参数表示隐藏当前工作表, 如果有参数, 参数为逗号分隔的工作表名/工作表序号串, 或者格式为 sheetName=[?];sheetNum=[?], 含义如下: sheetName - 工作表名, 如果要一次性隐藏多个工作表, 工作表名之间以逗号分隔 sheetNum - 工作表序号(从0开始计数), 如果要一次性隐藏多个工作表, 序号之间以逗号分隔 | |
返回值 | 1/0 - 成功失败 | |
备注 | 隐藏标记是保存在报表的XML中的 | |
示例 | AF.func("HideWorkSheet", "0,3"); |
UnhideWorkSheet | 工作表解除隐藏(即恢复显示) | ![]() |
参数 | 工作表名, 如果要一次性恢复多个工作表, 请以逗号分隔各个工作表名; 空串表示恢复全部工作表 | |
参数 | 可选, 格式为 locate = [?];InsertBefore=[?];InsertAfter=[?], 含义如下: locate - 恢复后将当前工作表切换到哪里, 可以是如下几种, 默认是 current: current - 保持不变; first - 切换到第一个被恢复的工作表; 工作表名 - 切换到某个表名的工作表; InsertBefore / InsertAfter - 恢复后的工作表插入到哪个工作表的前面/后面 (注InsertBefore、InsertAfter只能二选一): 工作表名或工作表的顺序号 - 位于此工作表的前面/后面; | |
返回值 | 1/0 - 成功失败 | |
示例 | AF.func("UnhideWorkSheet", "\r\n locate=first"); |
GetHideWorkSheet | 取得所有隐藏的工作表的表名 | ![]() |
返回值 | 逗号分隔的隐藏工作表的表名 | |
备注 | 隐藏标记是保存在报表的XML中的 |
SetProp(用途1) | 设置工作表的某些属性 | ![]() |
参数 | 格式为 "item1=value1;item2=value2;..." 的属性串,属性含义及可用值如下: 注:“ 此外,也可以通过本函数更改某些独立于当前工作表(即对所有工作表都生效)的属性: 上述有些属性是“创建参数”. | |
返回值 | (无) | |
示例 |
//如下示例动态创建水印: AF.func("callfunc", "112\r\n alias=abc;x=100;y=100;width=400;height=100;text=我的水印"); //动态创建文本框 var s = AF.func("addFont", "{'faceName':'宋体', 'height':'-32', 'weight':'400'}"); //动态添加字体 AF.func("SetCellProp", "abc\r\n valign=center;textColor=#aaaaaa; BorderThick=0; fontIndex=" + s); //赋予文本框字体、颜色、边框线 AF.func("SetProp", "backImage=convert(abc); rotate=34; isWaterMark=true"); //将文本框作为水印 AF.func("DeleteGraphics", "abc"); //删除 abc |
GetProp(用途1) | 取得工作表的某些属性 | ![]() |
参数 | 属性名,参见函数SetProp( ). 此外,参数 Crosstab 表示取得交叉表的XML串. | |
返回值 | 属性的值 |
GetProp(用途2) | 取得工作表的交叉表、分类汇总配置XML | ![]() |
参数 | 固定的串,为 crosstab 或 summary, 分别表示交叉表、分类汇总表 | |
返回值 | XML串 | |
备注 | XML串较复杂,需要您对报表的XML文件中的 Crosstabs、Summaries 节点进行分析 |
SetProp(用途2) | 设置工作表的交叉表、分类汇总配置XML | ![]() |
参数1 | 固定的串,为 crosstab 或 summary, 分别表示交叉表、分类汇总表 | |
参数2 | XML串 | |
返回值 | (无) | |
备注 | XML串较复杂,需要您对报表的XML文件中的 Crosstabs、Summaries 节点进行分析 |
GetMemo | 取得某自由存储区的存储串 | ![]() |
参数1 | 工作表顺序号(从0开始计数),如果为空串,则表示是和工作表无关的的独立存储区 | |
参数2 | 存储区的ID,为任意串,但不得含逗号 | |
返回值 | 串 | |
备注 | 自由存储区的内容是保存在报表的XML中的 |
SetMemo | 设置某自由存储区的存储串 | ![]() |
参数1 | 工作表顺序号(从0开始计数),如果为空串,则表示是和工作表无关的的独立存储区 | |
参数2 | 存储区的ID,为任意串,但不得含逗号 | |
参数3 | 要储存的任意串,空串表示删除该存储区 | |
返回值 | (无) | |
备注 | 1.自由存储区的内容是保存在报表的XML中的; 2.书写 js 时请注意: 不要在参数2和参数3之间留有多余空格,否则空格也会保存到XML中去的 |
GetMemos | 取得自由存储区的所有ID | ![]() |
参数 | 工作表顺序号(从0开始计数),如果为空串,则表示是和工作表无关的的独立存储区 | |
返回值 | 逗号分隔的存储区ID号 | |
备注 | 自由存储区的内容是保存在报表的XML中的 |
打印 | ![]() | |
参数 | 可选,格式为 isOpenSysDialog=[?]; WorkSheet=[?], 其含义和用法如下: isOpenSysDialog - true/false - 是否弹出操作系统的打印对话框, 默认是true。如果报表绑定了打印机(即打印配置对话框中的 “认定使用这台打印机” 选项被勾上), 本参数无效, 即不会弹出操作系统对话框的; WorkSheet - 工作表, 可以是如下几种: OpenDialog - 弹出对话框选择打印(如果多个工作表); All - 打印全部工作表; Default - 打印在 “属性” 对话框中勾选了 “默认打印本工作表” 的所有工作表; Current - 打印当前工作表; 以逗号分隔的工作表名或工作表顺序号 - 打印指定的工作表; 关于 WorkSheet 的默认值,如果是 Firefox 浏览器,默认值是 "All"; 否则普通报表是 "OpenDialog"、设成无缝打印的报表是"All": | |
返回值 | 1/0 - 成功/失败 | |
备注 |
1.如果当前是在批打印中 (即在 BeginBatchPrint( ) 的循环中), 上述参数无效; 2.如果当前是在函数 OpenPrintDialog 触发的事件中, 上述参数无效; 3.Firefox 浏览器的 WorkSheet 不能是 OpenDialog, 否则会因为对话框阻塞主线程而卡死,但 Firefox 对 isOpenSysDoalog 的操作系统对话框并无影响; | |
示例 | AF.func("Print", "isOpenSysDialog=false; WorkSheet=all"); AF.func("Print", "WorkSheet=汇总表, 资金表"); |
BeginBatchPrint(用途1) | 开始批打印 | ![]() |
参数 | 可选,格式为 StartPageNum=[?]; isMultiPrintTask=[?]; isShareBlankPart=[?]; isPreview=[?]; isOpenSysDialog=[?], 其含义如下: StartPageNum 或 StartPageNumber- 批中起始页码(任务中的总页码), 默认是1; isShareBlankPart - 如果是名片式打印(即每张纸能均分成多块的打印),是否共享前一张纸的空白部分,以节省打印纸,默认是false; isPreview - 是否用于预览,默认是false。如果 isPreview=false, 则还可以有如下2个选项; isMultiPrintTask - 是否按奇偶页拆分成2个打印任务打印, 默认是false; isOpenSysDialog - 打印前是否弹出操作系统的打印对话框, 默认是true; | |
返回值 | (无) | |
备注 | 1.批打印常用于同一个模板、多批数据的集中打印; 2.在批中也允许多个模板的打印(通过 Build 切换模板),但请尽量使用相同的打印配置参数,否则有可能会导致失败; 3.从调用该函数开始,后面调用Print( )函数打印的都归并在单个任务中,直至调用EndBatchPrint( )才将这个任务送往打印机,所以打印速度较快; 4.如果分奇偶页打印,打印任务自动分拆成2个:奇页任务和偶页任务,调用EndBatchPrint( )后,将先打印奇页,软件会弹出对话框“正在打印奇数页,按'是'将开始打印偶数页...”,待用户换好纸张即打印偶页; 5.如果您希望在报表中能打印出在批中的页码,请在报表的表达式中使用 pageBatch( )计算函数; | |
示例 | AF.func("Build", "reports/aax.xml"); //打开模板 AF.func("BeginBatchPrint", "isShareBlankPart=true"); //开始批打印 for( ... ) { //通常是循环 AF.func("SetSource", "ds1 \r\n abc.aspx?mon=" + mon); //设置查询取数条件 AF.func("Calc", ""); //填充数据 AF.func("Print", ""); //在批中,该函数并没有实际的打印动作,并且也不需要参数,但该步骤必不可少 } AF.func("EndBatchPrint", ""); //终止批打印:把打印任务送往打印机,此时才真正打印 |
BeginBatchPrint(用途2) | 开始批导出 | ![]() |
参数 | 为固定的串 "isPDF=true" | |
返回值 | 1/0 - 成功/失败 | |
备注 | 1.本函数能把所有导出的 pdf 统统都写入到单个 pdf 文件中; 2.与本函数用途1不同的是,除了能用于同一个模板、多批数据、也能同时用于不同模板、多批数据; 3.由于支持不同的打印模板混合,所以对打印配置参数无特殊要求,不同的打印纸方向、甚至指定不同尺寸的打印纸都是可以的; 4.从调用该函数开始,后面调用Print( )函数都导出pdf, 直至调用EndBatchPrint( )才返回这个 pdf 文件全名. 5.用法请借鉴用途1. |
EndBatchPrint | 结束批打印、批导出 | ![]() |
参数 | (无) | |
返回值 | 如果是在批打印中,返回 1 表示成功,空串表示失败;如果是在批导出中,返回 pdf 的全文件名,空串表示失败 | |
备注 | 如果是在批打印中,是将打印任务发送给打印机;如果是在批导出中,则关闭已完成的 pdf. |
GetProp(用途3) | 取得工作表的打印配置属性 | ![]() |
参数 | 固定的串,为 Print 或 Printer | |
返回值 | XML串 | |
备注 | 1.打印属性比较复杂,需要您对报表的XML文件中的 PrintPage 节点进行分析; 2.返回的XML串内容不多,因为默认的设置就不出现在XML中了; 3.PaperNumber是打印纸号,请参考本文档“附录4.打印纸对照表” |
SetProp(用途3) | 设置工作表的打印配置属性 | ![]() |
参数1 | 固定的串,为 Print 或 Printer | |
参数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); //销毁对象 |
GetPrintProp | 取得工作表的某些常用的打印配置属性 | ![]() |
参数 | 属性名, 可用的属性及返回值列举如下: Printer - 打印机名; PaperNumber - 打印纸号, 纸号请参考本文档“附录4.打印纸对照表”; Oriantation - 纸的方向, 返回值 Portrait/Landscape 分别表示垂直/横向走纸; Scale - 打印的缩放比例, 10到400之间的纯数字; AutoScale - 自动缩放, 空串(或false)/NoEnlarge/AutoFit 分别表示不自动缩放/自动缩小但不放大/自动缩放使打印纸满幅显示; Copies - 打印份数, 大于0的纯数字; Margin - 纸的边距, 逗号分隔的左上右下, 单位为毫米; Duplex - 支持双面打印的打印机, 双面打印模式, 空串(或false)/Simplex/Vertical/Horizontal 分别表示 仍然以单面打印/简单的双面打印/用于垂直翻页的双面打印/用于横向翻页的双面打印; isPrintBothSide - 打印奇偶页时是否交换左右边距, true/false; PrintColor - 彩色打印方式, Device/BW 分别表示采用打印设备所具备的色彩能力打印/强制黑白打印; | |
返回值 | 属性的值 | |
备注 | 本函数是出于使用方便的目的,列举了最常用的属性项,其它属性还是要通过 GetProp(用途3) 去获取的 |
SetPrintProp | 设置工作表的某些常用的打印配置属性 | ![]() |
参数 | 分号分隔的名-值对, 可用属性名请看前面的 GetPrintProp 函数。 例如: Printer=HP JetColor; paperNumber=9; Oriantation=landscape | |
返回值 | (无) | |
备注 | 本函数是出于使用方便的目的,列举了最常用的属性项,其它属性还是要通过 SetProp(用途3) 去更改的 |
GetPrintPages | 取得打印的总页数 | ![]() |
参数 | (无) | |
返回值 | 数字 | |
备注 | 预估当前工作表如果需要打印,需要多少页纸 |
SetPrintPage | 指定下次打印时,具体打印哪些页 | ![]() |
参数 | 逗号分隔的页号, 页号从1开始计数,也可以以减号(-)分隔起止页 | |
返回值 | (无) | |
备注 | 该设置是一次性的,打印完就会自动清除 | |
示例 | AF.func("SetPrintPage", "5,9,24-26"); |
SetPrintAbreast | 设置并肩打印, 即2个工作表打印在一张纸上,横向共享打印纸 | ![]() |
参数 | 逗号分隔的工作表名(或工作表顺序号) | |
返回值 | (无) | |
备注 | 打印的左右间距, 采用的是第二个工作表的左边距 | |
示例 | AF.func("SetPrintAbreast", "0,1"); //第一、二个工作表从左到右共享打印纸 |
SetItemLibraryURL | 设定指标库的URL,用于上报模式的设计时(运行时通常不需要执行) | ![]() ![]() |
参数 | URL, 或XML串,其格式请参见Report文档 | |
返回值 | (无) |
SetItemAttr | 动态修改指标的属性的值 | ![]() |
参数1 | 诸如 "attr1=value1; attr2=value2; attr3=value3"这样的名-值对. | |
参数2 | 可选,别名(即指标名),表示范围仅限于该类指标; 如果为空,表示对所有单元格、凡是含这些属性的值统一设置. | |
返回值 | 被修改的单元格个数 |
GetUploadXML | 用于报表的汇总上报模式(WorkMode=UploadRuntime),取得当前填入内容的XML串 | ![]() ![]() |
参数 | 可选,格式为 isCurrent=[?];isIncludeCellName=[?];isIncludeDispText=[?];includeAlias=[?];excludeAlias=[?], 含义如下: isCurrent - 当报表有多个TabOrder方案时,是否仅上报当前方案, 默认true isIncludeCellName - 生成的数据中是否包含单元格名, 默认true isIncludeDispText - 生成的数据中是否包含 DispText 属性内容, 默认true (属性 "DispText" 请参见 GetCellProp 函数); isIncludeHRef - 生成的数据中是否包含单元格的 HRef 属性内容, 即超链接内容, 默认true; isIncludeCheckboxText - 单元格如果是 Checkbox,是否连同右侧的文字也一起提交, 如果一起提交,那么该指标的内容将以 "|" 分隔 checkbox 的值和右侧的文字,例如 "1|男",左边肯定是 0 或 1。本选项默认false; includeAlias - 仅上报某些别名(即指标),多个别名之间以逗号分隔, 也允许到星号(*)通配符; excludeAlias - 排除上报某些别名(即指标),多个别名之间以逗号分隔, 也允许到星号(*)通配符; isChangedOnly - 仅上报被改动过的单元格的内容, 确切地说, 是指上次调用 ResetChanged 函数到现在, 期间有改动的单元格; format - 返回的XML串的格式, normal - 普通的XML格式(默认), simpleXML - 最简单、无属性的XML格式(不支持内嵌表格); | |
返回值 | XML串, 如果返回 "0",表示报表中的内嵌Treelist对象未通过验证 | |
备注 | 1.仅用于创建参数为WorkMode=UploadRuntime时; 2.参数 includeAlias 和 excludeAlias 不能同时使用 | |
示例 | AF.func("getUploadXML", "includeAlias=MPS1, MPS2, KKS*, KKD*; isIncludeCellName=false"); |
SetUploadXML | 加载已上报的数据,用于报表的显示 | ![]() |
参数1 | URL, 或XML串,其格式须和GetUploadXML( )返回的XML一致 (但不需要 Cell="?" 内容) | |
参数2 | 可选,格式为 autoCalc=[?];format=[?], 含义如下: autoCalc - 执行完加载后是否立即自动执行一遍计算, 可以为 asynch/synch/none, 分别表示 异步计算/同步计算/不需要计算, 默认是asynch; format - 加载的数据格式, 须和 GetUploadXML 的同名参数一致 | |
返回值 | (无) | |
示例 | AF.func("setUploadXML", "../getxml.do?id=332 \r\n autoCalc=none"); |
GetUploadIndex | 取得当前采用了多个TabOrder方案中的哪一个,用于上报运行时 | ![]() |
参数 | (无) | |
返回值 | 顺序号,从0开始计数 |
SetUploadIndex | 指定采用多个TabOrder方案中的某一个,用于上报运行时 | ![]() |
参数 | 顺序号,从0开始计数 | |
返回值 | (无) |
GetUploadNames | 取得所有TabOrder方案的名称 | ![]() |
参数 | (无) | |
返回值 | 以回车分隔的串。如果只有单个方案,返回串有可能是空串 |
GetUploadCells | 取得有TabOrder的单元名 | ![]() |
参数 | 可选,方案的顺序号, 空串或-1表示当前方案,默认是空串 | |
返回值 | 以逗号分隔的单元名(如果有文本框,则为文本框的别名)串 |
SelectCell(用途2) | 用于上报运行时,直接打开第一个可输入的单元格的输入框 | ![]() ![]() |
参数 | (无) | |
返回值 | (无) |
RebuildTabOrder | 重新整理、刷新所有 Taborder | ![]() |
参数 | (无) | |
返回值 | (无) | |
备注 | 通常用于个别单元格的 TabOrder 被外部函数更改过以后 |
ResetChanged | 合并修改内容,为以后调用 GetChangedCells( ) 作准备. | ![]() |
参数 | 可选,格式为 range=[?], 其含义为: range - 工作表范围,值可以为: full 或 all - 表示全部工作表,默认; current - 仅当前工作表; 工作表序号(从0开始计数) 或 工作表名 - 指定某工作表,也允许以逗号分隔多个工作表 | |
返回值 | (无) |
GetChangedCells | 取得所有被修改过的单元格. | ![]() |
参数 | (无) | |
返回值 | 以逗号分隔的单元名 | |
备注 | 必须在之前执行过 ResetChanged( ) 函数才能生效. |
CollectXML | 获取某些单元格的公式、内容 | ![]() |
参数 | 需要获取的单元格的条件,条件为范围、背景色或别名,格式为 Range=[?];BackColor=[?];alias=[?], 解释如下: Range - 单元格范围, 比如 "A1:D4", 默认是整个工作表; BackColor - 背景色, 比如 "#00ff00", 如果不指定,表示不作为条件; alias - 别名, 允许包含星号(*), 其含义是通配符. 注: BackColor 和 alias 是 “或” 的关系; 而 Range 和它们是 “与” 的关系. | |
返回值 | XML串 | |
示例 | //取得所有单元格中, 红色背景色的单元格数据 AF.func("CollectXML", "BackColor=red"); //取得 D3:Z111 范围内, 红色背景色的单元格数据 AF.func("CollectXML", "Range=D3:Z111; BackColor=red"); //取得 D3:Z111 范围内,所有单元格的数据 AF.func("CollectXML", "Range=D3:Z111"); |
GetChangedXML | 取得数据源填充区内容的XML串 | ![]() |
参数 | 可选, 可以有如下的选项,相互以分号分隔: ds - 数据源ID, 表示取得该数据源的 "=datarow( )" 函数所在单元格的数据源填充区内容; cell - 单元格的别名,表示该单元格肯定包含 "=datarow( )" 的函数,并取得数据源填充区内容; 备注:ds 和 cell 不能同时使用,否则优先采用 ds. DateFormat - 日期的格式,默认是'%Y.%m.%d',可参见公共内容中now( )函数的参数; DateTimeFormat - 日期时间的格式,默认是'%Y.%m.%d %H:%M:%S',可参见公共内容中now( )函数;的参数 includeCol / excludeCol - 仅包含某些列/不包含某些列,二者可选其一,表示列的范围. 列名之间以逗号分隔。默认是空串,表示提交所有列; 备注:这个“列名”是指数据源中的列名. 自定义属性 - 任意属性串,将附加到XML根节点处 | |
返回值 | XML大串 - 成功; 空串 - 未发现数据源; | |
备注 |
1.通常需要在 WorkMode=InputDSRunTime 工作模式下使用,如果不在这个模式下,结果有可能会不正确; 2.在 InputDSRunTime 工作模式下,只要指定 ds 参数就行, 不建议使用 Cell 参数; 如果报表只有一个 "=datarow( )" 函数, ds参数都可以省略; 3.在其它工作模式下, 取数范围是以含 "=datarow( )" 函数单元格作为左上角的数据源填充区; | |
示例 | //取得当前工作表中唯一的数据源填充区内容 AF.func("GetChangedXML", ""); //取得当前工作表中 'ds1' 数据源填充区内容 AF.func("GetChangedXML", "ds=ds1"); //同上,但XML串含附加信息 AF.func("GetChangedXML", "ds=ds1; org=1001;Uid=330102"); |
Swkrntpomzqa | 限制某些交互功能 (也可写作 SetLimit ) | ![]() ![]() |
参数 | 可包含如下、以逗号分隔的串: 1 -公式修改权 2 -非公式的修改权 3 -内容复制权 4 -格式修改权(如行高列宽、字体、对齐、隐藏等),也可分拆成: 4a - 行高列宽调整权 4b - 行列隐藏权 4c - 行列取消隐藏权 4d - 除行高列宽、行列隐藏、取消隐藏外的其它格式调整权 8 -行列增删权, 也可拆分成: 256 -行增删权 512 -列增删权 16-被保护的单元的内容修改权 32-平衡校验修改权 64-数据源修改权,也可拆分成: 64a -新建数据源权 64d -删除数据源权 64m -修改数据源权 128-工作表的增删权 0 -不显示单元格的焦点(通常和 1、2一起使用) | |
返回值 | (无) | |
备注 | 1.在上报模式的运行时(workMode=UploadRunTime),不完全遵照这个限制; 2.权限仅限制交互操作,不限制API调用; 3.权限是不写入报表 XML 中的,不会随报表保存; 4.本函数对所有工作表都生效; | |
示例 | AF.func("Swkrntpomzqa", "1, 2"); //所有单元格内容不得修改 AF.func("Swkrntpomzqa", "1, 16, 512"); //公式不得修改、被保护的单元格不得修改、列不得增删 |
addEditAbleOnly | 添加可编辑的单元格范围,除了这些单元格,其它单元格都不得修改 | ![]() |
参数 | 可包含如下格式的串: level=[?]; [cell=?]; [cellArea=?]; [fixedCell=?]; [fixedCellArea=?]; [alias=?]; [aliasArea=?]; [bgColor=?]; [droplist]; [checkbox], 含义即语法如下: level - top/normal, "top" 表示独立增加权限,且级别最高,不受其它权限函数影响, 默认是normal; cell - 单元格名(有多个则以逗号分隔),如"A5, B4, D4"; fixedCell - 同上,但位置是固定的,不受行列增删影响; cellArea - 以":"分隔的2个单元格名,表示左上角到右下角的矩形区域,如“B2:D5”; fixedCellArea - 同上,但位置是固定的,不受行列增删影响; alias - 别名(有多个则以逗号分隔),可以含 * 的通配符; aliasArea - 以":"分隔的2个别名,表示左上角到右下角的矩形区域,如“Tag12:Tag33”; bgColor - 某种背景色的单元格(多个背景色之间以逗号分隔), 如“red, blud, #334400”,T 表示无背景色(透明); droplist - 凡是下拉的单元格; checkbox - 凡是Checkbox的单元格; arrow - 左侧标记色,多个颜色之间以逗号分隔; | |
返回值 | (无) | |
备注 | 1.设置的权限不会写入报表XML, 并且只对当前工作表生效; 2.当 level = normal 时: 1.独立于 Swkrntpomzqa( ),但和 Swkrntpomzqa( ) 同时生效,语义上有冲突时Swkrntpomzqa( )优先; 2.和 AddUnEditAbleOnly( )函数是互斥的,即调用AddUnEditAbleOnly( )函数后以前的设置将失效. 3.只能执行一遍, 如果再次执行,以前的 level=normal 的设置将失效. 3.当 level = top 时: 1.等级高于 Swkrntpomzqa( ); 2.允许执行多遍,设置的权限都将被保持,和其它 AddEditAbleOnly( ) / AddUnEditAbleOnly( )函数不互斥,等级仍然保持最高. | |
示例 | AF.func("addEditAbleOnly", "cellArea=B3:B5, D3:D5; alias=KK*"); //仅如下范围的单元格可以编辑: B3:B5之间的单元格、 D3:D5之间的单元格、或别名以"KK"开头的单元格 AF.func("addEditAbleOnly", "droplist; checkbox; bgColor=black"); //除了下拉的、Checkbox的、或黑色背景的单元格可编辑,其它单元格都不可编辑 |
addUnEditAbleOnly | 添加不可编辑的单元格范围,除了这些单元格不可修改,其它单元格都是可以修改的 | ![]() |
参数 | 同AddEditAbleOnly函数 | |
返回值 | (无) | |
备注 | 同AddEditAbleOnly函数 |
ClearLimit | 清理上面2个函数 (addEditAbleOnly, addUnEditAbleOnly) 设置的权限 | ![]() |
参数 | 无 | |
返回值 | (无) | |
备注 | 1.不影响 Swkrntpomzqa 函数设置的权限; 2.只对当前工作表生效 |
GetCellEditAble | 判断某单元是否有编辑权限 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | 1/0 - 有/无 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名、或文本框的别名、或文本框的ID号;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) | |
示例 | var isAble = AF.func("getCellEditAble", "3 \r\n 9"); var isAble = AF.func("getCellEditAble", "B7"); var isAble = AF.func("getCellEditAble", "MyTh"); //"MyTh"是别名 |
SetConvertAble | 设定转换输出对话框中的文件格式类型 | ![]() |
参数1 | 为 data 或 picture, 分别表示数据文件、图片文件, 这二者是相互独立的. | |
参数2 | 以逗号分隔的类型名, 对于数据文件, 可用类型有: xlsx,xls,pdf,htm,mht,doc,txt,xml,dif,rtf;对于图片文件,可用类型有img.pdf,png,tif,jpg,bmp,gif 如果为 none, 表示全部不支持; 如果为空串,则表示全部支持, 相当于恢复到默认状态 | |
返回值 | (无) | |
示例 | AF.func("SetConvertAble", "data \r\n htm,pdf"); //表示数据类型格式仅允许 htm, pdf 可供用户选择 AF.func("SetConvertAble", "pict \r\n none"); //表示禁止转换所有的图片类型 |
GetConvertAble | 取得转换输出对话框中允许的文件格式类型 | ![]() |
参数 | 为 data 或 picture, 分别表示数据文件、图片文件 | |
返回值 | 逗号分隔的类型名, 名称请参见上一个函数 SetConvertAble |
AddUserFunctions | 添加自定义函数的声明 | ![]() ![]() |
参数 | XML文档,或XML大串。参数为空表示清除所有自定义函数 | |
返回值 | (无) |
RemoveUserFunctions | 清除自定义函数 | ![]() |
参数 | (无) | |
返回值 | 1/0 - 已清除/未发现自定义函数 |
SetBatchFunctionURL | 指定批处理自定义函数的URL地址 | ![]() |
参数1 | URL,绝对或相对 | |
参数2 | 可选,格式例如: "Functions=500;TimeOut=999", 其中 Functions 表示每一批中最多函数个数,默认100, TimeOut 表示 http 请求响应的超时,单位是秒 | |
参数3 | 可选,附加参数,为任意格式的字符串,最终该串将附在发送的XML串中,供后端程序使用 | |
返回值 | (无) | |
备注1 | 参数为空表示清除该地址 | |
备注2 | 关于选项 Functions, 表示每批最多函数数量的限制,但它不代表每一批都能达到这个数量,实际上每一批的函数数量是和包含自定义函数的单元格总数有关, 假如您一共有 100 个单元格, 单元格公式都是这种: =myfunc1( ) + myfunc2( ) + myfunc3( ) 报表控件内部的计算逻辑处理程序,将会把函数分成 3 批提交、每批中含有 100 个函数, 哪怕你将 Functions 设成 100000, 每批中也只能含 100 个函数. | |
示例 | AF.func("SetBatchFunctionURL", "inne/procf.aspx \r\n functions=50;timeout=9999 \r\n user=normal"); |
SetAutoCalc | 在键盘输入过程中、复制粘帖过程中,通常能触发自动计算,但如果报表太大(公式太多)、某些函数运行速度太慢的话,自动计算会影响性能,影响到操作的流畅程度,为此可以按条件设定,是否自动关闭这个自动计算功能。 | ![]() |
参数 | 格式为 maxCells=[?];UserFunction=[?];RefOtherReport=[?],均为可选,含义如下: maxCells - 公式单元格数量阀值,一旦公式单元格总数超过这个数目,就不触发自动计算, 0 相当于彻底关闭自动计算. 系统内部初始数值是10000(1万); UserFunction - 自定义函数是否允许被触发, 0/1 (或true/false). 系统内部初始值是true; RefOtherReport - 引用其它工作表的函数(ref)是否允许被触发0/1 (或true/false). 系统内部初始值是true | |
返回值 | (无) | |
备注 | 1.自动计算选项是一个全局开关,对整个进程都生效的; 2.本函数仅影响键盘动作导致的自动计算,对显式调用计算函数、对工具栏的计算按钮等并无影响 | |
示例 | AF.func("SetAutoCalc", "userfunction=false"); //表示仅关闭自定义函数的自动计算 |
GetAutoCalc | 取得自动计算选项,请参见 SetAutoCalc 函数 | ![]() |
参数 | 可以为: maxCells - 自动计算的公式单元格数量阀值, 返回值是数量 UserFunction - 自定义函数是否允许被触发, 返回值是 1 或 0, 1表示允许 RefOtherReport - 引用其它工作表的函数(ref)是否允许被触发, 返回值是 1 或 0, 1表示允许 | |
返回值 | 和参数有关. 如果参数为空,则返回值可能是诸如 "maxCells=1000;UserFunction=1;RefOtherReport=0" 这样的串 | |
示例 | var cells = AF.func("GetAutoCalc", "maxCells"); |
GetLastCalcError | 取得上次计算错误信息 (即计算信息框中的提示内容)、或未通过数据验证的Validation的ID号 | ![]() |
参数 | Validation - 表示取上次未通过数据验证的Validation的ID,多个ID之间以逗号分隔; 其它串 - 上次普通的错误提示 | |
返回值 | 串 |
SetHoldDSData | 在计算后, 设置数据源是否仍然保持数据 | ![]() |
参数 | true/false | |
返回值 | (无) | |
备注 | 1.在默认情况下,在每次完成计算后,数据源是不再保持自身数据的,以释放内存; 2.如果你希望在 js 中直接读取数据源中的数据,则应该将其设为 true,请参见下例; 3.如果你不执行AF.func("SetHoldDSData", "true"), 你会发现 AF.func("data", "ds1 \r\n 1 \r\n 1") 依然能取得数据,事实上它是再次访问后端数据源的,效率较低; 4.如果报表的公式中包含了 search( ) 函数,那么在计算过程中系统将会自动执行本函数; | |
示例 | AF.func("Build", "../report/report33.xml"); AF.func("SetHoldDSData", "true"); AF.func("Calc", ""); //如下 "data" 函数能直读数据源中的数据,请参见全局函数中的 “5.对表达式和计算函数的封装” var s = AF.func("data", "ds1 \r\n 1 \r\n 1"); |
GetHoldDSData | 在计算后, 数据源是否仍然保持数据 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 是/否 |
Chart_GetSeriesProp | 取得某统计图某系列的属性 | ![]() |
参数1 | 统计图别名 | |
参数2 | 系列名 | |
参数3 | 属性名, 如 LineThick 表示折线图的线宽 | |
返回值 | 数值 |
Chart_SetSeriesProp | 设置某统计图某系列的属性 | ![]() |
参数1 | 统计图别名 | |
参数2 | 系列名 | |
参数3 | 属性名, 如 LineThick 表示折线图的线宽 | |
参数4 | 数值 | |
返回值 | 1/0 - 成功/失败 | |
备注 | 系列的 LineThick 属性并不保存到报表 XML 模板中, 仅用于临时更改显示效果 | |
示例 | AF.func("Chart_SetSeriesProp", "chart0 \r\n 2017年度 \r\n LineThick \r\n 6"); //修改别名为 chart0 的统计图的名为 "2017年度" 的系列的线条宽度 |
Chart_DeleteAllSeries | 清除所有系列 | ![]() |
参数 | 统计图别名 | |
返回值 | (无) |
Chart_GetSeriesCount | 取得系列数 | ![]() |
参数 | 统计图别名 | |
返回值 | 数字 |
Chart_GetSeriesName | 取得某系列的名称 | ![]() |
参数1 | 统计图别名 | |
参数2 | 顺序号,从0开始计数 | |
返回值 | 串,空串表示已经到达末尾 |
Chart_SetSeriesName | 系列的增删改操作 | ![]() |
参数1 | 统计图别名 | |
参数2 | 顺序号,从0开始计数 | |
参数3 | 系列名. 空串表示删除这个系列;如果不存在则添加;如果已经存在则修改系列名 | |
返回值 | (无) |
Chart_GetItemNames | 取得所有数据项的名称 | ![]() |
参数 | 统计图别名 | |
返回值 | 以逗号分隔的数据项名 |
Chart_GetItemName | 取得某数据项的名称 | ![]() |
参数1 | 统计图别名 | |
参数2 | 顺序号,从0开始计数 | |
返回值 | 数据项名 |
Chart_SetItemNames | 设置全部数据项的名称 | ![]() |
参数1 | 统计图别名 | |
参数2 | 以逗号分隔的数据项名 | |
参数3 | 可选,true/false - 重构统计图/不重构,默认是true | |
返回值 | (无) |
Chart_SetItemName | 设置某个数据项的名称 | ![]() |
参数1 | 统计图别名 | |
参数2 | 顺序号,从0开始计数 | |
参数3 | 数据项名 | |
参数4 | 可选,true/false - 重构统计图/不重构,默认是true | |
返回值 | (无) |
Chart_GetValues | 取得某系列的全部数值 | ![]() |
参数1 | 统计图别名 | |
参数2 | 系列名,或系列的顺序号. 如果只有一个系列,那么可以是空串或任意串 | |
返回值 | 以逗号分隔的值 |
Chart_GetValue | 取得某系列的某个数值 | ![]() |
参数1 | 统计图别名 | |
参数2 | 系列名,或系列的顺序号. 如果只有一个系列,那么可以是空串或任意串 | |
参数3 | 数据项的顺序号,或数据项名 | |
返回值 | 值 |
Chart_SetValues | 设置某系列的全部数值 | ![]() |
参数1 | 统计图别名 | |
参数2 | 系列名,或系列的顺序号. 如果只有一个系列,那么可以是空串或任意串 | |
参数3 | 以逗号分隔的值, 值可以是数值、单元名、别名 | |
参数4 | 可选,true/false - 重构统计图/不重构,默认是true | |
返回值 | (无) |
Chart_SetValue | 设置某系列的某个数值 | ![]() |
参数1 | 统计图别名 | |
参数2 | 系列名,或系列的顺序号. 如果只有一个系列,那么可以是空串或任意串 | |
参数3 | 数据项的顺序号,或数据项名 | |
参数4 | 值, 值可以是数值、单元名、别名 | |
参数5 | 可选,true/false - 重构统计图/不重构, 默认是true | |
返回值 | (无) |
Droplists_Get | 取得所有下拉字典 | ![]() |
参数 | name 或 id, 表示返回字典名 或 字典的id号 | |
返回值 | 以逗号分隔的串 |
Droplists_GetHandle | 取得某个下拉字典的句柄 | ![]() |
参数 | 字典名 或 字典的id号 | |
返回值 | 句柄串,空串表示该字典不存在 | |
备注 | 取得看句柄后,可以使用全局函数中的 “下拉List管理函数” 访问字典数据 |
Droplists_FindCells | 取得当前工作表中使用了某个下拉字典的所有单元格 | ![]() |
参数 | 字典名 或 字典的id号 | |
返回值 | 以逗号分隔的单元格名 |
Droplists_Delete | 删除某个下拉字典 | ![]() |
参数1 | 字典名 或 字典的id号 | |
参数2 | 可选,true-绝对删除, false - 如果有单元格使用了该字典就不删除, 默认是true | |
返回值 | 1/0 - 成功/失败 |
Droplists_Add | 动态添加下拉字典 | ![]() |
参数 | 语法串 | |
返回值 | 新增字典的id号, 0表示失败,失败原因可能为name重复 | |
示例 |
AF.func("Droplists_Add", "name=kk1;dataURL=../getDict.aspx"); AF.func("Droplists_Add", "name=kk2;dataURL=<items><item key=1>男</item><item key=2>女</item></items>"); AF.func("Droplists_Add", "name=kk3;treelistURL=customer.xml; DataCol=id; DisplayCol=name"); |
Droplist_GetInfo | 取得某个下拉字典的定义信息 | ![]() |
参数 | 字典的 id 号 | |
返回值 | json串 | |
示例 | 返回类似这种 json 串{ "id":1, //字典 id "name":"madein", //字典名 "dsname":"ds1", //字典绑定的数据源 "dsxmlnode":null, //数据源子节点 "dsdatacolumn":"prodId", //绑定的数据列 "dsdisplaycolumn":"prodName" //绑定的显示列 } |
Masks_Get | 取得所有显示掩码的id | ![]() |
参数 | (无) | |
返回值 | 掩码的id,相互以逗号分隔 |
Mask_Get | 取得某个显示掩码的表达式 | ![]() |
参数 | ID号 | |
返回值 | 表达式 |
Mask_Delete | 删除某个显示掩码 | ![]() |
参数 | ID号 | |
返回值 | 1/0 - 成功/失败 |
Mask_Add | 添加一个显示掩码 | ![]() |
参数1 | 数据类型,可以是 string, int, double, date, datetime | |
参数2 | 表达式 | |
返回值 | ID号 | |
备注 | 如果该掩码表达式已经存在,则返回原ID号 | |
示例 | var id = AF.func("Mask_Add", "string \r\n =formatNum(data, '¥#,##0.00')"); var id = AF.func("Mask_Add", "string \r\n =picture()"); //添加图片显示掩码 var id = AF.func("Mask_Add", "string \r\n =barcode(33,0,0,0)"); //添加二维码显示掩码 |
Mask_FindCells | 取得当前工作表中使用了某个显示掩码的单元格 | ![]() |
参数 | ID号 | |
返回值 | 以逗号分隔的单元格名、或文本框的别名 |
SetToolbarItemImage | 动态更改工具条中某按钮的图标 | ![]() |
参数1 | 功能号 | |
参数2 | 图标文件的URL,如果是相对路径,则相对于当前页面 | |
返回值 | 1 / 0 - 成功 / 失败 |
SetToolbarItemTip | 动态更改工具条中某按钮的Tip (鼠标滑过时的文字) | ![]() |
参数1 | 功能号 | |
参数2 | 文字串 | |
返回值 | 1 / 0 - 成功 / 失败 |
GetToolbarItemStatus | 取得工具条中某按钮/菜单项的状态 | ![]() |
参数1 | 功能号 (如果是自定义项,必须大于等于3000) | |
参数2 | 可用状态,为 Enable、Visible、Check | |
返回值 | 1 / 0 | |
备注 | 1.enable决定按钮或菜单是否灰色显示(disable); 2.visible决定是否让该按钮/菜单项出现; 3.check比较特殊,如果是按钮,必须是style="checkBox"类型的,决定按钮的凹陷状态;如果是菜单,则会在菜单左侧打一个勾 |
SetToolbarItemStatus | 动态更改工具条中某按钮/菜单项的状态 | ![]() |
参数1 | 功能号 (如果是自定义项,必须大于等于3000) | |
参数2 | 可用状态,为 Enable、Visible、Check | |
参数3 | true / false | |
返回值 | 1 / 0 - 成功 / 失败 | |
备注 | 1.enable决定按钮或菜单是否灰色显示(disable); 2.很多按钮是和报表内部动作关联的, 比如功能号为 104 的按钮(保存), 其状态始终会自动变化, 你要改变它的状态,也只能是暂时的; 3.visible决定是否让该按钮/菜单项出现; 4.check比较特殊,如果是按钮,必须是style="checkBox"类型的,决定按钮的凹陷状态;如果是菜单,则会在菜单左侧打一个勾; 5.visible 还将影响到鼠标右键弹出菜单的功能项, 哪怕这些功能不出现在工具条上; |
AddMenu | 增加自定义的弹出菜单项 | ![]() ![]() |
参数1 | 串、XML串,或URL,内容的格式规范请参考“7.自定义菜单” | |
参数2 | 可选,格式为LocateAt=[top/bottom], 表示自定义菜单在弹出时位于顶部还是底部,默认是bottom | |
返回值 | (无) | |
备注 | 只能在OnEvent(id, "MenuBeforePopup", ...)事件中执行。 |
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) |
EnableEventLock | 针对 Chrome ppapi, 声明需要加锁处理的事件 | ![]() ![]() |
参数 | 以逗号分隔的事件名, 目前已经支持加锁的事件有如下这些: menuBeforePopup, toolbar, BeforeSheetRenamed, BeforeSheetInserted, BeforeSheetDeleted, DblClicked, BeforeRowInserted, BeforeRowDeleted, BeforeColInserted, BeforeColDeleted, KeyDown, BeforeDSDrag, BeforeFunctionDrag, BeforeItemDrag | |
返回值 | (无) | |
备注 | 请参见开发者指南之 《Chrome ppapi开发指南》\ "7.ppapi事件锁机制" |
EventLock | 针对 Chrome ppapi, 对事件进行加锁 | ![]() ![]() |
参数 | 事件名 | |
返回值 | 事件句柄串 | |
备注 | 请参见开发者指南之 《Chrome ppapi开发指南》\ "7.ppapi事件锁机制" |
EventUnLock | 针对 Chrome ppapi, 对事件进行解锁 | ![]() ![]() |
参数 | 事件的句柄串 | |
返回值 | (无) | |
备注 | 请参见开发者指南之 《Chrome ppapi开发指南》\ "7.ppapi事件锁机制" |
EnableUndo | 启用或禁用Undo,允许人为关闭或开启 Undo 功能 | ![]() |
参数 | true/false - 启用/禁用 | |
返回值 | (无) |
IsUndoEnabled | Undo功能是否启用中 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 启用/禁用 |
EnableRedo | 启用或禁用Redo,允许人为关闭或开启 Redo 功能 | ![]() |
参数 | true/false - 启用/禁用 | |
返回值 | (无) |
IsRedoEnabled | Redo功能是否启用中 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 启用/禁用 |
Undo | 执行一步 Undo 操作 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 成功/失败, 失败的原因通常是 Undo 池已空 |
Redo | 执行一步 Redo 操作 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 成功/失败, 失败的原因通常是 Undo 池已空 |
SaveUndo | 将当前状态保存入 Undo 池 | ![]() |
参数 | (无) | |
返回值 | (无) |
ResetUndo | 清空 Undo 缓存池 | ![]() |
参数 | (无) | |
返回值 | (无) |
UndoAble | 根据 Undo 缓存池, 判断是否可执行 Undo 操作 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 是/否 |
RedoAble | 根据 Undo 缓存池, 判断是否可执行 Redo 操作 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 是/否 |
GetRedrawAble | 是否能够重画 | ![]() |
参数 | (无) | |
返回值 | 1 / 0 - 能 / 不能 |
SetRedrawAble | 设置让报表能够重画或不能重画。为了提高性能,在需要连续对报表作改动性操作(比如改数据、改属性)前关闭重画,操作完成后再开启重画. | ![]() |
参数 | true/false - 能 / 不能 | |
返回值 | (无) | |
示例 |
//关闭屏幕重画 AF.func("SetRedrawAble", "false"); //较大的循环, 需要执行很多遍 SetCellData、SetCellProp 之类的函数 for(i=0; i<ncount; i++) { ... AF.func("SetCellData", cellname + " \r\n 4"); } //恢复屏幕重画 AF.func("SetRedrawAble", "true"); |
FlashCell | 开启或关闭单元格闪烁 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
参数3 | 闪烁次数, 0表示无限 | |
返回值 | (无) | |
备注1 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名、或文本框的别名 | |
备注2 | 无参数表示关闭闪烁, 包括复制后屏幕焦点处的闪烁 | |
示例 | AF.func("FlashCell", ""); //关闭闪烁 AF.func("FlashCell", "C6 \r\n 4"); //C6单元格闪烁4次 AF.func("FlashCell", "C6:D9"); //不停歇地闪烁 AF.func("FlashCell", "5 \r\n 2 \r\n 5 \r\n 8"); //同上 |
CloseEdit | 强制关闭输入框 | ![]() |
参数 | true/false - 把输入框中的内容更新到单元格/废弃输入框的内容, 默认是 true | |
返回值 | (无) | |
备注 | 通常是焦点离开输入框,输入框自动就会关闭的,但有的场合下不一定能自动关闭 |
GetFont | 取得字体信息 | ![]() |
参数 | 字体的索引号 | |
返回值 | 该字体的XML串,如果字体不存在,则为空串 | |
备注 | 1.返回的XML串中, weight表示字体的粗细, 700是粗体, 400是常规; 2.有另外的快捷函数取单元格的字体: GetCellFont | |
示例 | //假设您想知道A1单元格的字体,须先获得该单元格的字体索引号 var FontIndex = AF.func("GetCellProp", "A1 \r\n fontIndex"); //调用本函数 var xml = AF.func("GetFont", FontIndex); //它返回的是诸如 "<Font faceName='宋体' charSet='134' height='-19' weight='700'/>" 这样的XML串 //假如你希望得到的是 JSON 串,那就请进一步调用全局函数 toJson: var json = AF.func("toJson", xml + "\r\n recordSet"); //它返回的是诸如 "{'faceName':'宋体', 'charSet':'134', 'height':'-19', 'weight':'700'}" 这样的串 |
AddFont | 添加字体 | ![]() |
参数 | 字体的XML串或Json串 | |
返回值 | 字体的索引号 | |
备注 | 1.如果字体已经存在,则返回已经存在的索引号; 2.有另外的快捷函数设置单元格的字体: SetCellFont | |
示例 | var FontIndex = AF.func("AddFont", "{'faceName':'宋体', 'charSet':'134', 'height':'-19', 'weight':'700'}"); AF.func("SetCellProp", "A1 \r\n FontIndex \r\n" + FontIndex); |
DisplayAsPrintSetup | 将报表切换成仅显示打印配置对话框样式 | ![]() ![]() |
参数 | 选项串,格式为 isNeedTitle=[?]; ok.Visible=[?]; ok.Text=[?]; cancel.Visible=[?]; cancel.Text=[?], 含义如下: isNeedTitle - 是否显示上方标题条, 默认是 true; ok.Visible - true/false, 是否显示“保存”按钮, 默认是 true; ok.Text - “保存”按钮上的文字; cancel.Visible - true/false, 是否显示“取消”按钮, 默认是 true; cancel.Text - “取消”按钮上的文字; | |
返回值 | (无) | |
备注 | 1.如果无参数,表示报表切换成原样(显示报表); 2.整个显示区显示报表打印对话框(非模式); 3.界面上默认有2个按钮:保存、取消; 4.点击“取消”,随即退出该模式,还原成普通报表显示模式; 5.点击“保存”,将立即把对话框配置内容更新到报表中,并触发PrintSetupBeforeUpdate、PrintSetupUpdate事件,不会退出对话框; 6.如果执行 Build 函数打开新的报表,对话框内容也将自动刷新 |
DisplayAsChart | 将报表切换成仅显示统计图 | ![]() ![]() |
参数1 | 统计图的别名,如果有多个别名,以逗号分隔;也可以是带星号(*)的通配符, 表示符合条件的别名; 也可以是空串,表示所有统计图(没有别名的统计图将被临时分配一个别名). | |
参数2 | freeform的URL或XML大串,该freeform必须包含一个ImageFlow对象 | |
返回值 | (无) | |
备注 | 1.如果无参数,表示报表切换成原样(显示报表); 2.报表包括工具条在内的整个区域全部切换成显示统计图; 3.点击统计图的某个数据项区域,将会触发同样的report的统计图事件; 4.alias别名和所处的工作表(WorkSheet)无关; 5.freeform即“自由表头”,请参考相关资料; |
GetCurrentChart | 取得当前统计图(以显示统计图时) | ![]() |
参数 | (无) | |
返回值 | 当前统计图别名。 如果报表中含有多工作表,则是类似 "mychart@sheet1"、"chart2@sheet2" 这种格式 | |
备注 | 仅用于在调用了DisplayAsChart函数后、以统计图显示时 |
GetActiveWindow | 取得当前主区域的窗口句柄 | ![]() |
参数 | (无) | |
返回值 | 句柄串. | |
备注 | 不太常用,常用于和第三方软件底层交互 |
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"); } } |
SetExportOption | 指定转换输出的文件名,通常用于 Toolbar 事件、转换输出对话框显现前 | ![]() |
参数 | 格式为 disablePage=[?]; defaultPage=[?]; PictureType=[?]; DataType=[?], 含义和可用值为: disablePage - 可以为 picture 或 data, 表示图片页/数据页是否被禁用; defaultPage - 可以为 picture 或 data, 表示默认切换成图片页/数据页; PictureType - 列举出可供选择的图片格式, 逗号分隔, 比如 jpg, png, img.pdf; DataType - 列举出可供选择的数据格式, 逗号分隔, 比如 pdf,xls,xlsx ; | |
返回值 | 无 | |
示例 | function OnReady() { .. AF.func("EnableEventLock", "Toolbar"); } function OnEvent(id, event, p1, p2, p3, p4) { if(event == "Toolbar" && p1 == "105") { var handle = AF.func("EventLock", Event); AF.func("SetExportOption", "defaultPage=data"); AF.func("EventUnLock", handle); } } |
SetNavigator | 设置超链接的重定位,常用于服务器专版 | ![]() ![]() |
参数 | 带 "@para" 宏的URL,超链接触发后,该宏将被替换成真实参数,并将页面转向该URL | |
返回值 | 无 |
AnalyzeUserFunction | 分析某个单元格的自定义函数, 并将结果以JSON格式输出 | ![]() |
参数1 | 行号(从0开始计数) | |
参数2 | 列号(从0开始计数),或列名(如 A、K、AC) | |
返回值 | JSON串 | |
备注 | 也可以将行、列参数合并成一个参数:单元名,如B7、K11; 或者是单元格的别名、或文本框的别名、或文本框的ID号;也可以在后面跟随宏@sheet(如 B7@sheet2 表示第二个工作表的B7单元格) |
EChart_RegisterOption | 注册一个 EChart 的 Option 作为模板 | ![]() |
参数1 | Option 模板, 是一个Json串, 也可以是一个 URL | |
返回值 | ID串 | |
备注 | 系统将把这 Option 解析成内部对象, 并缓存之, 以便在今后高速复用 |
EChart_Gen | 根据 Option 模板、数据,生成新的 Option | ![]() |
参数 | 选项串,格式为 id=[?]; version=[?]; filename=[?]; theme=[?]; title=[?]; subtitle=[?]; SamplePage=[?]; 含义如下: id - 模板的 ID 号; version - 选择 EChart 版本, 可以为空串或 "4.2.1", 空串表示使用默认的 2.2.7 版; filename - 目标文件名, 生成的 html 将写入该文件(utf-8格式). 如果不指定文件名, 则返回 html 串; theme - 主题, 默认为空; title - 新 Option 的标题, 默认为空; subtitle - 新 Option 的副标题, 默认为空; samplePage - 示例页, 大部分情况下不需要设置, 默认为空; | |
参数2 | 数据串, 可以是 json 串, 也可以是 URL | |
返回值 | html 串 | |
示例 | 数据格式建议为: [ { series: "安卓机", data: [{name: "华为", value: 111}, {name: "中兴", value: 2} ] }, { series: "苹果机", data: [{name: "华为", value: 111}, {name: "中兴", value: 2} ] } ] 或者这样: [ { series: "安卓机", data: {华为:3902, 中兴:10} }, { series: "苹果机", data: {华为:1902, 中兴:80} } ] |
EChart_SetOption | 更新某个EChart统计图的 Option 模板 | ![]() |
参数1 | 统计图句柄, 即 SelectEcharts 事件的 p1 参数 | |
参数2 | 示例图样页(SamplePage)名称, 比如 Bar, Pie. 报表 XML 串中保存有该名, 以便下次定位. | |
参数3 | 主题(Theme)串 | |
参数4 | Option 串 | |
返回值 | (无) | |
备注 | 如果 Option 串为空,表示放弃修改. 如果是报表新增统计图, 将自动被删除 |
EChart_SetServer | 设置 EChart 服务器 | ![]() |
参数1 | EChart 服务器的 URL, 默认的 EChart 服务器URL是 http://www.supcan.cn/echarts-2.2.7/doc/example.html , 建议不要使用硕正官网的这个服务器. 可以用本函数来指定服务器地址, 更好的设置方法是修改 supcan.xml 中的配置 | |
参数2 | 指定部署了硕正插件的 binary 目录的URL, 通常可以忽略. 硕正报表生成的 ECharts 模板, 是需要以 http 或 https 访问 binary/echarts 下的资源的, 在大多数情况下, 这个binary的URL 会被自动处理, 如果您希望访问别的模板, 可以在此指定位置. | |
返回值 | (无) |
EChart_SetListenFuncname | 设置 EChart 页面事件监听函数 | ![]() |
参数1 | EChart 是一个内部页面, 为了监听该内嵌页面的事件, 硕正插件通过定时 (600毫秒) 执行该函数, 获得其返回值, 并对比上次的返回值变化, 触发 OnEvent 事件 | |
返回值 | (无) | |
备注 | 1.作用范围:整个进程有效; 2.将触发的 OnEvent 事件, 事件名为 "UserEvent", p1 为固定的串 "EChartReflect", p2 为 EChart 的别名, p3 为函数的返回值 | |
示例 | 假如 AF.func("EChart_SetListenFuncname", "abc"); EChart 的 html 模板内应该有一个 abc( ) 的函数,例如: var m_sink = ""; function abc( ) { return m_sink; } 当函数返回值有变, AF将触发名为 UserEvent 的事件。 |