Action 对象
可以使用 Action 对象验证按钮或命令是否启用、选中或可见。还可以用它执行操作。
例如,要将“缺陷详细信息”对话框设置成用户在“缺陷网格”中从一个缺陷移动到另一个时自动打开,请在 Bug_MoveTo 事件过程中放置以下代码:
Set NewDefectAction=Actions.Action("Defects.DefectDetails")
NewDefectAction.Execute
要获取操作的名称,将以下行添加到 ActionCanExecute 事件过程,执行操作,并记下消息中打印的操作名称:
Sub ActionCanExecute(ActionName) On Error Resume Next MsgBox "You have performed an action named: " & ActionName On Error GoTo 0 End Sub
此对象有以下属性:
|
属性 |
读/写 |
类型 |
描述 |
|---|---|---|---|
|
Checked |
读/写 |
布尔值 |
表示操作是否签入 ALM。 |
|
Enabled |
读/写 |
布尔值 |
表示是否启用操作。已禁用的操作无法由用户调用,但可以从工作流脚本调用。 |
|
Visible |
读/写 |
布尔值 |
表示在 ALM 中操作是否可见。 |
Action 对象包括以下方法:
|
方法 |
描述 |
|---|---|
|
Execute |
执行操作。 |
工作流脚本使用 Action 对象的 Execute 方法调用操作时,用户从对话框启动操作会触发的工作流事件在默认情况下不触发。因此,使用 Action.Execute 时,必须确保没有绕过用工作流事件强制实施的站点策略。
要允许工作流事件从对话框内触发,请将 AllowReentrancy 标志的值设置为 true。要恢复默认设置以便不触发这些事件,将 AllowReentrancy 标志的值设置为 false。例如,要将“添加缺陷”对话框设置为用户进入“缺陷”模块时自动打开,在 EnterModule 事件过程中放置以下代码:
AllowReentrancy=true
Set NewDefectAction=Actions.Action("Defects.DefectDetails")
NewDefectAction.Execute
AllowReentrancy=false
如果 AllowReentrancy 标志的值设置为 false,对话框照常打开,但工作流自定义在对话框中不运行,因为不触发对话框的工作流事件。
警告: 仔细考虑将此标志的设置为 true 的后果。如果将该标志的值设置为 true,将允许函数调用另一个函数,后者又可以调用原函数。这可能导致无限循环。函数调用内部函数,后者又调用原函数时,也可能发生这种情况。

