ydht05 发表于 2008-5-22 22:56:33

有个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:55

用那么麻烦吗?直接用过滤器点一下不就OK了?

zte_boy 发表于 2008-5-23 14:27:54

给你个我自己写的脚本做参考,呵呵
    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:44

谢谢各位的回答

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

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

呵呵 还有高手路过看到的话 望不吝赐教 先谢啦

ydht05 发表于 2008-5-26 10:19:19

刚试了一下.List和.IsRequired是可以的 但.IsVisible和.FieldLabel不起作用
是TD做限制了 不能根据字段A的变化,实现 字段B的标签和是否可见或是否只读么?

joshfang 发表于 2008-5-26 14:18:06

呵呵,才看懂你的意思,看看这样能不能满足你的要求:

CHORD 发表于 2008-5-26 17:00:51

原帖由 ydht05 于 2008-5-26 10:19 发表 http://bbs.51testing.com/images/common/back.gif
刚试了一下.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:34

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:42

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:53

还是不行啊 我觉得应该不是那两个字段的问题 因为不光改为‘close’会隐藏,只要改变状态就会隐藏 改回new也还是隐藏的 只有按左上角【clear】按钮才会显示出来。(我新建的工程 贴在Defects_Bug_FieldChange(FieldName)里的) 高手帮忙再看看好不 谢啦

CHORD 发表于 2008-5-28 16:26:36

:L 会不会是你脚本写的有问题。。。。

ydht05 发表于 2008-5-29 09:26:11

是新建工程 把脚本直接贴进去的 没改啊(就加了个end if不然不让存)你在本地运行没问题?不会是我软件装的有问题吧:'(

testye 发表于 2008-6-16 23:38:12

学习一下,还没搞懂
页: [1]
查看完整版本: 有个TD的脚本问题想请教