Lotus Notes常见问题答疑

12/3/2006来源:Lotus Notes人气:12602

Lotus Domino/Notes是目前最为流行的文档数据库系统之一,作为群件系统,它利用自身强大的功能使其在企业、政府办公自动化方面的应用越来越广。笔者在此总结了一些Notes开发和管理的常见问题,希望对大家有所帮助。

  问:当硬盘空间不够时,如何压缩我的Notes工作台?
  答:由于Notes数据库是典型的文档型数据库,因此长期使用后会占用较大硬盘空间,为此我们需要经常对这些数据库进行压缩。常用的压缩方法是:
  1.用鼠标右键单击任意工作台页面,并且选择“工作台属性”。
  2.在“工作台”属性框中选择第二个属性按钮,并单击压缩按钮实现压缩。

  问:对自行开发的数据库,如何将其保存为模板,以便于以后使用?
  答:如果已经开发或更改了某个数据库,我们通常希望保存它的结构,以便用于今后的开发。这种做法不仅节省时间,而且在应用程序间保证了一致性。我们利用以下步骤可以实现把某数据库保存为模板:
  1.选择“文件数据库新建拷贝”。
  2.在“拷贝数据库”对话框中,输入服务器、标题和文件名,其中文件扩展名为NTF。
  3.选择数据库设计复选框,并保存为数据库。
  4.单击“确定”按钮,生成数据库模板。

  问:在调试LotusDomino程序时,经常会触发执行qnc.exe程序并退出Notes,如何解决?
  答:在调试LotusDomino/Notes程序时,由于程序设计的问题,我们经常会触发执行qnc.exe程序,并提示错误。其实qnc.exe执行目的只是Notes的内存保护性措施,并不一定是程序本身有错误。为了便于调试程序,我们可以在LotusDomino指令窗口内键入qnc_u,使其暂停运行。如果想恢复时可以再用qnc_i指令装载它。

  问:服务器重装后,对一台曾经安装过Notes客户端的机器如何重新连接到新服务器?
  答:首先你需要利用新建的服务器生成一个新的用户ID文件,并删除原ID文件。

  为了在客户端不重新安装Notes,我们需要重新设置客户端如下:
  1.删除desktop.dsk、log.nsf和names.nsf文件。
  2.在文本编辑器中编辑Notes.INI文件,保留该文件中的前六行内容,其余内容全部删除,保存Notes.INI文件并退出。
  当你再次双击Notes图标时,Notes系统会自动执行安装程序,你只需用新的用户ID文件进行简单的设置即可连接到新服务器上。

  问:在使用过程中,当Notes异常退出时,如何才能再次运行Notes?
  答:通常Notes异常退出,系统是不能再次运行Notes的。这时常见的方法是重新启动计算机并运行Notes。

  其实我们也可以不重启计算机而马上开始Notes,即我们手动杀死一个因Notes异常退出而遗留在内存中的进程nhldaemn.exe,然后我们就可再次启动Notes。

  问:在开发LotusNotes应用系统时,如何隐藏Lotus本身的选单?
  答:为了隐藏Lotus本身的选单条,我们需要添加以下定义:

  DeclareFunctionGetActiveWindowLib"user32.dll"()AsLong
  DeclareFunctionSetMenuLib"user32.dll"(ByvalhmenuAsLong,Byvaln
ewmenuAsLong)AsInteger

  然后,在你的脚本中添加下面的程序:
  DimhwndAsLong
  hwnd=GetActiveWindow()
  CallSetMenu(hwnd,0)
  通过以上几个步骤,你就可以实现隐藏Lotus本身的选单条了。

  问:当服务器启动时,Notes显示消息说“找不到Notes.INI文件”,这时如何解决?
  答:如果你运行的是Windows版本的Notes服务器软件,使用写字板去显示和编辑AU
TUEXEC.BAT文件,在PATH语句中添加Notes.INI文件所在目录,并重启动机器。

  问:开发LotusNotes应用系统时,如何更改窗口标题条文字?
  答:为了使开发的LotusNotes应用系统更加商业化,我们需要更改Notes窗口标题条文字。
  我们可以在文本编辑器中打开notes.ini文件,在其中加上一行代码:Window_Title=string。
  其中string就是我们需要的窗口标题条文字。

问:数据库的文档时常出现复制与保存冲突,如何解决?
答:"复制与保存冲突"是由于同时有两个或两个以上用户对同一文档进行修改,或者是多个用户对同一文档的不同副本进行修改,复制时就会造成复制冲突。对于公用数据库,可以通过 把视图作为"共享首次使用为私有的"来避免。另外,选中表单的“合并复制冲突”属性可以把对同一文档的不同域的修改合并到同一个文档中以避免复制冲突,但如果是对同一个域 的修改仍然会出现冲突文档。

