悬赏主题
[已解决] 这里的提问人员很少愿意采取悬赏的方式啊,我来一次补充资料谁能把下面的代码优化成不输入管理员的用户名密码。否则每次修改admin的密码就需要修改schema,麻烦的很。解决了问题 给20分的奖励。 过滤用户名字段的显示内容。 设置一个字段,REFERENCE类型,REFERENCE to 选择 user。Choice list选择basic。 A、过滤该字段只显示某个group里面的用户列表。 Dim i set adminSession = CreateObject("ClearQuest.AdminSession") adminSession.Logon "admin", "password", "ss" '管理员用户名,密码和Maintenance Tool中的Schema名称。 set GroupObj = adminSession.GetGroup("Mygroups") '取MyGroup组的用户 set UserObj=GroupObj.Users numUsers = UserObj.count DO While i<numUsers set Progammer= UserObj.Item(i) ProgammerName = Progammer.Name choices.additem ProgammerName i=i+1 loop
最佳答案 ( 回答者: yunshan )
要是从楼主的途径来进行,这个问题很难解决,在Admin Session 登录之前,
是可以获得Admin的密码,但这个密码是经过加密的, 即使得到也没有多大的用处, 但是如果只想实现这个功能,有两种方式: 1. 就是使用楼下的方法, 这种方法简单明了。 2. 直接使用SQL查询,与1有相似之处: Dim Qry Dim sessionObj Dim ResultSet Set sessionObj = GetSession '这里表的关系太复杂了,不建议自己去写,在客户端中建个查询,拷贝出相应的语句就可以了 '如果想查询其他用户组的,把其中的developer做相应的改动就可以了 Qry = "select distinct T1.dbid,T1.fullname,T4.name from ( ( users T1 LEFT OUTER JOIN [select * from parent_child_links where parent_fielddef_id = 16777310 ]. AS T4mm ON T1.dbid = T4mm.parent_dbid ) LEFT OUTER JOIN groups T4 ON T4mm.child_dbid = T4.dbid ) where T1.dbid <> 0 and (T4.name = 'developer') " Set ResultSet = sessionObj.BuildSQLQuery(Qry) ResultSet.Execute Do While ResultSet.MoveNext = AD_SUCCESS '注意,查询结果是的列标从1开始的 choices.additem ResultSet.GetColumnValue(2) Loop [ 本帖最后由 yunshan 于 2006-12-20 13:04 编辑 ] |
|
|
|



