随着计算机技术的日益普及,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按钮,则将列出所有
符合检索条件的文档。
相关推荐
本篇文章主要介绍如何使用Lotus Domino编写一个Web浏览器上的多数据库检索程序。首先,我们需要创建一个名为SiteSearch.NSF的数据库,这个数据库将作为我们的检索入口。接下来,我们需要在这个数据库上创建一个表单...
30. LotusDomino环境下编写Web浏览器多数据库检索程序 40 31. WINAPI函数 44 32. 用PowerBuilder访问Lotus Notes数据库 55 33. 如何在表单中加入计数器 58 34. 实现两个数据库间的数据追加 C/S 结构 60 35. 如何防止...
30. LotusDomino环境下编写Web浏览器多数据库检索程序 40 31. WINAPI函数 44 32. 用PowerBuilder访问Lotus Notes数据库 55 33. 如何在表单中加入计数器 58 34. 实现两个数据库间的数据追加 C/S 结构 60 ...
LotusDomino环境下编写Web浏览器多数据库检索程序 - **检索程序**: 可以通过构建跨数据库视图或使用代理来实现多数据库检索功能。 #### 31. WINAPI函数 - **函数介绍**: WINAPI是指Windows API函数,可以在...
7. **数据库复制与同步**:Domino的数据库复制功能允许数据在多个服务器之间同步,确保信息的实时性和可用性,这对于分布式企业环境尤为重要。 8. **Web服务与API**:Domino可以通过Web服务接口与其他系统进行集成...
数据库复制是Lotus Domino的一大特色,允许在多个服务器间同步数据,确保信息的实时性和可用性。开发者需要了解如何配置和优化复制策略。 12. **协作功能** Lotus Domino内置了丰富的协作工具,如电子邮件、日历...
在Windows Server 2003操作系统上部署Lotus Domino 7服务器是一项重要的IT任务,它涉及到企业级协作...提供的"Win2003下部署LotusDomino7服务器.pdf"文档应该包含详细的步骤和指南,对于顺利完成这个任务将非常有帮助。
当我们需要在Web浏览器中访问一个Lotus Domino数据库时,URL通常具有以下结构: ``` http://servername/someDirectory/dbname.nsf ``` 其中,`servername`是服务器的名称,`someDirectory`是数据库所在的目录...
启动标签定义客户端和Web环境下打开数据库时的首页;索引标签管理全文索引;高级标签涵盖未读标记和软删除等高级选项。 **设计元素** 设计元素是构建Lotus Domino应用的基础,包括帧结构集、页面、表单、视图、...
Lotus Domino 自动定时压缩 NSF 数据库 ...自动压缩程序可以帮助管理员更方便地管理和维护大量数据库,而手动压缩程序则提供了更多的灵活性和可选项,可以根据实际需要选择不同的参数和压缩方式。
Lotus Domino 邮件从一个数据库复制到另一个数据库 Lotus Domino 是一款功能强大且灵活的协作软件,提供了强大的电子邮件和数据库管理功能。然而,在实际操作中,我们经常需要将邮件从一个数据库复制到另一个...
在Domino的Web应用程序中,用户使用浏览器直接指向存储在数据库中的数据内容本身的URL。例如,你可以通过如下方式打开Sports数据库中的Tickets表单:http://server/Sports.nsf/Tickets?OpenForm
3. **隐藏视图**: 视图是数据库中的关键组成部分,用于组织和检索数据。隐藏视图可以防止用户直接访问特定的数据集合。例如,可以创建一个仅限管理员使用的隐藏视图来处理敏感数据。 4. **安全策略**: Lotus Domino...
在 Web 环境下,视图需要适应浏览器的显示限制和交互方式。这包括调整视图的布局,使其适合不同屏幕尺寸,以及优化点击和滚动行为,以提供流畅的用户体验。例如,可以通过设置列宽、自定义排序和分页来优化视图在 ...
2. **BS架构**:Browser-Server架构意味着用户通过Web浏览器访问应用程序,所有业务逻辑和数据处理都在服务器端进行。这种架构减少了客户端的维护成本,提升了系统的可扩展性和安全性。 3. **Lotus Domino Web应用...
1. Windows 2003环境下Lotus Domino 7.0的安装:Lotus Domino 7.0支持在Windows 2003操作系统上运行,用户需要按照一定的步骤进行安装和配置,以确保其正常运行。 2. Domino服务器的设置:Lotus Domino 7.0安装后,...
在Lotus Domino Web应用程序中,根据用户的角色来控制页面内容的可见性是一种常见的安全措施。 **应用场景举例:** 根据用户角色来显示特定的内容: ```html (IsInRole("Admin") ? '' : 'none');"> 管理员专用区域...
- **拓扑结构**:可能包括多个Domino服务器、数据库副本、备份策略和网络布局。 - **详细配置**:涉及服务器硬件规格、操作系统版本、Lotus Domino服务器版本、客户端版本以及其他相关软件的配置。 ### 2. 测试过程...
8. 为了避免误删,设置了一个计数器 `i`,当超过 20 个邮箱被删除后,程序退出,防止一次性清理过多邮箱。 `checksuename` 函数的作用是检查给定的用户 ID 是否存在于 "EKP_AllPerson" 视图中。如果存在,则返回 `...