`
wind_bell
  • 浏览: 292141 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

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 {<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 "<Hr>"

   Print db.title

   Print "<Hr>"

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

   Print "<font size=5><b>There are " & Str$(collection.Count) & " matching
documents</b></font><br>"

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

   For i% = 1 To collection.Count

   Set MatchDoc = collection.GetNthDocument(i%)

   Print {<br><a href="/} &SearchDB &{/AllDocument/} & MatchDoc.UniversalID
&{?OpenDocument">}

   Print "<b>"

   '如果文档包含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 "   <b>" & item.Name & "</b>: " & item.Text

   End If

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

   Set item = MatchDoc.GetFirstItem( "Categories" )

   If Not (item Is Nothing) Then

   Print item.Name & "</b>: " & item.Text

   End If

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

   createDate = MatchDoc.Created

   Print "Document create date:" &createDate

   Print " Authors: "

   Forall aAuthor In MatchDoc.Authors

   Print aAuthor

   End Forall

   Print "</a><br>"

   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

  在本例中使用的FTSearch搜索查询内容是一个符合 Notes 全文检索规则的字符串,
搜索内容可以是一个字词或多个字词。搜索内容可以包括 ? 和 * 通配符,并且可以由
! (not)、& (and)、|(or)
操作符混合。所检索的数据库可以有全文索引,也可以没有全文索引。如果没有全文索引
,则搜索速度会慢一些。运行本程序时,应先从浏览器中输入URL:http://homeURL/Site
Search.NSF/SearchForm?OpenForm,然后选择欲检索的数据库并输入检索条件,单击
Submit按钮,则将列出所有
符合检索条件的文档。
分享到:
评论

相关推荐

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

    本篇文章主要介绍如何使用Lotus Domino编写一个Web浏览器上的多数据库检索程序。首先,我们需要创建一个名为SiteSearch.NSF的数据库,这个数据库将作为我们的检索入口。接下来,我们需要在这个数据库上创建一个表单...

    LotusDomino学习笔记(400页涵盖代理和公式使用)

    30. LotusDomino环境下编写Web浏览器多数据库检索程序 40 31. WINAPI函数 44 32. 用PowerBuilder访问Lotus Notes数据库 55 33. 如何在表单中加入计数器 58 34. 实现两个数据库间的数据追加 C/S 结构 60 35. 如何防止...

    Lotus Domino WEB详细 学习笔记

    30. LotusDomino环境下编写Web浏览器多数据库检索程序 40 31. WINAPI函数 44 32. 用PowerBuilder访问Lotus Notes数据库 55 33. 如何在表单中加入计数器 58 34. 实现两个数据库间的数据追加 C/S 结构 60 ...

    LotusDomino学习笔记.doc

    LotusDomino环境下编写Web浏览器多数据库检索程序 - **检索程序**: 可以通过构建跨数据库视图或使用代理来实现多数据库检索功能。 #### 31. WINAPI函数 - **函数介绍**: WINAPI是指Windows API函数,可以在...

    Lotus Domino Web开发指导完美PDF(下)

    7. **数据库复制与同步**:Domino的数据库复制功能允许数据在多个服务器之间同步,确保信息的实时性和可用性,这对于分布式企业环境尤为重要。 8. **Web服务与API**:Domino可以通过Web服务接口与其他系统进行集成...

    LotusDomino程序开发经验经典总结(经典推荐)

    数据库复制是Lotus Domino的一大特色,允许在多个服务器间同步数据,确保信息的实时性和可用性。开发者需要了解如何配置和优化复制策略。 12. **协作功能** Lotus Domino内置了丰富的协作工具,如电子邮件、日历...

    Win2003下部署LotusDomino7服务器

    在Windows Server 2003操作系统上部署Lotus Domino 7服务器是一项重要的IT任务,它涉及到企业级协作...提供的"Win2003下部署LotusDomino7服务器.pdf"文档应该包含详细的步骤和指南,对于顺利完成这个任务将非常有帮助。

    Lotus Domino BS开发--数据库web url格式+代码+前端后端类

    当我们需要在Web浏览器中访问一个Lotus Domino数据库时,URL通常具有以下结构: ``` http://servername/someDirectory/dbname.nsf ``` 其中,`servername`是服务器的名称,`someDirectory`是数据库所在的目录...

    Lotus Domino BS开发--熟悉并使用Lotus的各种设计元素--数据库介绍

    启动标签定义客户端和Web环境下打开数据库时的首页;索引标签管理全文索引;高级标签涵盖未读标记和软删除等高级选项。 **设计元素** 设计元素是构建Lotus Domino应用的基础,包括帧结构集、页面、表单、视图、...

    lotus domino 自动定时压缩nsf数据库2

    Lotus Domino 自动定时压缩 NSF 数据库 ...自动压缩程序可以帮助管理员更方便地管理和维护大量数据库,而手动压缩程序则提供了更多的灵活性和可选项,可以根据实际需要选择不同的参数和压缩方式。

    lotus domino邮件从一个数据库复制到另一个数据库

    Lotus Domino 邮件从一个数据库复制到另一个数据库 Lotus Domino 是一款功能强大且灵活的协作软件,提供了强大的电子邮件和数据库管理功能。然而,在实际操作中,我们经常需要将邮件从一个数据库复制到另一个...

    Lotus Domino_Web开发综述

    在Domino的Web应用程序中,用户使用浏览器直接指向存储在数据库中的数据内容本身的URL。例如,你可以通过如下方式打开Sports数据库中的Tickets表单:http://server/Sports.nsf/Tickets?OpenForm

    lotus domino 数据库隐藏设计明细教程

    3. **隐藏视图**: 视图是数据库中的关键组成部分,用于组织和检索数据。隐藏视图可以防止用户直接访问特定的数据集合。例如,可以创建一个仅限管理员使用的隐藏视图来处理敏感数据。 4. **安全策略**: Lotus Domino...

    Lotus Domino 第8章_在Web中使用视图

    在 Web 环境下,视图需要适应浏览器的显示限制和交互方式。这包括调整视图的布局,使其适合不同屏幕尺寸,以及优化点击和滚动行为,以提供流畅的用户体验。例如,可以通过设置列宽、自定义排序和分页来优化视图在 ...

    Lotus Domino BS开发综合学习记录

    2. **BS架构**:Browser-Server架构意味着用户通过Web浏览器访问应用程序,所有业务逻辑和数据处理都在服务器端进行。这种架构减少了客户端的维护成本,提升了系统的可扩展性和安全性。 3. **Lotus Domino Web应用...

    lotusdomino教程.pdf

    1. Windows 2003环境下Lotus Domino 7.0的安装:Lotus Domino 7.0支持在Windows 2003操作系统上运行,用户需要按照一定的步骤进行安装和配置,以确保其正常运行。 2. Domino服务器的设置:Lotus Domino 7.0安装后,...

    Lotus domino 学习大全

    在Lotus Domino Web应用程序中,根据用户的角色来控制页面内容的可见性是一种常见的安全措施。 **应用场景举例:** 根据用户角色来显示特定的内容: ```html (IsInRole("Admin") ? '' : 'none');"&gt; 管理员专用区域...

    JS21LotusDomino测试报告V1.pdf

    - **拓扑结构**:可能包括多个Domino服务器、数据库副本、备份策略和网络布局。 - **详细配置**:涉及服务器硬件规格、操作系统版本、Lotus Domino服务器版本、客户端版本以及其他相关软件的配置。 ### 2. 测试过程...

    lotus domino自动删除邮箱在用户不在的数据库

    8. 为了避免误删,设置了一个计数器 `i`,当超过 20 个邮箱被删除后,程序退出,防止一次性清理过多邮箱。 `checksuename` 函数的作用是检查给定的用户 ID 是否存在于 "EKP_AllPerson" 视图中。如果存在,则返回 `...

Global site tag (gtag.js) - Google Analytics