ClearQuest的动态关联

来源:互联网 发布:linux版eclipse下载 编辑:程序博客网 时间:2024/06/10 01:52
   1.   创建Record types –Stateless
1、 在Record Types –Stateless中创建一个type,其名字叫:“项目”,其DBName为“item”。
2、 然后在项目中的fields中新建一个field,取名字为“item_name”,其type选择为SHORT_STRING。
3、 在项目的forms中选择把该field放到窗体上。
 
 
4、 在Record Types –Stateless中创建一个type,其名字叫:“一级菜单”,其DBName为“one­_menu”。
5、 然后在项目中的fields中新建一个field,取名字为:“model­_one_name”,其type选择为SHORT_STRING。另外再创建一个type其field name为:“item­_name”;type为:REFERENCE,其Reference To为:“项目”。
6、 在项目的forms中选择把该field放到窗体上。
 
 
7、 在Record Types –Stateless中创建一个type,其名字叫: “二级菜单”,其DBName为:“two­_menu”。
8、 然后在项目中的fields中新建一个field,取名字为:“model­_two_name”,其type选择为SHORT_STRING。另外再创建一个type其field name为:“model­_one_name”;type为:REFERENCE,其Reference To为:“一级菜单”。
9、 在项目的forms中选择把field放到窗体上。
 
 
2.创建Record types:
    1、新建一个field,其field name为:“项目”,type为:REFERENCE,其Reference To为:“项目”。其choice list为BASIC,点Basic的右键,点Hook properties;在出现的对话框中选中:Recalculate choice List.其代码如下:
       Dim sessionObj
            Dim queryObj
            Dim filterObj
            Dim resultSetObj
            Dim prj_name
            Dim curSession
 
            Set sessionObj = GetSession()
 
            Set queryObj = sessionObj.BuildQuery("item")
            queryObj.BuildField ("item_name")      
            Set resultSetObj = sessionObj.BuildResultSet(queryObj)
 
resultSetObj.Execute   
 
            Do While resultSetObj.MoveNext = AD_SUCCESS
             choices.AddItem resultSetObj.GetColumnValue(1)
SessionObj.OutputDebugString resultSetObj.GetColumnValue(1)
            Loop
 
2、新建一个field,其field name为:“一级菜单”,type为:REFERENCE,其Reference To为:“一级菜单”。其choice list为BASIC,点Basic的右键,点Hook properties;在出现的对话框中选中:Recalculate choice List.其代码如下:
 Dim sessionObj
    Dim queryObj
    Dim filterObj
    Dim resultSetObj
    Dim prj_name
 
    Set sessionObj = GetSession()
    prj_name = GetFieldValue("item").GetValue()
 
    Set queryObj = sessionObj.BuildQuery("one_menu")
 
    queryObj.BuildField ("model_one_menu")
 
    Set filterObj = queryObj.BuildFilterOperator(AD_BOOL_OP_AND)
    filterObj.BuildFilter "pm", AD_COMP_OP_EQ, prj_name
    Set resultSetObj = sessionObj.BuildResultSet(queryObj)
 
    resultSetObj.Execute
 
    Do While resultSetObj.MoveNext = AD_SUCCESS
        choices.AddItem resultSetObj.GetColumnValue(1)
        SessionObj.OutputDebugString resultSetObj.GetColumnValue(1)
    Loop
 
3、新建一个field,其field name为:“二级菜单”,type为:REFERENCE,其Reference To为:“二级菜单”。其choice list为BASIC,点Basic的右键,点Hook properties;在出现的对话框中选中:Recalculate choice List.其代码如下:
  Dim sessionObj
    Dim queryObj
    Dim filterObj
    Dim resultSetObj
    Dim prj_name
 
    Set sessionObj = GetSession()
    prj_name = GetFieldValue("one_menu").GetValue()
 
    Set queryObj = sessionObj.BuildQuery("two_menu")
 
    queryObj.BuildField ("model_two_menu")
 
    Set filterObj = queryObj.BuildFilterOperator(AD_BOOL_OP_AND)
    filterObj.BuildFilter "one_menu", AD_COMP_OP_EQ, prj_name
    Set resultSetObj = sessionObj.BuildResultSet(queryObj)
 
    resultSetObj.Execute
 
    Do While resultSetObj.MoveNext = AD_SUCCESS
        choices.AddItem resultSetObj.GetColumnValue(1)
        SessionObj.OutputDebugString resultSetObj.GetColumnValue(1)
    Loop