Domino中使用LotusScript代理获取多值域的值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用LotusScript获取多值域的值
原理:文档中的域值是数组形式的。
多值域的值类似于一行多列的数组,下标从0开始。
假定域名为Employee,类型为多值文本域,文档中此域的值为:james,robin,alfred。
计划使用LS的得到返回值为:jamesrobinalfred。
方法1、直接获取
strEmployee = doc.Employee(0) +doc.Employee(1) +doc.Employee(2)
方法2、使用Evaluate声明
Dim strEmployee AsVariant
Const NotesMacro$ = "@Implode(Employee)"
strEmployee = Evaluate(NotesMacro$,doc)
MsgBoxCStr(strEmployee(0))
方法3、使用GetItemValue方法
Dim tname AsVariant
tname = backdoc.GetItemValue("TComm3Name")
MsgBox tname
ForAll o In tname
MsgBoxCStr(o)
EndForAll
方法4、转化为数组处理
Dim i,j AsInteger
i = 0
arrEmployee = doc.GetItemValue("Employee ")
For j=LBound(arrEmployee) ToUBound(arrEmployee)
MsgBoxCStr(arrEmployee(i))
i=i+1
Next
------------------例子--------------
Dim WebStartDb As NotesDatabase '系统启动数据库
Dim LinkDoc As NotesDocument '系统启动库中的链结文档
Set WebStartDb=s.Getdatabase("", "weboa\woastart.nsf")
Set LinkDoc = WebStartDb.GetDocumentByUNID(backdoc.DocID(0)) '根据链结文档ID从系统启动库中取链结文档
IfNot LinkDoc IsNothingThen
Dim arrEmployee AsVariant
Dim strTComm3Name AsString
Dim z,j AsInteger
z = 0
strTComm3Name=""
arrEmployee = backdoc.GetItemValue("TComm3Name")
For j=LBound(arrEmployee) ToUBound(arrEmployee)
'MsgBox "111:" & CStr(arrEmployee(z))
strTComm3Name= strTComm3Name + CStr(arrEmployee(z))+";"
z=z+1
Next
'MsgBox "strTComm3Name:" & strTComm3Name
EndIf
LinkDoc.IsTCommm=strTComm3Name
Call LinkDoc.Save(True,True)。