加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区 | 中文化荣誉殿堂

查看完整版本: CQ级联菜单如何实现,测试了论坛上的方法,有些问题

wylsy 2008-1-4 17:45

CQ级联菜单如何实现,测试了论坛上的方法,有些问题

需求:两个下拉列表,“模块”和“子模块”,都是short_string.
模块中有“模块1”,“模块2”
子模块中有“模块1-1”,“模块1-2”,“模块2—1”,“模块2-2”
当选中“模块1”时,在子模块中只出现“模块1-1”,“模块1-2”两个选项
当选中“模块2”时,在子模块中只出现“模块2-1”,“模块2-2”两个选项

我参考的:
根据IBM技术支持网站上的例子,省市区关联的需求实现了。
代码(VBScript)如下:
省字段,常量列表:省1、省2
市字段,choicelist hook:
       clip_image002.jpg (11.74 KB)

区字段,choicelist hook:
       clip_image002.jpg (11.74 KB)

省字段,valuechanged hook:
     SetFieldValue "市(县)", ""
市字段,valuechanged hook:
     SetFieldValue "区", ""


参考网页链接:[url]http://www.ibm.com/developerworks/rational/library/3864.html[/url]

我写的代码:
“模块”值改变时:

Sub ModuleName_ValueChanged(fieldname)
  SetFieldValue "ModuleName", ""
End Sub

“子模块”的ChoiceList

Sub ChildModuleName_ChoiceList(fieldname, choices)
    select case GetFieldValue("ModuleName").GetValue
         case "模块1"
                choices.AddItem("模块1_1")
                choices.AddItem("模块1_2")
        case "模块2"
                choices.AddItem("模块2_1")
                choices.AddItem("模块2_2")               
         case else        
   end select
End Sub

这样做出的问题是,不管我把模块名字选为哪个,子模块的下拉表中都是什么都没有
然后我把模块的默认值改为“模块1”,这样的话进去后子模块的下拉表中有“模块1-1”,“模块1-2”两个选项,但是我把模块改为“模块2”,子模块的下拉表中还是“模块1-1”,“模块1-2”这两个选项。
我想大概是没有一个触发条件,应该是需要模块值改变时触发的,是不是该把代码都写在Sub ModuleName_ValueChanged(fieldname)中,可是我不会。
而且我只会一点VB,完全不会PERL,希望有人能帮下我,尽量用VB,谢谢!!

二黑 2008-1-4 18:07

将字段ChildModuleName的Choic List脚本设置为Recalculate Choice List.

右键选择该字段的Choice List, Hook Properties...

[[i] 本帖最后由 二黑 于 2008-1-4 18:08 编辑 [/i]]

wylsy 2008-1-4 18:53

可以了,谢谢。
妈的,这个问题把我搞了一整天,吐血了
页: [1]
查看完整版本: CQ级联菜单如何实现,测试了论坛上的方法,有些问题