问:如何获得Domino(服务器)端的时间?
答:可以在需要取得服务器时间时,在服务器上创建一个新文档,取得这个文档的创建时间就行了,注意不保存这个新文文档。

问:如何用LotusScript删除私有视图?
答:如下: 
Dim session As New notessession
     Dim db As notesdatabase
     Dim doc As notesdocument
     Set db=session.currentdatabase
     Forall i In db.views
     Set doc=db.getDocumentByUNID(v.universalID)
     ' 这个地方视图当作文档来处理,以便取到视图的一些属性。
     viewflag=doc.getItemvalue("$flags")
     If viewflag(0)="pYV" Then
     ' 视图属性中$flags为"pYV"的是私有视图。
         Call i.remove
     End If
     End Forall


问:如何用浏览器访问基于2000的Domino服务器呢?因为2000上的缺省主页是MICROSOFT的,我不知如何改为Domino的.

答:Windows 2000 Server缺省使用MICROSOFT主页是由于启动了NT自带的IIS服务,有以下三种解决方法:

 1。关闭Windows 2000本身的IIS服务,使DominoServer的http服务器能够使用80端口。
 2。修改Domino上http任务的端口为80以外都某一个值,然后从Domino Server输入Loadhttp命令以启动http任务。当从浏览器访问Domino数据库时,在URL地址后加端口号,如www.lotus.com.cn:81
 3。把DominoServer与IIS集成,使IIS能够访问Domino数据库,然后在IIS中设置缺省主页为Notes数据库。

问:Notes可以在iMAC上运行吗?指的不是iMAC的PC界面下。是通过APPLETALK互连吗?

答:Notes Client有Mac的版本,但Domino Server就不能跑在Mac上了,另外Notes支持Appletalk网络协议。

问:怎么把domino设置SMTP服务器

如何把domino设置成一个用来发信的smtp服务器(可以不收信).按照缺省设置,发信的时候总是说地址当中包含非ASCII字符.
答:非ASCII字符通常是由于中文用户名造成的。
 设置DominoServer为SMTPServer,都需要在服务器文档中设置:
 路由任务:邮件路由、SMTP路由
 全限定的Internet主机名:主机名+Internet域名(用。连接)
 SMTP监听任务:启用
 如4.6前版本须另外安装SMTPMTA,R4.6x把SMTPMTA集成到DominoServer中,R5以后Domino坝SMTP做成了服务器上的一个任务,不需要另外安装MTA。

 R4的SMTPMTA配置在帮助文档中有详细描述,主要在如下几个文档(都存在于公共通讯录中)中进行相应的设置
   1、服务器文档中的SMTPMTA
   2、网络域(GLOBALDOMAIN)
   3、网络域(外部SMTP网络域)
   4、连接文档(从服务器到ANYHOST)

 首先需要设置一台单独的服务器用于收发Internet邮件(即邮递任务为SMTP邮件邮递),然后在公用通讯录中设置全球网络域、外部的SMTP网络域和SMTP连接文档三个文档。

 全球网络域中主要设置:
 在“基本”区段:全球网络域名称,“全球网络域角色”为“SMTPMTA”,“缺省全球网络域”
 在“SMTP地址转换”区段:“Internet网络域后缀”及Notes网络域设置
 SMTP网络域中设置:Internet网络域为*.*,任意设置一个网络域名称。
 新建一个服务器连接文档,设置连接类型为SMTP,目的网络域与前面在"SMTP网络域"中设置的Internet网络域相同,另外应设置有一个待发消息就发送完成以上配置后即可。

 R5的SMTP可以直接使用操作系统的DNS,只需要在Domino目录的配置文档中的"路由/SMTP"页,基本区段下设置:
 离开本地Internet网络域的消息使用SMTP
 离开本地Internet网络域的转发主机:如果是通过代理服务器或防火墙连接到Internet上,则输入其IP地址;如果是直接连接到Internet上,则该域为空
 修改完成后,重新启动DOMINO服务器。

问:如何从数据库A的文档中通过单击打开另一个数据库B的文档?
答:在数据库A的表单中创建一个RTF域,用NotesRichTextItem的AppendDocLink建立连接即可。或是在编辑模式下,打开数据库B的文档,然后从编辑菜单下单击链接式拷贝--文档链接,然后在数据库A表单的RTF域中粘贴即可。

问:关于Win98和Domino
 在Win98下安装Domino,有时可以,有时不行。启动Notes时,显示nlnotes执行了非法操作,qnc错误。为什么?什么条件下Domino可以在win98下安装成功?
