12.事件
分类 | Event | 含义 | p1 | p2 | p3 | p4 |
---|---|---|---|---|---|---|
键盘鼠标动作 | SelChanged | 选中了单元格 | 行号 | 列号 | ||
选中了内嵌对象 | 别名 | |||||
Clicked | 鼠标点到某单元格 | 行号 | 列号 | |||
备注:如果是交叉表, 可以继续用 GetCellProp 函数获取该单元格的 crosstabRowDir、crosstabColDir 属性, 即所在的交叉项 | ||||||
鼠标点在单元格右侧的按钮上 | 行号 | 列号 | RightButton | |||
备注:请参见函数 SetCellProp/GetCellProp | ||||||
鼠标点到某统计图 | 统计图别名 | 系列名 | 数据项名 | 数据所在的单元格名称 如果是多工作表, 则在后面跟随有类似 "@sheet1" 的宏 | ||
鼠标点到某内嵌对象 | 别名 | |||||
鼠标点在某内嵌对象右侧的按钮上 | 别名 | RightButton | ||||
备注:请参见函数 SetCellProp/GetCellProp | ||||||
Clicked (超链接的兼容模式, 见备注5) |
鼠标点到某超链接的单元格 | 行号 | 列号 | 超链接的标识文字 | 数据源超链接的列ID (如果是数据源的超链接) | |
鼠标点到定义了超链接的交叉表的单元格 | 行号 | 列号 | Crosstab | 交叉表中该值的“副标题文字” | ||
HyperLink 超链接事件 |
鼠标点到某超链接的单元格 | 行号 | 列号 | 超链接的标识文字 | 数据源超链接的列ID (如果是数据源的超链接) | |
交叉表单元格的超链接 | 行号 | 列号 | Crosstab | 交叉表中该值的“副标题文字” | ||
将跳转到另一个工作表 | 行号 | 列号 | go | 工作表名 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
将跳转到另一个工作表并对其执行计算 | 行号 | 列号 | goCalc | 工作表名 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
将计算所有工作表 | 行号 | 列号 | calc | |||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
DblClicked | 鼠标双击某单元格 | 行号 | 列号 | |||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
EditChanged | 单元格内容被修改 | 行号 | 列号 | 输入前的内容 | ||
备注1:通常是输入框关闭(焦点离开)后才触发该事件的; 备注2:在执行粘贴(Paste)时,也会触发该事件,每个单元格都会触发一遍, 如果您执行了 CancelEvent 函数,那么粘贴过程将终止 | ||||||
文本框内容被修改 | 别名 | 输入前的内容 | ||||
备注:通常是输入框关闭(焦点离开)后才触发该事件的 | ||||||
Editing | 正打开着的单元格的输入框内容有变 | 行号 | 列号 | 当前内容串 | ||
备注:在输入过程中,输入内容并不会立即更新到单元格中 | ||||||
正打开着的文本框的输入框内容有变 | 别名 | 当前内容串 | ||||
备注:在输入过程中,输入内容并不会立即更新到单元格中 | ||||||
Keydown | 在非编辑状态时的键盘动作 | 键的ASCII码,例如回车是13、空格是32 | 见备注2 | |||
备注1:可执行全局函数CalcelEvent( )阻止继续执行 备注2:p4的含义为: 1-Ctrl键也按下了; 2-Shift键也按下了; 3-二者一起按下了 | ||||||
Checked | 鼠标选了Checkbox | 行号 | 列号 | Checkbox的值(1/0) | ||
文件IO事件 | New | 报表已新建 (即点击了工具条左上角第一个按钮) | ||||
备注:"Toolbar" 事件发生在新建前; "New" 事件发生在新建后 | ||||||
Opened | 已打开报表 | 报表的URL, 也可能是纯数字串形式的内存块句柄(可用全局函数 GetDataString 访问) | ||||
Saved | 报表已保存 | 本地的全文件名 | 如果一开始打开的是zip文件,则为该zip文件名 | |||
Exported | 报表已转换输出 | 全文件名(多个文件以逗号分隔) | 文件类型(即后缀) | |||
ExportDialog | 转换输出对话框中,当用户点击"确定"后、文件对话框即将弹出前 | 文件后缀 | 以逗号分隔的、待转换的工作表序号(从0开始计数) | |||
备注:可以在该事件中执行 SetExportFilename 函数,详见该函数的说明. | ||||||
行列增删 | RowInserted | 行已插入 | 行号 | 数量 | ||
BeforeRowInserted | 行插入前 | 行号 | 数量 | |||
RowDeleted | 行已删除 | 行号 | 数量 | |||
BeforeRowDeleted | 行删除前 | 行号 | 数量 | |||
ColInserted | 列已插入 | 列号 | 数量 | |||
BeforeColInserted | 列插入前 | 列号 | 数量 | |||
ColDeleted | 列已删除 | 列号 | 数量 | |||
BeforeColDeleted | 列删除前 | 列号 | 数量 | |||
工具条和工具箱 | Toolbar | 鼠标点击了工具条中的某按钮、但尚未执行 | 功能号 | 参数,和功能号有关 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
ToolbarRun | 鼠标点击了工具条中的某按钮、且已成功执行 | 功能号 | 参数,同 Toolbar 事件 | |||
备注:如果某些功能是需要弹出对话框确认的,那么点击对话框的 “取消” 是不会触发本事件的,此外,如果功能没有得到执行时,也不触发本事件 | ||||||
BeforeCellPropChanged | 工具箱中单元格的某些属性被改动前 | 单元格名 | 属性名称 | 修改前的内容 | 修改后的内容 | |
备注1:可执行全局函数CalcelEvent( )阻止继续执行; 备注2:并不是所有属性都会触发该事件,只有常用的属性诸如颜色、保护、对齐等等才触发 | ||||||
CellPropChanged | 工具箱中单元格的某些属性已被改动 | 单元格名 | 属性名称 | 修改前的内容 | 修改后的内容 | |
BeforeFunctionDrag | 工具箱中 “函数” 选项卡中,某函数被拖拽到单元格前 | 单元格名 | 函数名 | |||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
FunctionDrag | 工具箱中 “函数” 选项卡中,某函数被拖拽到单元格后 | 单元格名 | 函数名 | |||
BeforeDSDrag | 工具箱中 “数据源” 选项卡中,某函数被拖拽到单元格前 | 单元格名 | 函数名 | 逗号分隔的参数 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
DSDrag | 工具箱中 “数据源” 选项卡中,某函数被拖拽到单元格后 | 单元格名 | 函数名 | 逗号分隔的参数 | ||
BeforeItemDrag | 工具箱中 “指标库” 选项卡中,某指标被拖拽到单元格前 | 单元格名, 如果为空表示是拖拽成文本框 | 指标名 | |||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
ItemDrag | 工具箱中 “指标库” 选项卡中,某指标被拖拽到单元格后 | 单元格名, 如果为空表示是拖拽成文本框 | 指标名 | |||
工作表 | WorkSheetSelChanged | 当前工作表已切换 | 工作表序号 | 0 - 普通鼠标点击时切换; 1 - 报表刚打开时自动触发本事件 |
||
BeforeSheetDeleted | 工作表被删除前 | 工作表序号 | ||||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
SheetDeleted | 工作表已经被删除 | 工作表序号 | ||||
BeforeSheetRenamed | 工作表被改名前 | 工作表序号 | 原名 | 新名 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
SheetRenamed | 工作表已经被改名 | 工作表序号 | 原名 | 新名 | ||
BeforeSheetInserted (点击了选项卡 ![]() |
工作表新建前 | |||||
新工作表导入前 | 报表的URL | 工作表数量 | ||||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
SheetInserted (点击了选项卡 ![]() |
新建了工作表 | |||||
导入了新工作表 | 报表的URL | 工作表数量 | ||||
打印相关 | BeforePrint | 正准备要打印 (在预览界面) | ||||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
Printed | 已打印 (是指打印任务已经发送给操作系统的打印任务队列) |
已打印次数 | 0 - 普通打印; 1 - 在预览窗口中的打印当前页; 2 - 在预览窗口中的打印全部页; |
|||
Previewed | 打印预览窗口已关闭 | |||||
PrintSetupBeforeUpdate | 打印参数设置对话框已经按下"确认", 但尚未更新到报表 | 即将要更新的新的配置串(XML串) | ||||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | ||||||
PrintSetupUpdated | 打印参数设置对话框已经按"确认"关闭, 并且已经更新到报表 | |||||
计算相关 | Calced | 已执行计算 | 0 - 执行了工具条上的“重新计算”; 1 - 执行了"除数据源外,重新计算"; 2 - API执行了计算函数; 3 - API执行了当前工作表的计算 |
0 - 是同步计算 1 - 是异步计算 注:工具条上的“计算”按钮是异步计算 |
||
DataReach | 数据源已经访问了http并得到了数据,但尚未应用该数据 | 纯数字串形式的内存块的句柄 | URL | 数据源的ID, 如"ds1" | ||
备注1:可以用全局函数 GetDataString / SetDataString 取得或更改内存块中的数据 备注2:可以用上述2个函数存取数据,但不宜过多调用其它函数,否则会造成不稳定 | ||||||
其它 | HotKey | 触发了快捷键 | 快捷键 | 如果当前选中的是单元格,为所在行号; 如果是内嵌对象,则为它的别名 |
当前单元格的列号, 如果有单元格选中的话 | |
MenuBeforePopup | 右键菜单即将弹出(单元格) | 行号 | 列号 | |||
右键菜单即将弹出(文本框/统计图/图片等) | 别名,多个别名间以逗号分隔 | |||||
MenuClicked | 右键菜单的自定义部分被选中 | 功能号 | 行号 | 列号 | ||
UserEvent | 全局函数 PostMessage 发出的自定义事件 | 自定义 | 自定义 | 自定义 | 自定义 | |
CacheSaved | 全局事件,请参见全局函数 ListenEvent | 缓存的ID | ||||
Download | 全局事件,请参见Freeform组件的同名事件 | |||||
Upload | 全局事件,请参见Freeform组件的同名事件 | |||||
树列表别名.树列表事件名 | 内嵌树列表的事件 | 参见树列表 | 参见树列表 | 参见树列表 | 参见树列表 |
function OnEvent(id, Event, p1, p2, p3, p4) { if(Event == "BeforeRowInserted") { AF.func("CancelEvent", ""); //阻止插入行 } }备注3:SelChanged、Clicked、DblClicked 和 EditChanged、Editing、CellPropChanged事件需要SubscribeEvent( )预订才会生效, 事件的js用法可参见下例:
function OnReady( id ) { AF.func( 'Build', 'index.XML' ); //加载报表 AF.func("SubscribeEvent", "SelChanged, EditChanged"); //预订事件 } function OnEvent(id, Event, p1, p2, p3, p4) { if( Event == "SelChanged" ) { //...略 } }备注4:Checked事件必须要先预订 Clicked 事件才能生效;