橙子 发表于 2009-8-4 16:47:04

QC设置工作流脚本编辑器

我想实现功能是:在BUG状态改为以下值时强制录入注释。
如下代码:

Sub Defects_Bug_FieldChange(FieldName)
On Error Resume Next

      If Bug_Fields("BG_STATUS").IsModified and _
          (Bug_Fields("BG_STATUS").Value = "已否决" or _
         Bug_Fields("BG_STATUS").Value = "不修改" or _
            Bug_Fields("BG_STATUS").Value = "重新打开" or _
             Bug_Fields("BG_STATUS").Value = "已修改") and _
                        not Bug_Fields("BG_DEV_COMMENTS").IsModified then
                        Defects_Bug_CanPost = False

      msgbox "请注释原因或修改方案."
    Else
      Defects_Bug_CanPost = True
    End If
   Defects_Bug_CanPost = Project_DefaultRes
On Error GoTo 0
End Sub

可是现在问题是:只要改了状态,会有提示出现,可是同时也保存了状态值。。也就是还是没有录入注释就保存了状态。

zte_boy 发表于 2009-8-5 13:43:10

试下这个代码

Function Defects_Bug_CanPost
On Error Resume Next

If Not (User.IsInGroup("TDAdmin")) then
   If Bug_Fields("BG_STATUS").IsModified and _
      (Bug_Fields("BG_STATUS").Value = "已否决" or _
         Bug_Fields("BG_STATUS").value = "不修改" or _
         Bug_Fields("BG_STATUS").value = "已修改") and _
         not Bug_Fields("BG_DEV_COMMENTS").IsModified Then
            Defects_Bug_CanPost = false
            msgbox "请填写备注信息"
            else
            Defects_Bug_CanPost = true
   end if
End If

'Defects_Bug_CanPost = Project_DefaultRes
On Error GoTo 0
End Function

橙子 发表于 2009-8-6 10:51:09

原帖由 zte_boy 于 2009-8-5 13:43 发表 http://bbs.51testing.com/images/common/back.gif
Function Defects_Bug_CanPost
On Error Resume Next

If Not (User.IsInGroup("TDAdmin")) then
   If Bug_Fields("BG_STATUS").IsModified and _
      (Bug_Fields("BG_STATUS").Value = "已否决" o ...


这个我试过了,也不行。。 BUG状态只要选择了,它就已经变了。尽管有提示要录入备注

愤怒的黄瓜 发表于 2009-8-6 11:38:38

好像不行……
2楼给的代码还是不行……

愤怒的黄瓜 发表于 2009-8-6 13:55:29

其实,帮助里的例子用了也还是不行……

archonwang 发表于 2009-8-7 13:48:59

晕。这个多费劲啊。如果bug的状态变更就要求填写注释不就得了。。。。
没明白为什么一定要这几种状态?

不过你可以试试把这几个条件嵌套下再调调看。

lq1107 发表于 2009-8-8 13:11:07

放到Bug_CanPost里做判断。

橙子 发表于 2009-8-10 12:12:25

原帖由 archonwang 于 2009-8-7 13:48 发表 http://bbs.51testing.com/images/common/back.gif
晕。这个多费劲啊。如果bug的状态变更就要求填写注释不就得了。。。。
没明白为什么一定要这几种状态?

不过你可以试试把这几个条件嵌套下再调调看。



现在的问题不是判断,而是只要变更了状态,不论你有没有写备注,状态都会被保存。

lq1107 发表于 2009-8-10 22:37:43

你加我,msn:lq1107@163.com,对你一个字,笨。

james.zhong 发表于 2009-8-13 09:54:14

:lol 你不如写个循环,不输入内容就不给保存!
这样更简单些!

橙子 发表于 2009-8-13 17:53:53

试过了再说话。各位

橙子 发表于 2009-8-13 17:54:25

原帖由 lq1107 于 2009-8-10 22:37 发表 http://bbs.51testing.com/images/common/back.gif
你加我,msn:lq1107@163.com,对你一个字,笨。


这位。。算了。。。唉

橙子 发表于 2009-8-13 17:57:48

实现了。。。

Sub Defects_Bug_FieldChange(FieldName)
On Error Resume Next
   if fieldname="BG_STATUS"    and _
       (Bug_Fields("BG_STATUS").IsModified and _
         Bug_Fields("BG_STATUS").Value = "已否决") then
                Bug_Fields("BG_DEV_COMMENTS").IsRequired=true
      Defects_Bug_CanPost = False
      msgbox "请在注释中加上非错说明"
      Else
   Defects_Bug_CanPost = True
   Bug_Fields("BG_DEV_COMMENTS").IsRequired=false
      End If

On Error GoTo 0
End Sub

飘渺的风 发表于 2009-8-13 21:32:00

这需要看Bug_Fields("BG_STATUS").IsModified 就可以了么,2楼写的太复杂

lq1107 发表于 2009-8-15 20:55:47

你的还是会有问题。
页: [1]
查看完整版本: QC设置工作流脚本编辑器