学习lotus Domino Notes 一个月的 心得:)

xinzp 2003-09-24 03:10:36
1.用户标识符文件最好备份,当系统重新安装后不必再次设置。密码不会改变。
2.操作按钮使用LotusScipt编写,在Web上不显示;用formula写得在 操作条 属性中选择 使用Java小程序 ;用JavaScipt写在Web上没有限制。
3.视图属性 Web访问 中 允许选择文档 选项是在各行前增加一个复选框,点选则当前文档被选定;当选择 使用Java小程序 时,包含了选择文档,打删除标记的功能。
4.表单(Web)中按钮的一些操作:
保存并添加下一条 @Command ([FileSave] );
@Command ([Compose] ;"txlDB")
保存并退出
@Command ([FileSave] );
@Command ([FileExit] )
关闭窗口
@Command ([CloseWindow] )
7.表单页面布局设计 的原则:
·尽量将表单放在一张页面上,如果可能,尽量使用页面的全宽。
·将重要的信息放在顶部,使其很容易被看到。
·将详细信息放在表单的下面。
·隐藏不适于某个状态、操作或角色的表单部件。
·将按钮和热点置于表单上处理信息流。
8.设计中的数据库优化
1)设计视图
·尽量不适用如Select @All的公式 ,在大型数据库中,仅选择使用“请求”表单的文档以使数据库打开速度更快;
·简化视图选择公式,避免使用@Today或@Now,避免在每一级显示不读的标记;
·通过加入允许用户随意排序文档的列,来减少视图数量(和数据库的大小);
·
2)设计列,应按以下顺序从左到右排放:
·分类过的列
·排序过但未分类过的列
·未排序过的列
·尽量适用域值而不用列中的公式。
3)设计表单
·尽量不要使用大的位图文件或图形;
·不选择表单属性“自动刷新域”;
·位关键字域使用“在关键字改变的基础上刷新域”或协Lotus Script域事件以重新计算文档或当用户从某域移动时更新其他域;
·避免由许多计算域的长表。
4)设计域
·尽量少用 @DbColumn @DbLookup ,可以用Lotus Script程序代替它通常会更快且支持出错检查;
·尽可能简单的在“当```时隐藏”情况下保持公式;
·尽可能避免重复计算域,或将这些域设为“构成即计算”的域;以后再需要的时候可通过按钮、操作或代理来更新;
·尽量通过LotusScript表单事件设置域而不是在域自身的条件公式中来设置;
·尽量减少域的数量,尤其是隐藏域;最好使用表单事件而不用域公式来执行逻辑处理并尽量避免不必要的重复计算。
9.关于代理的访问控制
·想要生成一个共享代理,用户必须拥有社记者访问权限或更高权限
·想要生成一个存储在共享数据库中的个人的非LotusScript代理,用户必须拥有“创建个人代理”权限
·想要生成一个共享的LotusScript或Java代理,用户必须在访问控制列表中拥有创建“LotusScript/Java代理”权限。要将该代理存储在一个共享数据库中,用户也必须拥有。
·Web中必须先选择“代理---代理属性”,并选择设计标签,然后选择Web访问,作为Web用户运行代理选项来识别他们。
·只要代理没有对Web用户隐藏,Web用户就可以运行任何代理
10.WebQueryOpen和WebQuerySave代理
·WebQueryOpen事件在Domino中将一个文档转换到HTML之前运行该代理并将它发送到浏览器中。Domino忽略代理在该环境下产生的任何输出。
·WebQuerySave事件在字段验证后或在Domino在数据库中存储文档之前运行代理。该代理可以使用文档数据进行任何操作或修改该文档。
11.各种调用代理的方法
·@Command([ToolsRunMacro]) 可以在Web上运行LotusScript的代理
·@URLOpen函数 ,可以将公式与一个按钮联系在一起以从Web浏览器上调用代理。
12.使用LotusScript代理获取CGI变量
CGI(Common Gateway Interface)是外部应用程序与HTTP服务器的一个接口标准。
Dim session As New NotesSession
Dim doc As NotesDocument
Dim CGIValue As String
Set doc=session.DocumentContext
CGIValue=doc.HTTP_USER_AGENT(0) ‘用户浏览器的信息
Set webusername=docContext.remote_user(0) ‘Web的身份
Set args=docContext.query_String(0) ‘URL中后随&号的参数
13.Web页面计数器
代理
Counter
Sub Initialize
Dim Session As New NotesSession
Dim ProfileDoc As NotesDocument
Dim doc As NotesDocument
Dim num As Double
Dim NumStr As String
Set Db=Session.CurrentDatabase
Set doc=Session.DocumentContext
Set ProfileDoc=db.GetProfileDocument(“Domino”)

NumStri=ProfileDoc.num(0)
If NumStr= “ “ Then
Num=1
Else
Num=Cdb(NumStr)+1
End If
ProfileDoc.num=Cstr(num)
Call ProfileDoc.save(False,False)
doc.Number=num
End Sub
表单
·Number(数字)存储计数器的数值
·指定该计数器代理作为WebQueryOpen表单事件
安全性
要使Web页计数器代理正常工作,须:
将该代理拥有者的姓名添加到数据库访问控制列表中,并至少给予其编辑者的权限
在服务器文档中赋予该代理拥有者访问权限
14.一些常用的代理的写法
·编辑并重新存储文档
@Command([ToolsRefreshAllDocs])
·添加一个字段
FIELD New_field_name:=value;
·从所有文档中删除字段数据
FIELD Field_name:=@DeleteField;
·重新命名一个字段
FIELD New_field_name:=Old_field_name;
FIELD Old_field_name:=@DeleteField;
15.改变数据类型
@Text
@TextToNumber
@TextToTime
16.改变日期值 用 @Adjust
非 !
与 &
或 |
17.主表达式是一系列语句中的最后一条语句,Notes对表达式求值并返回这个值作为公式的结果。
18.当文档自动生成时,用 @IsError检查错误很有必要
19.清单(List)
·分隔符
·+ 配对操作
- 对字符串没意义
* 组合操作
· @Subset(listname,n)取清单listname中前n个成员
@Elements(listname)清单listname中成员的个数
@Member(“sth”;listname)返回”sth”在清单listname中的位置
@Unique(listname)返回listname中删除所有重复项目之后的版本
20. @Prompt
有关文档的一些函数:
文档的3个特殊的域
$Modified
$UpdatedBy
$Revisions
当设置数据库跟踪文档历史时,下列函数有效
@Created 创建者
@Modified 修改者
@Author 有作者权限的用户和组的清单

@Attachment 附件是否存在
@AttachmentNames 附件名称
@AttachmentLengths 附件长度

@DocumentUniqueID 文档32位标识符
@GetDocField 返回指定文档字段的值
@SetDocField 将文档指定字段设置为指定值
@MailSend 把文档作为邮件发送

@DBLookup与@DBColumn
按标准编程方式从表格源中取得数据

删除数据
@SetDocField
@DeleteField
@Unavailable 注意一定不要与 @IsUnavailable混淆

配置文档
@Command([EditProfile])
@GetProfileField
@SetProfileField

环境变量(Note.ini)
ENVIRONMENT
@Environment
@SetEnvironment

平台与版本函数
@ClientType
@Platform
@Version
21. @Commands
Execute 启动外部程序
ToolsRunMacro 运行指定的代理

当有Author权限的用户将文档打开,转入Edit模式,关闭并保存文档时才能更新,手工更新需要:
ToolsRefreshAllDocs
ToolsRefreshSelectedDocs
22.标识符作用范围
·类或类型级
·过程级
·模块级
23.Property Get/Set
取得内部署性质、设置内部属性值
24.Set为对象赋值
ReDim为动态数组变量重新分配存储空间
25.3个特殊值
·NOTHING 表示对象的值的状态,定义但是未初始化
·EMPTY 表示变体变量的状态,定义但是未赋值
·NULL 为区分零值而设置
26.MessageBox、InputBox和Print语句
...全文
607 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stupidfrog 2003-09-27
  • 打赏
  • 举报
回复
学习,有很多都让我大悟。
继续,新手需要你 ^_^
xjunhua 2003-09-26
  • 打赏
  • 举报
回复
不差的,不过我做的现在全部都B/S结构的,其实也还好,不是很痛苦的
steven1225 2003-09-26
  • 打赏
  • 举报
回复
呵呵
rosemerry 2003-09-26
  • 打赏
  • 举报
回复
很不错哦,加油!!:)
glassrain 2003-09-26
  • 打赏
  • 举报
回复
我排第二,占点光
要开始干lotus项目了,痛苦啊!B/S结构,真是不好干。
kanon2003 2003-09-26
  • 打赏
  • 举报
回复
学习ing
xiaoyuer0851 2003-09-26
  • 打赏
  • 举报
回复
呵呵, 不错,我也是觉得,但是感觉这里的人气不怎么旺
lofa 2003-09-24
  • 打赏
  • 举报
回复
继续

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