主站|HOME   留言|MESG   

◇ 人啊,都不讲实话
◇ 还健在的众君子中我首选朱镕基
◇ 天底下只有三件事
◇ 07年辩证法
◇ 太经典了,不转不行淘宝上面的对话
>>> 迷信的起源  婚前与婚后 >>>


LotusDomino环境下编写Web浏览器多数据库检索程序
不愿留名
2003/03/11

    LotusDomino环境下编写Web浏览器多数据库检索程序
      随着计算机技术的日益普及,Internet/Intranet技术得到了更加广泛的应用,在世
    界范围的大量Web网点上以及公司内部的Web服务器上,都存放着大量的信息。为使这些信
    息得到的合理使用,Web服务器管理员应该为用户提供方便的信息检索方法。作为群件代
    表的Lotus Domino
    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。运行代理时间指定为:从“操作”菜单中
    选择执行。指定代理操作的文档为:运行一次(可能使用@命令)。
      代理程序的内容如下:
      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 {}
       Print { }
       Print {}
       Print {}<br>        Print "多数据库搜索"<br>        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 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
    documents

"
       '下列循环从满足条件的记录集中读取记录并输出:
       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 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 {}
       Exit Sub
      EmptyQuery:
       Print {Search query can not be empty }
       Resume Out
      BadQuery:
       Print {Query is not understandable: "} & doc.Query(0) & {"}
       Resume Out
      End Sub
      在本例中使用的FTSearch搜索查询内容是一个符合 Notes 全文检索规则的字符串,
    搜索内容可以是一个字词或多个字词。搜索内容可以包括 ? 和 * 通配符,并且可以由
    ! (not)、& (and)、|(or)
    操作符混合。所检索的数据库可以有全文索引,也可以没有全文索引。如果没有全文索引
    ,则搜索速度会慢一些。运行本程序时,应先从浏览器中输入URL:http://homeURL/Site
    Search.NSF/SearchForm?OpenForm,然后选择欲检索的数据库并输入检索条件,单击
    Submit按钮,则将列出所有
    符合检索条件的文档。

>>> 迷信的起源  婚前与婚后 >>>
[自由发言,不代表Mst1739观点]
Copyright © 梦境天华站
粤ICP备08035557号
2001-2025 all rights reserved · mst1739
Email:mst1739@qq.com