跳转至

自定义宏

简介

在 CCH Tagetik 中,自定义宏是一项集成功能,它通过一系列脚本,允许用户自定义或自动化某些数据录入操作。具体而言,自定义宏允许用户:

  • 在 Excel 表单中编写 VBA 宏
  • 实现自定义函数或例程,在用户定义的事件发生时运行

本模块描述了支持自定义宏的事件的详细信息,并提供了相关语法的说明。

支持的事件

系统支持以下事件:

表单运行后执行的示例

在此示例中,定义了一个在表单运行步骤结束时调用的子例程(TGK_AfterRun)。

表单运行后,列 A、B 和 C 被隐藏。

表单保存前执行的示例

在此示例中,定义了一个在表单保存前调用的函数(TGK_BeforeRun)。

该函数返回以下值:

如果... 则... 并且...
用户选择 返回 TRUE 值 系统将允许保存数据。
用户选择 返回 FALSE 值 系统将不允许保存数据。

TGK_BeforeRun

元素 描述
语法 public function TGK_BeforeRun(reportCode as String, processCode as String, isRefill as Boolean) as Boolean
事件描述 此事件在表单运行之前被调用,紧接在系统询问是否存在筛选器之后。注意:在此事件中无法调用数据处理运行,因为表单的数据处理只能在表单已以数据录入模式打开时运行。
必要参数 - reportCode。表单运行的代码(在临时表单中不存在)- processCode。当前流程的代码(如果表单在导航模式下运行,则为空字符串)- isRefill。TRUE = 下次刷新,FALSE = 初始运行
返回值 - TRUE 表示运行必须继续。- FALSE 表示运行必须取消。

TGK_AfterRun

元素 描述
语法 public sub TGK_AfterRun(reportCode as String, processCode as String)
事件描述 此事件在表单运行步骤结束时被调用。在 Handle custom event callbacks with unprotected sheets 选项激活的情况下,此例程的代码将在 Excel 电子表格临时解锁的状态下运行,但宏完成后它们会再次被锁定。
必要参数 - reportCode。表单运行的代码(在临时表单中不存在)- processCode。当前流程的代码(如果表单在导航模式下运行,则为空字符串)当用户对所有工作簿工作表运行循环时,系统还会考虑包含应用程序保留信息的隐藏工作表,这可能会产生数据处理错误。可以运行以下子例程来排除隐藏工作表:Sub TGK_AfterRun (reportCode as String, processCode as String) numIndex = 1 columnA = 22 Do While numIndex < WorkSheets.Count if WorkSheets(numIndex).visible = xlSheetVisible WorkSheets(numIndex).Columns(columnA).entireColumn.Hidden = True end if numIndex = numIndex + 1 Loop End Sub

TGK_BeforeSave

元素 描述
语法 public function TGK_BeforeSave(reportCode as String, processCode as String) as boolean
事件描述 此事件在编辑的值被保存之前被调用。在 Handle custom event callbacks with unprotected sheets 选项激活的情况下,此例程的代码将在 Excel 电子表格临时解锁的状态下运行,但宏完成后它们会再次被锁定。
必要参数 - reportCode。要保存其值的表单的代码 - processCode。当前流程的代码
返回值 - TRUE 表示保存必须继续。- FALSE 表示保存必须取消。

TGK_AfterSave

元素 描述
语法 public sub TGK_AfterSave(reportCode as String, processCode as String)
事件描述 此事件在已编辑的表单被保存后被调用。
必要参数 - reportCode。当前表单的代码 - processCode。当前流程的代码

TGK_BeforeRefresh

元素 描述
语法 public function TGK_BeforeRefresh(closeWorkbook as Boolean, action as integer) as Boolean
事件描述 此事件在表单刷新之前被调用。注意:当报表列表被刷新时不使用此事件。该函数从运行刷新的工作簿中运行。更新结束时,工作簿可由宏关闭。在 Handle custom event callbacks with unprotected sheets 选项激活的情况下,此例程的代码将在 Excel 电子表格临时解锁的状态下运行,但宏完成后它们会再次被锁定。
必要参数 - closeWorkbook。如果为 TRUE,则在刷新结束时关闭当前工作簿。- action。指示调用刷新的事件:- 1 = 从 Excel 使用按钮请求更新。- 2 = 使用 VBA 宏请求刷新。- 3 = 表单保存后请求刷新。- 4 = 数据处理结束时请求刷新。
返回值 - TRUE 表示刷新必须继续。- FALSE 表示刷新必须取消。

TGK_AfterRefresh

元素 描述
语法 public function TGK_AfterRefresh(formCode as String, processCode as String) as Boolean
描述 此事件在表单刷新后被调用。注意:当报表列表被刷新时不使用此事件。该函数从运行刷新的工作簿中运行。刷新结束时,工作簿可由刷新操作关闭。在 Handle custom event callbacks with unprotected sheets 选项激活的情况下,此例程的代码将在 Excel 电子表格临时解锁的状态下运行,但宏完成后它们会再次被锁定。
必要参数 - formCode。标识运行刷新的表单。- processCode。标识流程,如果表单在导航模式下运行则为空字符串。

TGK_MatrixCreated

元素 描述
语法 public sub TGK_MatrixCreated(reportCode as String, matrixCode as string, matrixAddress as string)
描述 此事件在动态矩阵部署结束时被调用。在此事件中,无法引用系统尚未生成的输出工作表或矩阵。
必要参数 - reportCode。表单运行的代码(在临时表单中不存在)- matrixCode。刚创建的矩阵的代码 - matrixAddress。刚创建的矩阵所占用范围的地址

TGK_BeforeFormEditorCommit

元素 描述
语法 public function TGK_BeforeFormEditorCommit(values() As Variant, rowIndex As Integer) as Boolean
描述 此事件在点击事务性表单编辑器记录明细窗口中显示的 OK 按钮时被调用(事务性数据录入明细窗口)。
必要参数 - values。点击 OK 按钮时事务性表单当前行中存在的值集合。- rowIndex。当前行的(逻辑)索引
返回值 - TRUE:明细窗口关闭,插入的新值保留在矩阵中。- FALSE:恢复打开明细窗口时存在的原始值。