alrighty - I came up with something that works for me and thought I would post it just in case others were interested...
Function TestLab_ActionCanExecute(ActionName)
on error resume next
if actionname = "actOpenDefectDetails" then
TestLab_ActionCanExecute = False
NewDefectAction = Actions.action("actGotoDefect")
NewDefectAction.execute
else
TestLab_ActionCanExecute = true
end if
On Error GoTo 0
End Function
I've also tried adding in the following to actually open the Defects Dialog from within the Defects module, but it causes application exceptions:
ANewDefectAction = Actions.action("actBugDetails")
ANewDefectAction.execute
I'll probably try and get back to this one and improve it later, but for now - it's probably good enough.
(1)在对应action执行时打标志值
Function Requirements_ActionCanExecute(ActionName)
On Error Resume Next
'当点击需求详情时将标志打为1,代表当前的打开的窗口是需求窗口。RQ_USER_14是需求表中新增的字段。
If ActionName= "actReqDetails" Then
Req_Fields.Field("RQ_USER_14").Value = 1
End If
'当在链接的需求中点击缺陷详情时将标志打为2,代表当前的打开的窗口是缺陷详情的窗口。
If ActionName= "actOpenDefectDetails" Then
Req_Fields.Field("RQ_USER_14").Value = 2
End If
On Error Goto 0
End Function
If DialogBoxName = "Details" Then
'如果当前进入的是缺陷详情的对话框,就调用Defects_Bug_MoveTo以应用该函数中对缺陷详情的控制逻辑,同时将标志值改变,防止它触发保存事件中控制。
If v_type=2 Then
Call Defects_Bug_MoveTo
Req_Fields.Field("RQ_USER_14").Value =3
'当点击确定或取消按钮时,它会重新触发一次dialogbox中的脚本,由于上一次的触发已将标志修改成了3,所以这时就会触发缺陷中写入的post事件。触发完这个事件后,又再将标志位还原回2.下次再打开这个缺陷对话框就可以再次触发打开对话框时显示的控制逻辑。
ElseIf v_type=3 Then