20 12
发新话题
打印

[求助] 怎样实现选择一个组之后owner会相应变化?( 此文章被查看:1558次,被回复:19篇!! )

怎样实现选择一个组之后owner会相应变化?

各位大虾,我有两个字段group,owner,怎样能实现我在group里选择一个组,owner里就出现这个组的成员列表?



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

TOP

应该可以去脚本去判断吧?  或者作成字段依存关系!!



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

TOP

这个其实察看一下API帮助就知道了,可以参考下面代码,
把这段代码放在owner的Choice List上,
        Dim groupName
        Dim sessionObj
        Dim queryObj
        Dim filterObj
        Dim resultSetObj
       
        groupName = GetFieldValue("group").GetValue()
       
        Set sessionObj = GetSession()
        ' start building a query of the users
        Set queryObj = sessionObj.BuildQuery("users")
        ' have the query return the desired field of the user object(s)
        queryObj.BuildField ("login_name")
       
        ' filter for members of group groupName (whatever group you want)
        Set filterObj = queryObj.BuildFilterOperator(AD_BOOL_OP_AND)
        filterObj.BuildFilter "groups", AD_COMP_OP_EQ, groupName
        Set resultSetObj = sessionObj.BuildResultSet(queryObj)
       
        ' run it
        resultSetObj.Execute
       
        Do While resultSetObj.MoveNext = AD_SUCCESS
             choices.AddItem resultSetObj.GetColumnValue(0)
        Loop



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

TOP

回复 #3 yunshan 的帖子

多谢大虾阿~~能帮忙写个Perl的脚本看看嘛~~~万分感谢阿:)

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

TOP

目前我使用的根据项目选择的一段perl脚本,供参考
                      $session = $entity->GetSession();
                # 取得项目编号
                $strProjectName = $entity->GetFieldValue("ucm_project")->GetValue();
                @strProjectNames = ($strProjectName);
                # 根据项目编号取得用户       
                # BuildQuery()中的参数是entitydef_name ,指一个record type的名字,即设定查询的记录类别
                $qryDef = $session->BuildQuery("Project_Info");
                $qryDef->BuildField("prjgroup");
                # 设置“与”操作类型
                $operator = $qryDef->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND);
                $operator->BuildFilter("ucm_project", $CQPerlExt::CQ_COMP_OP_EQ,\@strProjectNames);
                # 结果集
                $resultsetObj = $session->BuildResultSet($qryDef);
                $resultsetObj->EnableRecordCount();
                # 执行查询结果
                $resultsetObj->Execute();
                # 取得所有缺陷分配人员,以逗号隔开
                if($resultsetObj->GetRecordCount()>0){
                                for($i=0;$i<$resultsetObj->GetRecordCount();$i++){
                                        $resultsetObj->MoveNext();
                            $strUser = $resultsetObj->GetColumnValue(1);
                                        if($i > 0){
                                                $result = $result . "," . $strUser;
                                        }else{
                                                $result = $strUser;
                                        }
                                }
                                $session->OutputDebugString("\nresult = ".$result);
            }
本帖最近评分记录

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

TOP

回复 #5 happygod 的帖子

我现在用下面的脚本:
my $session = $entity->GetSession();

# start building a query of the users

my $queryDefObj = $session->BuildQuery("users");

# have the query return the desired field of the user object(s)

$queryDefObj->BuildField("Login_Name");

# filter for members of group "MyGroup" (whatever group you want)
my $filterOp = $queryDefObj->BuildFilterOperator(
$CQPerlExt::CQ_BOOL_OP_AND);
my @array = ("DEV");
$filterOp->BuildFilter("groups", $CQPerlExt::CQ_COMP_OP_EQ, \@array);
my $resultSetObj = $session->BuildResultSet($queryDefObj);


# run it

$resultSetObj->Execute();

# add each value in the returned column to the choicelist

while ($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) {
push(@choices,$resultSetObj->GetColumnValue(1));
}

结果owner处只能显示出“DEV”组的人员名单,别的组的不行,哪位高人帮忙看看,对脚本一窍不通阿:(

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

TOP

my @array = ("DEV");
就限制了选择group="DEV"的user用户
这里做个修改,改成当前所选的group值$entity->GetFieldValue("group")->GetValue()
当然choice list挂钩属性要勾选重新计算选项列表

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

TOP

回复 #7 happygod 的帖子

出来了出来了,多谢多谢~

刚在测试库发现一个问题,就是我第一次选择组时,对应owner是这个组的成员。但是我不提交,选择另一个组,那么owner字段就出现这两个组的成员。能修改到让他就显示当前组成员么?

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

TOP

回复 #8 kafei_dou 的帖子

把Owner的Choices List属性设置为Recalculate Chioces List试试~

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

TOP

设了,没用阿:(只要没提交,换一个组,owner就显示两个组的:(
还有没有别的方法阿~~~

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

TOP

 20 12
发新话题