LotusDomino环境下编写Web浏览器多数据库检索程序.docx

上传人:b****6 文档编号:5634916 上传时间:2022-12-29 格式:DOCX 页数:11 大小:20.68KB
下载 相关 举报
LotusDomino环境下编写Web浏览器多数据库检索程序.docx_第1页
第1页 / 共11页
LotusDomino环境下编写Web浏览器多数据库检索程序.docx_第2页
第2页 / 共11页
LotusDomino环境下编写Web浏览器多数据库检索程序.docx_第3页
第3页 / 共11页
LotusDomino环境下编写Web浏览器多数据库检索程序.docx_第4页
第4页 / 共11页
LotusDomino环境下编写Web浏览器多数据库检索程序.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

LotusDomino环境下编写Web浏览器多数据库检索程序.docx

《LotusDomino环境下编写Web浏览器多数据库检索程序.docx》由会员分享,可在线阅读,更多相关《LotusDomino环境下编写Web浏览器多数据库检索程序.docx(11页珍藏版)》请在冰豆网上搜索。

LotusDomino环境下编写Web浏览器多数据库检索程序.docx

LotusDomino环境下编写Web浏览器多数据库检索程序

首页-->LOTUS文章-->LotusDomino环境下编写Web浏览器多数据库检索程序  

  随着计算机技术的日益普及,Internet/Intranet技术得到了更加广泛的应用,在世 

界范围的大量Web网点上以及公司内部的Web服务器上,都存放着大量的信息。

为使这些信 

息得到的合理使用,Web服务器管理员应该为用户提供方便的信息检索方法。

作为群件代 

表的LotusDomino 

4.5集成了邮件处理、群件应用和Internet出版等功能,是Notes技术向Internet/ 

Intranet融合开放的里程碑式的产品。

在继承以往产品全部优点与功能的基础上,Domino 

将原先的Notes服务器提升为用途更广泛、使用更方便的Internet/Intranet服务器。

在 

Domino的帮助下用户能够快速 

构建安全可靠的Web网点,开发出管理和控制Internet/Intranet的应用程序,并通过Web 

浏览器实现对各类数据和服务器的交互式访问。

Domino还为用户提供了多种检索信息的方 

法,而且用户甚至不必编程。

本文所要讨论的是通过简单编程实现在Web浏览器上对任意 

多个数据库同时进行检 

索的一种方法。

 

  下面给出具体的实现方法:

 

  1、创建数据库SiteSearch.NSF。

 

  2、在数据库SiteSearch.NSF上创建Form名称为SearchForm。

 

  3、在SearchForm上创建Field,内容如下:

 

  

(1)DatabaseNames:

类型为关键字,可编辑,允许多值,范围为:

每行输入一个关 

键字。

关键字列表框内输入允许搜索的数据库列表。

 

  假设有五个数据库允许用户检索,它们分别是:

讨论板(Discuss.NSF)、规章制度 

(Institution.NSF)、技术论文(TechDocuments.NSF)、公司最新动态( 

CompanyNews.NSF)、简报及公告(Bulletin.NSF),则在DatabaseNames关键字列表框内 

可输入:

 

  讨论板|Discuss.NSF 

  规章制度|Institution.NSF 

  技术论文|TechDocuments.NSF 

  公司最新动态|CompanyNews.NSF 

  简报及公告|Bulletin.NSF 

  

(2)SearchString:

类型为文本,可编辑。

 

  (3)$$QuerySaveAgent:

类型为文本,显示时计算,数值为textSearchQuerySaveA 

gent,隐藏。

 

  (4)SaveOptions:

类型为文本,可编辑,默认值为“0”,隐藏。

 

  4、创建代理TextSearchQuerySaveAgent。

运行代理时间指定为:

从“操作”菜单中 

选择执行。

指定代理操作的文档为:

运行一次(可能使用@命令)。

 

  代理程序的内容如下:

 

  SubInitialize 

  DimArrNsfAsVariant 

  DimitemAsNotesItem 

  '获得文档context,因为此代理是一个$$QuerySaveAgent,所以$$QuerySaveAgent 

