1、LotusDomino环境下编写Web浏览器多数据库检索程序首页-LOTUS文章-LotusDomino环境下编写Web浏览器多数据库检索程序 随着计算机技术的日益普及,Internet/Intranet技术得到了更加广泛的应用,在世界范围的大量Web网点上以及公司内部的Web服务器上,都存放着大量的信息。为使这些信息得到的合理使用,Web服务器管理员应该为用户提供方便的信息检索方法。作为群件代表的Lotus Domino4.5集成了邮件处理、群件应用和Internet出版等功能,是Notes技术向InternetIntranet融合开放的里程碑式的产品。在继承以往产品全部优点与功能的基础上,
2、Domino将原先的Notes服务器提升为用途更广泛、使用更方便的InternetIntranet服务器。在Domino的帮助下用户能够快速构建安全可靠的Web网点,开发出管理和控制InternetIntranet的应用程序,并通过Web浏览器实现对各类数据和服务器的交互式访问。Domino还为用户提供了多种检索信息的方法,而且用户甚至不必编程。本文所要讨论的是通过简单编程实现在Web浏览器上对任意多个数据库同时进行检索的一种方法。下面给出具体的实现方法:1、创建数据库SiteSearch.NSF。2、在数据库SiteSearch.NSF上创建Form名称为 SearchForm。3、在Sea
3、rchForm上创建Field,内容如下:(1)DatabaseNames:类型为关键字,可编辑,允许多值,范围为:每行输入一个关键字。关键字列表框内输入允许搜索的数据库列表。假设有五个数据库允许用户检索,它们分别是:讨论板(Discuss.NSF)、规章制度(Institution.NSF)、技术论文(TechDocuments.NSF)、公司最新动态(CompanyNews.NSF)、简报及公告(Bulletin.NSF),则在DatabaseNames关键字列表框内可输入:讨论板 | Discuss.NSF规章制度| Institution.NSF技术论文| TechDocuments.
4、NSF公司最新动态 | CompanyNews.NSF简报及公告 | Bulletin.NSF(2)SearchString:类型为文本,可编辑。(3)$QuerySaveAgent :类型为文本,显示时计算,数值为textSearchQuerySaveAgent,隐藏。(4)SaveOptions:类型为文本,可编辑,默认值为“0”,隐藏。4、创建代理TextSearchQuerySaveAgent。运行代理时间指定为:从“操作”菜单中选择执行。指定代理操作的文档为:运行一次(可能使用命令)。代理程序的内容如下:Sub Initialize Dim ArrNsf As Variant Dim
5、 item As NotesItem 获得文档 context,因为此代理是一个$QuerySaveAgent,所以$QuerySaveAgent可以访问 Context文档上的项目。 Dim sess As New NotesSession Dim doc As NotesDocument Set doc = sess.DocumentContext 输出HTML页面的头部和标题: Print Print Print Print Print 多数据库搜索 Print Print 设置HTML页面的背景颜色: Print 获得欲检索的数据库,存放在数组ArrNsf内: ArrNsf= doc.
6、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
7、(,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) & matchingdocuments 下列循环从满足条件的记录集中读取记录并输出: For i% = 1 To collection.Count Set MatchDoc
8、 = collection.GetNthDocument(i%) Print 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,则输出Catego
9、ries: 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 NextOut:
10、Print Exit SubEmptyQuery: Print Search query can not be empty Resume OutBadQuery: Print Query is not understandable: & doc.Query(0) & Resume OutEnd Sub在本例中使用的FTSearch搜索查询内容是一个符合 Notes 全文检索规则的字符串,搜索内容可以是一个字词或多个字词。搜索内容可以包括 ? 和 * 通配符,并且可以由! (not)、& (and)、|(or)操作符混合。所检索的数据库可以有全文索引,也可以没有全文索引。如果没有全文索引,则搜索
11、速度会慢一些。运行本程序时,应先从浏览器中输入URL:http:/homeURL/SiteSearch.NSF/SearchForm?OpenForm,然后选择欲检索的数据库并输入检索条件,单击Submit按钮,则将列出所有符合检索条件的文档。版权所有2000LOTUS学习网是否同上首页-LOTUS文章-LotusDomino环境下编写Web浏览器多数据库检索程序 LotusDomino环境下编写Web浏览器多数据库检索程序随着计算机技术的日益普及,Internet/Intranet技术得到了更加广泛的应用,在世界范围的大量Web网点上以及公司内部的Web服务器上,都存放着大量的信息。为使这些
12、信息得到的合理使用,Web服务器管理员应该为用户提供方便的信息检索方法。作为群件代表的Lotus Domino4.5集成了邮件处理、群件应用和Internet出版等功能,是Notes技术向InternetIntranet融合开放的里程碑式的产品。在继承以往产品全部优点与功能的基础上,Domino将原先的Notes服务器提升为用途更广泛、使用更方便的InternetIntranet服务器。在Domino的帮助下用户能够快速构建安全可靠的Web网点,开发出管理和控制InternetIntranet的应用程序,并通过Web浏览器实现对各类数据和服务器的交互式访问。Domino还为用户提供了多种检索信
13、息的方法,而且用户甚至不必编程。本文所要讨论的是通过简单编程实现在Web浏览器上对任意多个数据库同时进行检索的一种方法。下面给出具体的实现方法:1、创建数据库SiteSearch.NSF。2、在数据库SiteSearch.NSF上创建Form名称为 SearchForm。3、在SearchForm上创建Field,内容如下:(1)DatabaseNames:类型为关键字,可编辑,允许多值,范围为:每行输入一个关键字。关键字列表框内输入允许搜索的数据库列表。假设有五个数据库允许用户检索,它们分别是:讨论板(Discuss.NSF)、规章制度(Institution.NSF)、技术论文(TechD
14、ocuments.NSF)、公司最新动态(CompanyNews.NSF)、简报及公告(Bulletin.NSF),则在DatabaseNames关键字列表框内可输入:讨论板 | Discuss.NSF规章制度| Institution.NSF技术论文| TechDocuments.NSF公司最新动态 | CompanyNews.NSF简报及公告 | Bulletin.NSF(2)SearchString:类型为文本,可编辑。(3)$QuerySaveAgent :类型为文本,显示时计算,数值为textSearchQuerySaveAgent,隐藏。(4)SaveOptions:类型为文本,可
15、编辑,默认值为“0”,隐藏。4、创建代理TextSearchQuerySaveAgent。运行代理时间指定为:从“操作”菜单中选择执行。指定代理操作的文档为:运行一次(可能使用命令)。代理程序的内容如下: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 = s
16、ess.DocumentContext 输出HTML页面的头部和标题: Print Print Print Print Print 多数据库搜索 Print Print 设置HTML页面的背景颜色: Print 获得欲检索的数据库,存放在数组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
17、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 输出该
18、数据库中满足条件的记录个数: Print There are & Str$(collection.Count) & matchingdocuments 下列循环从满足条件的记录集中读取记录并输出: For i% = 1 To collection.Count Set MatchDoc = collection.GetNthDocument(i%) Print Print 如果文档包含Subject或Title,则输出Subject或Title: Set item =MatchDoc.GetFirstItem( Subject ) If ( item Is Nothing ) Then Set
19、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.C
20、reated Print Document create date: &createDate Print Authors: Forall aAuthor In MatchDoc.Authors Print aAuthor End Forall Print Next NextOut: Print Exit SubEmptyQuery: Print Search query can not be empty Resume OutBadQuery: Print Query is not understandable: & doc.Query(0) & Resume OutEnd Sub在本例中使用的FTSearch搜索查询内容是一个符合 Notes 全文检索规则的字符串,搜索内容可以是一个字词或多个字词。搜索内容可以包括 ? 和 * 通配符,并且可以由! (not)、& (and)、|(or)操作符混合。所检索的数据库可以有全文索引,也可以没有全文索引。如果没有全文索引,则搜索速度会慢一些。运行本程序时,应先从浏览器中输入URL:http:/homeURL/SiteSearch.NSF/SearchForm?OpenForm,然后选择欲检索的数据库并输入检索条件,单击Submit按钮,则将列出所有符合检索条件的文档。版权所有2000LOTUS学习网
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1