Sub Initialize Dim ArrNsf As Variant Dim item As NotesItem '获得文档 context,因为此代理是一个$$QuerySaveAgent,所以$$QuerySaveAgent可以访问 Context文档上的项目。 Dim sess As New NotesSession Dim doc As NotesDocument Set doc = sess.DocumentContext '输出HTML页面的头部和标题: Print {<html>} Print { <head>} Print {<meta. http-equiv="Content-Type" content="text/html; charset=gb2312">} Print {<title>} Print "多数据库搜索" Print {title>} Print {head>} '设置HTML页面的背景颜色: Print {<body text="000000" bgcolor="f7f7f7">} '获得欲检索的数据库,存放在数组ArrNsf内: ArrNsf= doc.DatabaseName '如果没有输入检索条件,则输出提示信息: If Trim(Cstr(doc.Query(0)))="" Then Goto EmptyQuery End If Dim MatchDoc As NotesDocument Dim db As NotesDatabase, Dim collection As NotesDocumentCollection '下列循环从数组ArrNsf中取得欲检索的数据库进行处理: For nsfCount=0 To Ubound( ArrNsf ) SearchDB=ArrNsf(nsfCount) Set db = sess.GetDatabase("",SearchDB) '出现错误则转向: On Error Goto BadQuery '获得满足查询条件的记录集: Set collection = db.FTSearch(doc.Query(0),0) On Error Goto 0'输出数据库标题: Print "" Print db.title Print ""'输出该数据库中满足条件的记录个数: Print "There are "& Str$(collection.Count) &" matching documentsb>font><br>"
'下列循环从满足条件的记录集中读取记录并输出: For i%=1 To collection.Count Set MatchDoc = collection.GetNthDocument(i%) Print {<br><a href="http://www.chinaitpower.com/} &SearchDB &{/AllDocument/} & MatchDoc.UniversalID"&{?OpenDocument">} Print ""'如果文档包含Subject或Title,则输出Subject或Title: Set item =MatchDoc.GetFirstItem( "Subject" ) If ( item Is Nothing ) Then Set item = MatchDoc.GetFirstItem( "Title" ) End If If Not (item Is Nothing) Then Print ""& item.Name &": "& item.Text End If '如果文档包含Categories,则输出Categories: Set item = MatchDoc.GetFirstItem( "Categories" ) If Not (item Is Nothing) Then Print item.Name &": "& item.Text End If '输出文档产生日期和作者: createDate = MatchDoc.Created Print "Document create date:"&createDate Print " Authors: " Forall aAuthor In MatchDoc.Authors Print aAuthor End Forall Print " " Next Next Out: Print {body>html>} Exit Sub EmptyQuery: Print {<b>Search query can not be empty b>} Resume Out BadQuery: Print {<b>Query is not understandable: b>"} & doc.Query(0) & {"} Resume Out End Sub