答:如果你用的是4.6或4.63版,应该没有问题用在98上,64MB/4G/300MHz,怀疑这个错误可能和硬件配置没有达到有关,就好像小马拉大车,32MB/6G/266MHz,当Word,Notes,LotusSmartSuite同时起可能只是容易死.

问:NOTES文档的WEBQUERYOPEN事件是否当创建新文档和打开阅读时都会运行呢?
 如果只想该事件只在创建时运行,打开阅读时则不运行,该怎样做呢?
答:可以通过在WEBQueryOpen事件中使用@IsNewDoc函数来作判断正在操作的文档是否新文档。

问:网上都有哪些有关Lotus的站点呢?
答:莲花公司站点:
 www.lotus.com.cn
 www.lotus.com
 support.lotus.com
 www.notes.net
 IBM红皮书:
 http://www.redbooks.ibm.com/

 以及其他一些新闻组:
 news.cz.js.cn
 news.vol.cz
 news-reader.wcg.net
 read1.tor.accglobal.net
 comp.groupware.lotus.notes.misc
 comp.groupware.lotus.notes.admin
 comp.groupware.lotus.notes.application

和一些论坛:
http://go.meetchinese.com/forum/ultimatebb.cgi?ubb=forum;f=13
 ......

问:如何用notes读入格式化文本?
答:什么样的格式化文本?如果是Excel或Lotus1-2-3表格,用DDE可以直接传送.
 是文档编辑时“读入”,还是要写程序“读入”?
 如是前者,用"copy"->"选择性粘贴".
 如是后者,可就麻烦些,先要知道是什么“格式化文本”,然后才能决定下一步如何处理。

问:Notes网络联接

 在使用LotusNotes做服务器(NT下)时,工作站无法登录,在工作站的windows下编辑了HOSTS文件,写入了服务器IP地址,还是没用,请问这里那里出了问题?
答:请注意:
   1.Host文件中是怎么写的?IP地址后要有服务器(DOMINO)的名字
   2.服务器是否正常启动.
   3.工作站端提示什么错误

 从客户端的命令行下PINGDOMINO服务器名可以测试网络(TCP/IP协议)的物理连通性。另外要注意在NOTES的服务器和客户端中激活的端口和使 用的协议。

   在WINDOWS下设置DNS服务器地址。有几个解决方案:
     1、在NT上建一个DNS服务器
     2、或建一个WINS服务器
     3、通过NETBIOS端口连接服务器(别忘了把DOMINO的LAN0端口激活)
     4、HOST文件

问:如何在代理中延时执行?
 在代理中用Script写一个程序,在执行期间某段代码需要延时几分钟执行,类似Delay语句,可以吗?如何做?
答:可以在LotusScript种使用timer或sleep语句实现,在notes帮助中有详细的例子和说明。

问:怎样屏蔽文档保存冲突
 当文档保存冲突时,怎样屏蔽掉系统的信息框,而弹出自己的消息框?
答:可以在querySave事件里写一段程序。根据当前文档的UNID在数据库中找到一个文档。

 这个文档如果是被他人修改过的,则$Revisions域的值肯定和当前为保存的不同!

问:关于Qnc错误
 经常出现Qnc错误,它是怎么回事?
答:最好是用qnc-u把它给卸掉。qnc是Lotus的一个Debug程序.
 做法是在各个client上直接删除qnc。它可以检测到你的系统的问题给予你以提示,可以让你知道你的系统中存在的问题或小或大。有点像一个监测器吧?
 如果不喜欢它可以在DOS下(或WINDOWS的“运行”中)键入qnc-u使其不再运行。
 如果你觉得还有必要的话可以再用qnc-i装载它。

问:答复文档?
 请问答复文档从主文档那里继承了哪些FIELD怎样访问它们?
答:它可以继承主文档中所有的FIELD,用主文档的域名来调用(答复文档域的缺省值用主文档的域名)。

问:Notes Client无法运行
 不知道改了什么设置了之后,在Notes Server运行时,Notes Client就无法运行,只显示一下splash窗口就完事了。而当Notes Server关闭时,Notes Client就可以运行。
答:在Domino Server上如果设置了口令,起服务器机器上的Notes Client就会出现这种情况,去除口令即可。另外由于Domino Server和Notes Client对系统资源要求较高,同时启动时可能会造成一些冲突,因此不建议用户在同一台机器上同时使用Server和Client。

问:如何在Internet中使用Notes?
 局域网中有Lotus Domino和www服务器,如何使用Notes作为Intranet网的缺省的电子邮件系统?在网页中如何编写Notes的电子邮件地址的超级 链接?
答:NOTES的电子邮件对外有如下形式的电子邮件地址形式:
 username/[email protected]
 如:white/[email protected]
 可以在Internet浏览器中设置Notes为缺省电子邮件系统。以IE为例:在客户端安装Notes以后,启动IE,然后在Internet选项的程序页中设置邮件选项为"LotusNotes"。在网页中设置Notes的邮件地址与Internet地址形式相同:设置一个连接,内容为
 mailto:user/OU/[email protected]

