发新话题
打印

[已解决] CQ级联菜单如何实现,测试了论坛上的方法,有些问题( 此文章被查看:422次,被回复:2篇!! )

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 "区", ""


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

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

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,谢谢!!


问题已经解决 [打开主题]
本主题的最佳答案为 [ 2 楼].



© 本文为 wylsySCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

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

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

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


最佳答案
该回答被楼主/管理员列为正解!



© 本文为 二黑SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

可以了,谢谢。
妈的,这个问题把我搞了一整天,吐血了



© 本文为 wylsySCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

发新话题