博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

Donimo开发小技巧,知识点收集(不断更新)

Posted on 2008-02-21 09:18  生鱼片  阅读(869)  评论(2)    收藏  举报

1.由于Notes中提交即保存,一个表单中往往会存在多个保存或提交按钮,我们要区别对待每一次的提交和保存,这个时候就要用到$$QuerySaveAgent保留域。在表单中填加一个名为$$QuerySaveAgent,默认属性保存。在要调用代理的按钮的CLICK事件中写下一个方法,
并在JS Header中定义该方法。方法的内容很简单
document.forms[0].$$querysaveagent.value="searchByName";
document.forms[0].submit();
很容易看明白吧,这里把你要调用的代理名赋给$$QuerySaveAgent域,然后提交,这样就能实现点击这个按钮提交的时候调用这个代理,点击另外一个按钮提交是调用另外的代理。
另外顺便提一下,还有一个保留域通常会和$$QuerySaveAgent域一起出现,那就是SaveOptions。这个域很有意思,在一个表单中建立一个这样的域,属性默认就行,把它的默认值设为1时,表单可以正常保存,但当它的默认值为0时,点保存照样不会报错,不过保存后数据库的文档条数不会增加,自然文档实际没有被存到数据库中

2. domcfg是用来为domino web服务产生消息页面的,类似登陆,修改密码等等。。。在web上使用的代理必须要有权限,这个权限的设定在administration中的配置->服务器文档->安全性中设定。。。

3. 配置domino使其支持serlvet在图中的Java servlet 中的Java servlet support 选项选择domino servlet manager重启服务器或http 任务,会看到Java Servlet Manager Initialized 说明servlet管理启动编写好的servlet放在data\domino\servlet目录下也可以更改存放的目录.

4.   在试图设计的时候,一般会用试图的第一列做为试图的排序列,本列一般没有标题,宽度很小,选择排序方式和依据的域。
5.在一个表单中不要添加太多的共享元素,会降低表单的打开速度。
6.并不是说只有.ntf的才是模板,.nsf的在数据库属性里勾选作为主模板也可以。

7、如何在IE中实现文档保存后返回视图?
答:要在IE中实现文档保存后返回视图需要作到两点:
一、在表单的保存操作中实现公式: @If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))
二、在表单中增加一个隐藏的保留域:$$return,其属性设置为计算文本。其值用公式实现

"[/" + @Subset(@DbName;-1)+"/"+"v_make_nowdept"+"?OpenView]" 其中
v_make_nowdept
是个某个视图名。这样就能返回视图v_make_nowdept了。当然可以用
@subset(@ViewTitle;-1)
来取得打开某个文档时视图名字。但是当我们这样做时发现:
在视图的创建操作进入表单时@ViewTitle的值却总是不能返回,这个问题还有待于
进一步解决。

8.我不想在IE中显示视图的名称,我该怎么办?
答:你在建立视图时,要同时赋予该视图名称和别名,在所有工作作好以后,你如果不想IE中显示该名称,则你应该用空格来取代原来视图的名称,Domino回自动寻找别名来匹配的。如果你不去掉名称的话,IE中浏览时Domino会自动把名称显示在视图的上方的。

9.为什么我的RTF域在IE中浏览时看不到其中的内容?
答:有可能你把这个域放在表格中了吧!,如果放在表格中在IE中浏览时是看不到其中的内容的解决办法是把它放在表格外边即可。 也有可能你在该RTF域中设置了使用java applet "的属性,但没有设置HTML属性,因为默认的HTML属性是RTF域的长、宽都为0,这样在浏览时是看不到的,所以你应该把它的HTML属性设置一下,比如:"HEIGHT=\"120\" WIDTH=\"600\""

10.我怎样设计表单来跟踪文档的作者?
答:你可以在表单上加一个隐藏的共享域,其名字可以为 from 运行公式为:
@If(@IsNewDoc  @UserName; From)
,这样这个域就记录了这片文档的作者了。

11.lotus Error   4175:   Couldn't   get   default   View   id   for   database  
解决方法
没有缺省视图就会这样,缺省视图只需在视图属性的选项中选择“首次打开数据库时缺省状态”即可。

12.Lotus Notes Exception - Entry not found报这个错误的时候有的时候是数据库损坏了。

13.公式中可用的有五个关键字:Default,Environment,Field,Rem,Select.
DEFAULT variablename := value. 将variablename 赋值,不会生成域。如果你要想将variablename 保存到域中你必须使用Field或是@SetField(),如果该域存在其值将会被覆盖。
使用关键字Environment来在notes.ini中设置环境变量,例如ENVIRONMENT LastNav := navigatorname,可以通过@Environment得到。@SetEnvironment 等同于该关键字。

14.公式如何给字符串列表和日期型赋值,如下:
cTextList := "Red" : "Yellow" : "Green"
dDate := [08/09/98]
dDateTime := [08/09/98 11:30 PM]

15.当文档中包含$keepprivate,并且设置该域的值为1时,使用者不能转寄、拷贝或打印此文档。产生这个域通常有4中方法,下面将一一说明。其中第三种方法需要跟最终用户交互。
  方法一:通过在ACL(存取控制列表)中设定
      当数据库的ACL中设定某用户“禁止复制或拷贝文档”,那么无论此用户是作者或以上的权限,那么此用户创建的文档中都会生成$keepprivate,并设置值为”1”。
  方法二:通过客户端程序设计表单
     设计表单的属性-安全性标签中,启用“禁止打印/转发/拷贝到剪贴板上”,这样使用这个表单来创建的文档就会生成$keepprivate,并设置值为”1”。
      备注:对Notes 3.X版本此设定无效。
  方法三:当发送邮件的时候设置发送属性
      当你发送一封邮件时,你不希望收件人可以打印、复制或者转寄这封邮件,你可以选择动作“发送属性”-“基本”标签里面,勾选“禁止拷贝”即可。这样发出去的邮件就会生成$keepprivate,并设置值为”1”。
  方法四:通过添加这个域到表单中
      当你对数据库有设计者以上的权限,你可以在这个表单中创建这个域”$keepprivate”,并设置域值为”1”,或者通过编程或代理的方式生成这个域到文档中即可。

16.使用视图的GetDocumentByKey方法时,传的index匹配的是视图的第一列。

Domino中的Bug List
1.如果你使用数值域,当值小于1的时候,msgbox出后小数点后面的0不会显示。