可以访问Context文档上的项目。

 

  DimsessAsNewNotesSession 

  DimdocAsNotesDocument 

  Setdoc=sess.DocumentContext 

  '输出HTML页面的头部和标题:

 

  Print{} 

  Print{} 

  Print{

charset=gb2312">} 

  Print{} </p><p>  Print"多数据库搜索" </p><p>  Print{

  Print{} 

  '设置HTML页面的背景颜色:

 

  Print{

  '获得欲检索的数据库,存放在数组ArrNsf内:

 

  ArrNsf=doc.DatabaseName 

  '如果没有输入检索条件,则输出提示信息:

 

  IfTrim(Cstr(doc.Query(0)))=""Then 

  GotoEmptyQuery 

  EndIf 

  DimMatchDocAsNotesDocument 

  DimdbAsNotesDatabase, 

  DimcollectionAsNotesDocumentCollection 

  '下列循环从数组ArrNsf中取得欲检索的数据库进行处理:

 

  FornsfCount=0ToUbound(ArrNsf) 

  SearchDB=ArrNsf(nsfCount) 

  Setdb=sess.GetDatabase("",SearchDB) 

  '出现错误则转向:

 

  OnErrorGotoBadQuery 

  '获得满足查询条件的记录集:

 

  Setcollection=db.FTSearch(doc.Query(0),0) 

  OnErrorGoto0 

  '输出数据库标题:

 

  Print"


  Printdb.title 

  Print"


  '输出该数据库中满足条件的记录个数:

 

  Print"Thereare"&Str$(collection.Count)&"matching 

documents

  '下列循环从满足条件的记录集中读取记录并输出:

 

  Fori%=1Tocollection.Count 

  SetMatchDoc=collection.GetNthDocument(i%) 

  Print{

&{?

OpenDocument">} 

  Print"

  '如果文档包含Subject或Title,则输出Subject或Title:

 

  Setitem=MatchDoc.GetFirstItem("Subject") 

  If(itemIsNothing)Then 

  Setitem=MatchDoc.GetFirstItem("Title") 

  EndIf 

  IfNot(itemIsNothing)Then 

  Print""&item.Name&":

"&item.Text 

  EndIf 

  '如果文档包含Categories,则输出Categories:

 

  Setitem=MatchDoc.GetFirstItem("Categories") 

  IfNot(itemIsNothing)Then 

  Printitem.Name&":

"&item.Text 

  EndIf 

  '输出文档产生日期和作者:

 

  createDate=MatchDoc.Created 

  Print"Documentcreatedate:

"&createDate 

  Print"Authors:

  ForallaAuthorInMatchDoc.Authors 

  PrintaAuthor 

  EndForall 

  Print"

  Next 

  Next 

  Out:

 

  Print{} 

  ExitSub 

  EmptyQuery:

 

  Print{Searchquerycannotbeempty

  ResumeOut 

  BadQuery:

 

  Print{Queryisnotunderstandable:

"}&doc.Query(0)&{"} 

  ResumeOut 

  EndSub 

  在本例中使用的FTSearch搜索查询内容是一个符合Notes全文检索规则的字符串, 

搜索内容可以是一个字词或多个字词。

搜索内容可以包括?

和*通配符,并且可以由 

!

(not)、&(and)、|(or) 

操作符混合。

所检索的数据库可以有全文索引,也可以没有全文索引。

如果没有全文索引 

,则搜索速度会慢一些。

运行本程序时,应先从浏览器中输入URL:

http:

//homeURL/Site 

Search.NSF/SearchForm?

OpenForm,然后选择欲检索的数据库并输入检索条件,单击 

Submit按钮,则将列出所有 

符合检索条件的文档。

 

版权所有2000 LOTUS学习网

是否同上

首页-->LOTUS文章-->LotusDomino环境下编写Web浏览器多数据库检索程序

   LotusDomino环境下编写Web浏览器多数据库检索程序 

  随着计算机技术的日益普及,Internet/Intranet技术得到了更加广泛的应用,在世 

界范围的大量Web网点上以及公司内部的Web服务器上,都存放着大量的信息。

为使这些信 

息得到的合理使用,Web服务器管理员应该为用户提供方便的信息检索方法。

作为群件代 

表的LotusDomino 

4.5集成了邮件处理、群件应用和Internet出版等功能,是Notes技术向Internet/ 

Intranet融合开放的里程碑式的产品。

在继承以往产品全部优点与功能的基础上,Domino 

将原先的Notes服务器提升为用途更广泛、使用更方便的Internet/Intranet服务器。

在 

Domino的帮助下用户能够快速 

构建安全可靠的Web网点,开发出管理和控制Internet/Intranet的应用程序,并通过Web 

浏览器实现对各类数据和服务器的交互式访问。

Domino还为用户提供了多种检索信息的方 

法,而且用户甚至不必编程。

本文所要讨论的是通过简单编程实现在Web浏览器上对任意 

多个数据库同时进行检 

索的一种方法。

 

  下面给出具体的实现方法:

 

  1、创建数据库SiteSearch.NSF。

 

  2、在数据库SiteSearch.NSF上创建Form名称为SearchForm。

 

  3、在SearchForm上创建Field,内容如下:

 

  

(1)DatabaseNames:

类型为关键字,可编辑,允许多值,范围为:

每行输入一个关 

键字。

关键字列表框内输入允许搜索的数据库列表。

 

  假设有五个数据库允许用户检索,它们分别是:

讨论板(Discuss.NSF)、规章制度 

(Institution.NSF)、技术论文(TechDocuments.NSF)、公司最新动态( 

CompanyNews.NSF)、简报及公告(Bulletin.NSF),则在DatabaseNames关键字列表框内 

可输入:

 

  讨论板|Discuss.NSF 

  规章制度|Institution.NSF 

  技术论文|TechDocuments.NSF 

  公司最新动态|CompanyNews.NSF 

  简报及公告|Bulletin.NSF 

  

(2)SearchString:

类型为文本,可编辑。

 

  (3)$$QuerySaveAgent:

类型为文本,显示时计算,数值为textSearchQuerySaveA 

gent,隐藏。

 

  (4)SaveOptions:

类型为文本,可编辑,默认值为“0”,隐藏。

 

  4、创建代理TextSearchQuerySaveAgent。

运行代理时间指定为:

从“操作”菜单中 

选择执行。

指定代理操作的文档为:

运行一次(可能使用@命令)。

 

  代理程序的内容如下:

 

  SubInitialize 

  DimArrNsfAsVariant 

  DimitemAsNotesItem 

  '获得文档context,因为此代理是一个$$QuerySaveAgent,所以$$QuerySaveAgent 

可以访问Context文档上的项目。

 

  DimsessAsNewNotesSession 

  DimdocAsNotesDocument 

  Setdoc=sess.DocumentContext 

  '输出HTML页面的头部和标题:

 

  Print{} 

  Print{} 

  Print{

charset=gb2312">} 

  Print{} </p><p>  Print"多数据库搜索" </p><p>  Print{

  Print{} 

  '设置HTML页面的背景颜色:

 

  Print{

  '获得欲检索的数据库,存放在数组ArrNsf内:

 

  ArrNsf=doc.DatabaseName 

  '如果没有输入检索条件,则输出提示信息:

 

  IfTrim(Cstr(doc.Query(0)))=""Then 

  GotoEmptyQuery 

  EndIf 

  DimMatchDocAsNotesDocument 

  DimdbAsNotesDatabase, 

  DimcollectionAsNotesDocumentCollection 

  '下列循环从数组ArrNsf中取得欲检索的数据库进行处理:

 

  FornsfCount=0ToUbound(ArrNsf) 

  SearchDB=ArrNsf(nsfCount) 

  Setdb=sess.GetDatabase("",SearchDB) 

  '出现错误则转向:

 

  OnErrorGotoBadQuery 

  '获得满足查询条件的记录集:

 

  Setcollection=db.FTSearch(doc.Query(0),0) 

  OnErrorGoto0 

  '输出数据库标题:

 

  Print"


  Printdb.title 

  Print"


  '输出该数据库中满足条件的记录个数:

 

  Print"Thereare"&Str$(collection.Count)&"matching 

documents

  '下列循环从满足条件的记录集中读取记录并输出:

 

  Fori%=1Tocollection.Count 

  SetMatchDoc=collection.GetNthDocument(i%) 

  Print{

&{?

OpenDocument">} 

  Print"

  '如果文档包含Subject或Title,则输出Subject或Title:

 

  Setitem=MatchDoc.GetFirstItem("Subject") 

  If(itemIsNothing)Then 

  Setitem=MatchDoc.GetFirstItem("Title") 

  EndIf 

  IfNot(itemIsNothing)Then 

  Print""&item.Name&":

"&item.Text 

  EndIf 

  '如果文档包含Categories,则输出Categories:

 

  Setitem=MatchDoc.GetFirstItem("Categories") 

  IfNot(itemIsNothing)Then 

  Printitem.Name&":

"&item.Text 

  EndIf 

  '输出文档产生日期和作者:

 

  createDate=MatchDoc.Created 

  Print"Documentcreatedate:

"&createDate 

  Print"Authors:

  ForallaAuthorInMatchDoc.Authors 

  PrintaAuthor 

  EndForall 

  Print"

  Next 

  Next 

  Out:

 

  Print{} 

  ExitSub 

  EmptyQuery:

 

  Print{Searchquerycannotbeempty

  ResumeOut 

  BadQuery:

 

  Print{Queryisnotunderstandable:

"}&doc.Query(0)&{"} 

  ResumeOut 

  EndSub 

  在本例中使用的FTSearch搜索查询内容是一个符合Notes全文检索规则的字符串, 

搜索内容可以是一个字词或多个字词。

搜索内容可以包括?

和*通配符,并且可以由 

!

(not)、&(and)、|(or) 

操作符混合。

所检索的数据库可以有全文索引,也可以没有全文索引。

如果没有全文索引 

,则搜索速度会慢一些。

运行本程序时,应先从浏览器中输入URL:

http:

//homeURL/Site 

Search.NSF/SearchForm?

OpenForm,然后选择欲检索的数据库并输入检索条件,单击 

Submit按钮,则将列出所有 

符合检索条件的文档。

 

版权所有2000 LOTUS学习网

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1