51Testing软件测试论坛

标题: 有个TD的脚本问题想请教 [打印本页]

作者: ydht05    时间: 2008-5-22 22:56
标题: 有个TD的脚本问题想请教
各位有个TD的问题想请教
TD可否编写脚本 新建时根据字段A的值 判断字段B是否可见
我们公司想用同一个project 管理X、Y、Z三类东西,(X、Y、Z所需字段不同 都显示在添加界面会很乱)
1、能否设置字段A  新建时 默认只显示字段A 当A=X,则显示出X用字段;A=Y,显示Y用字段;A=Z显示Z用字段。用不到的字段都隐藏。
2、有些长字段需要复用如description字段 能不能A=X时,description字段名称显示X所需名称;A=.......

呵呵 刚开始用TD 脚本也不会 麻烦各位高手了
作者: joshfang    时间: 2008-5-23 13:33
用那么麻烦吗?直接用过滤器点一下不就OK了?
作者: zte_boy    时间: 2008-5-23 14:27
给你个我自己写的脚本做参考,呵呵
    Select Case Bug_Fields("BG_PROJECT").Value
        Case "酒店"
            Bug_Fields("BG_USER_03").List = Lists("酒店版本")
        Case "机票"
            Bug_Fields("BG_USER_03").List = Lists("机票版本")
        Case Else
            Bug_Fields("BG_USER_03").List = Lists("其他")
    End Select
作者: ydht05    时间: 2008-5-24 00:42
谢谢各位的回答

to joshfang :在查找属于XYZ类时用筛选可以 但是添加界面怎么筛选条件啊 主要是除了BUG还管理一些工作上的数据,字段都堆一起很乱。

to zte_boy:这个是解决问题2的方法么 呵呵我周一去试试 谢谢

呵呵 还有高手路过看到的话 望不吝赐教 先谢啦
作者: ydht05    时间: 2008-5-26 10:19
刚试了一下.List和.IsRequired是可以的 但.IsVisible和.FieldLabel不起作用
是TD做限制了 不能根据字段A的变化,实现 字段B的标签和是否可见或是否只读么?
作者: joshfang    时间: 2008-5-26 14:18
呵呵,才看懂你的意思,看看这样能不能满足你的要求:
作者: CHORD    时间: 2008-5-26 17:00
原帖由 ydht05 于 2008-5-26 10:19 发表
刚试了一下.List和.IsRequired是可以的 但.IsVisible和.FieldLabel不起作用
是TD做限制了 不能根据字段A的变化,实现 字段B的标签和是否可见或是否只读么?


我试了一下,.IsVisible可以起作用的
我在Defects_Bug_FieldChange(FieldName)里加的代码
If FieldName = "BG_STATUS" then

       if   Fields("BG_STATUS").Value = "Closed" then
       SetFieldApp "BG_SUBJECT", False, False, 0, 0
       else
        SetFieldApp "BG_SUBJECT", TRUE, TRUE, 0, 5

       end if
有效果的,可以根据字段内容改变界面的,不知道对你有没有参考价值




Sub SetFieldApp( FieldName, Vis, Req, PNo, VOrder )

  With Bug_Fields(FieldName)
    .IsVisible = Vis
    .IsRequired = Req
    .PageNo = PNo
    .ViewOrder = VOrder
  End With
End Sub
作者: ydht05    时间: 2008-5-27 10:30
to CHORD:
恩 是这个意思 但是 把你的脚本考过去后BG_STATUS值不光Closed执行SetFieldApp "BG_SUBJECT", False, False, 0, 0 。只要BG_STATUS状态改变,BG_SUBJECT字段就会隐藏,改不回可见。不知是我贴的位置不对还是脚本的问题,麻烦再帮忙看一下把  谢了。

to joshfang:
多谢关注,但好像还没大理解我的意思,我是想字段A变化的条件下实现字段B是否可见。谢了
作者: CHORD    时间: 2008-5-28 09:37
SetFieldApp "BG_SUBJECT", False, False, 0, 0
最后两个参数是设置字段在界面显示位置的,要根据你的实际情况来修改,不能有位置重合的。

简单点的话,只是控制是否可见,是否必填的话可以改成
  If FieldName = "BG_STATUS" then

       if   Fields("BG_STATUS").Value = "Closed" then
       SetFieldApp "BG_SUBJECT", False,FALSE
       else
        SetFieldApp "BG_SUBJECT", TRUE,TRUE

       end if


Sub SetFieldApp( FieldName, Vis, Req )

  With Bug_Fields(FieldName)
    .IsVisible = Vis
.IsRequired = Req

  End With
End Sub
作者: ydht05    时间: 2008-5-28 15:11
还是不行啊 我觉得应该不是那两个字段的问题 因为不光改为‘close’会隐藏,只要改变状态就会隐藏 改回new也还是隐藏的 只有按左上角【clear】按钮才会显示出来。(我新建的工程 贴在Defects_Bug_FieldChange(FieldName)里的) 高手帮忙再看看好不 谢啦
作者: CHORD    时间: 2008-5-28 16:26
会不会是你脚本写的有问题。。。。
作者: ydht05    时间: 2008-5-29 09:26
是新建工程 把脚本直接贴进去的 没改啊(就加了个end if不然不让存)你在本地运行没问题?不会是我软件装的有问题吧
作者: testye    时间: 2008-6-16 23:38
学习一下,还没搞懂




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2