代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Domino
】
使用lotusscript获得群组中的用户列表_lotus notes
作者:
/ 发布于
2016/8/5
/
1339
Declarations Dim count As Integer Dim persons List As String Dim groups List Dim tg As Integer Dim xy As Integer Sub Initialize The advantate of this code is that we can process any nested groups without any size limitaions. Dim session As New notessession Dim ws As New notesuiworkspace Dim uidoc As NotesUIDocument Dim db As notesdatabase Dim namesdb As notesdatabase Dim groupdoc As notesdocument Dim groupview As notesview Dim insidegroupdoc As notesdocument Dim insidegroups As notesview Dim doc As notesdocument Dim curview As notesview Dim newlist List Set db=session.CurrentDatabase Set namesdb=session.GetDatabase(db.Server,"names.nsf") Set groupview=namesdb.GetView("($Users)") Set insidegroups=namesdb.getview("($VIMGroups)") Set curview=db.getview("second") Set uidoc=ws.CurrentDocument Set doc=curview.getfirstdocument you can set your own doc here. This the backend document for the currently opened uidoc. You can find other alternatives to run this agent. groupName$ =uidoc.FieldGetText("names") Here we are entering the group or person names. Dim ritem As Variant Set ritem = doc.GetFirstItem( "all" ) Here we are going to store the group extracted peoples name Call uidoc.FieldSetText("saveoptions","1") Call uidoc.FieldSetText("Total","") Here we will list the total participant list. Call uidoc.FieldSetText("all","") making the field null to print a new value. Call uidoc.Save Call uidoc.reload Call uidoc.save Forall entry In doc.names gtype=group(entry) Checking whether the entry is a group or People. If gtype="Group" Then tg=tg+1 groups(tg)=entry Else Call addtolist(entry) If entry is a person, then adding to a list called People. End If End Forall now we have got two lists one is person and another one is group This loop will returns you a list in the peoples view. and remove the each group entry after processing. xy=0 Do Until xy = tg xy=xy+1 et=groupget(groupview,groups(xy)) Erase groups(xy) Loop If ( ritem.Type <> RICHTEXT ) Then Exit Sub End If Iam adding the list to another array, because iam not getting the list with unique values. You can try some other code if you can retruns the list as unique Dim nar() As String Forall nvals In Persons newcount=newcount+1 Redim Preserve nar(newcount) nar(newcount)=Persons(newcount) End Forall Then make the array as unique finarray=Arrayunique(nar,0) Now print the values one by one in an array. See if you want to process the contents of this rtfield. Use the item.values and split the values using newline. So you will get an array. Forall fins In finarray If fins <> "" Then fin=fin+1 Call ritem.Appendtext(fins) Call ritem.addnewline(1) End If End Forall This code will close the doc without saving and re-open it. Call doc.ReplaceItemValue("Total",Cstr(fin)) Call doc.save(True,True) doc.saveoptions="0" Call uidoc.close Call ws.EditDocument(False,doc) You can use the notesname class to format the contents and use the evaluate to sort the contents. The code you can get it from my Other agent in the same db. End Sub Function group(entry As Variant) As String Getting first 3 characters will give u an idea whether it is a group or person. In our case every user will have a heirarhical name. In your case you can use ur own code to get this info. If Left(entry,3)="CN=" Then group="Person" Else group="Group" End If End Function Function addtolist(entry As Variant) count=count+1 If Isarray(entry) Then In some rare cases by mistake or so we have two entries in a document. So run this check before proceed. Forall ad In entry persons(count)=ad End Forall Else persons(count)=entry End If End Function Function groupget(gview As notesview,entry As Variant) As String here first we are getting group name. Then get the group document and get the members for the group. Then add the person entries to Person array. Rest group entries will add to group list. Set groupdoc=gview.GetDocumentByKey(entry,True) If Not groupdoc Is Nothing Then allentries=groupdoc.GetItemValue("members") Forall ent In allentries Set pdoc=gview.GetDocumentByKey(entry,True) If Left(ent,3)="CN=" Then count=count+1 persons(count)=ent Else tg=tg+1 groups(tg)=ent ab=ab+1 End If End Forall End If End Function
试试其它关键字
lotusscript
同语言下
.
LotusDomino页面自动注册用户
.
多 Notes 文档中附件批量汇总到 Notes 文档中
.
多 Notes 文档中附件批量导出到本地系统
.
使用lotusscript获得群组中的用户列表_lotus notes
.
利用程序增加角色
.
关闭计算机
.
检验数字域
.
利用程序获取计算机名称及登陆用户名
.
清理收件夹的代理Code for CleanupInbox agent
.
邮箱中显示中文等价名
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3