问:如果安装notes/cc:Mail时没有找到与Modem相匹配的驱动程序,应如何解决?
答:有三种解决办法:
 首先可从www.notes.net中的QuickLink下选择"Modemfiles"下载最新的Modem驱动
程序包(Zip文件);
 或者,选择cc:Mail随机驱动程序中与Modem最相近的驱动程序;
 最后,可按照Cc:MailModem驱动程序(.mdm)的格式定制自己的驱动程序。

问:共享邮件数据库是否能从ServerA移到ServerB?
答:不可以!因为共享邮件数据库由ServerID加密,只有建立此数据库的ServerID才能访问它。
 如果希望移动用户从ServerA到ServerB并仍然使用共享数据库,可用以下步骤实现:

 1>.从ServerA到ServerB建立一个新的共享数据库副本。即在ServerB中生成一个无连接的邮件数据库。
 2>.建立共享数据库连接:LoadObjectLink-RelinkUSERMAIL.NSF共享邮件数据库.NSF

问:在用浏览器访问Domino时,如何在输入某个字段过程中,隐藏(或以*号显示)其内容?
答:R4.6X,在此域的HTML属性值中键入:TYPE=Password
 R4.5X,在此域属性框的帮助描述项中键入:TYPE="Password"]
 
 注:Type=Password仅适于在编辑方式的可编辑字段

问:在以前的Notes版本中(如此而4.5.2),当年份为1950-1999时,Notes仅显示两位,2000年后才显示四位.如07/07/1997 Notes显示为07/07/97;07/07/05,Notes显示为07/07/2005.如何解决这些版本的年份问题?
答:可使用公式对此进行转换(假定域名为DateEetery):
 @If(@Year(DateEntry)>=50;@Text(DateEntry;"d2")+"/"+
 @Text(@Year(DateEntry));DateEntry)

问:不使用分区(Partitioning)服务器,如何在一台NT服务器上安装两个Domino服务器
(一个R5,另一个R4.X).
答:分区服务器主要用于保证可以在一台机器上同时启动多个Domino服务器。如果一次只需启动一个服务器,只要把几个Server分别安装在不同的子目录下,然后更改启动 Server的快捷方式,在Nserver.exe后增加"=\NotesPath\NOTES.INI",其中Notes Path为Notes.ini所在的目录(绝对路径)。需要注意的是安装新的Server时会自动把前一个Server的Notes.ini改为Notes.00x,以区别当前的Notes.ini。

问:当Notes异常退出时,系统信息通常提示要重新启动计算机。是否有办法不重启计算机而马上开始Notes?
答:只需要使用操作系统的任务管理器,手工关闭一个因Notes异常退出而遗留在内存中的
程序:nhldaemn.exe,就可以不重启计算机,而马上开始Notes。但是当计算机上同时运行着Domino时,还需要先把它关闭,然后才能再启动Notes。

问:如何设置DominoServer的自动转发功能?
答:编辑公用通讯录中的个人文档,在"转发地址(ForwardingAddress):"中填入目标用户邮件地址,则此用户的所有邮件将自动转发到目标地址(可以为Notes地址或Internet地址)。

问:如何设置执行代理的权限?
答:执行代理的权限由公用通讯录中服务器文档里有关的域进行限制。需要注意的是,这里设置的用户名应为给代理签名时使用的用户ID,而不是执行代理的用户ID。此后每次对代理进行修改,都需要重新进行签名。不论此代理在前台、后台或以WEB方式运行,服务器均检查对代理进行签名的用户ID是否拥有相应的权限。

问:如何设置DominoServer为NT的一个Servics,使管理员可以从服务器管理器中设置自动启动DominoServer?
答:使用NotesR4时,可以在notesserver的程序目录(通常为C:\NOTES)下运行ntsvi
nst-c;R5则需要在安装Domino时选择定制安装,就会出现一个选项"Domino作为NT服务"。选中以后继续安装,系统将自动进行相关设置。如果在安装时没有进行相应设置,可以在原Domino安装目录上再安装一次,通过定制安装只安装此选项即可。

问:在英文版的Notes中如何输入中文?
答:在Notes5.0以后的版本中已经可以直接输入和显示中文(可能有个别输入法不支持,可以使用操作系统自带的输入法)。5.0版以前的英文Notes需要在 Notes的程序目录下拷贝以下几个文件:
 1。用collGB.cls覆盖collSTD.cls
 2。用l_cpGB.cls覆盖l_cpWIN.cls和l_cpDOS.cls,