LOTUS学习技巧 一

1、 notes同关系型数据库比较
关系型数据库          Lotus Notes
基于事务处理模型        基于文档型
使用结构化数据        使用半结构数据元素(丰富文本,图片,等)
提供实时访问数据        使用复制来增加或减少文档(按修改)
使用特别的queiries定位数据        使用视图定位数据
集中在一个企业内部        在企业与企业间
使用SQL来访问        使用全文检索来访问

2、什么应用不适合notes
    1.实时的数据处理
2.大于4G的数据库(R5增加到64G)
3.基于query和基于报表
4.复杂计算

3、同义名有什么用?
在表单,视图,关键字中可以用同义名,主要用途是当你想在程序中用英文,而在取名或显示给用户用中文时,你可以用同义气名,用"|"来分隔,注意:可以使用多个同义名,notes会存取最右边的一个。||

4、 如何做一个动态的windows title?
在表单中的windows title的事件中写入一个公式,如想按用户的名字变,写上@username就ok了!要想按域变,写上域名就ok.
 
5、怎样激活域帮助
在域属性的选项属性中的帮助描述写入帮助信息,就可以。当光标在该域时,状态栏会自动出现帮助描述,注意如果没有看到,在操作栏上请选 查看---域帮助

6、怎样做到关键字能自动增、减?
在关键字属性中,选用公式,然后输入公式,公式用@dbcolumn函数返回视图中的值,这时就能做到关键字能自动增、减,不过有没有用的关键字。

7、各种域类型区别介绍?
域类型        何时变化
计算型        当文档创建,存盘,刷新时计算,并保存在文档中
显示时计算        当文档打开编辑,读或刷新时计算,不保存在文档中
创建时计算        当文档被创建时,仅此计算一次,并保存在文档中。

8、主文档、答复文档、答复的答复文档介绍

 
类别        描述
文档        用来创建主文档,不依附其他的文档
答复        用来答复主文档,依靠主文档,在层次视图里有同主文档有缩进关系
答复的答复
        可以用来答复主文档,也可以答复答复的答复文档,同它的父文档有缩进关系。
   注意:答复文档无论选定的是主文档,还是答复文档,还是答复的答复文档,都是针对主文档答复的.
 
9、 如果让用户必须填一些域,否则不准保存?
  @假设该域为name;在该Name域的input  validation的事件中写入下列公式if(name="";@failure("please input your name";@success) 

10、怎样将一个数据库做成模板?
有多种方法,这里介绍一种,在工作台选中一个要做模板的数据库,然后选择文件---数据库---新建拷贝,在弹出的对话框中将.nsf改为.ntf就ok了。

11、怎样做到当光标从一个域移到另一个域,表单自动刷新?
在该域所在的表单中选择表单属性中的缺省选项中"自动刷新域。

12、怎样让用户保存文档时,域中的数值自动转化你想要的标准格式?
假设该域为name;想把它转化为大写,在该Name域的input translation的事件中写入下列公式:@UpperCase(State),就可以具体的字符串的操作公式,请看本页的字符串操作。

13、怎样在表单中控制某一个域让谁编辑?
你可以把该域放到存取控制区段里,指定该区段的编辑者就只有该编辑者才能修改改域了。

14、怎样控制区域布局中域,当使用tab时,光标的移动顺序?
假设在区域布局中有a,b,c三个域,我想要它们光标移动的顺序为a,c,b.可以这样做,选中a域,选设计----置前,选中c域,选设计----置前,选中b域,选设计----置前.

15、在视图中怎样做出主文档,答复文档,答复的答复层层缩进的效果?
在视图属性中选"缩进一个层次显示答复文档"只代表文档有答复折叠的层次,但不能在视图中显示出来,为了做到层层缩进,我们必须另外开发,在视图中的前面做一列,选定列属性"仅显示答复文档",然后在该列的公式中写上如果是答复文档的话,该列显示什么,如果是答复的答复文档显示什么,就可以了然后调整各列的宽度就可以看到有缩进的效果。        ""

16、ACL中的安全介绍
访问级别        功能
管理者        能修改ACL和复制设置,在本地加密一个数据库,删除一个数据库,能执行比它低级别的任何任务。
设计者        能修改所有的设计元素,创建全文索引,能执行比它低级别的任何任务。
编辑者        能创建文档和编辑文档
作者        能创建和编辑在作者域中有她名字的文档
读者        能读文档,但不能创建和编辑文档
存放者        能创建新文档,但不能读到任何文档,即使是他自己创建的
不能存取者        不能访问数据库

17、 公式学习:

  变量

变量有两种类型:域,临时变量,你可以在公式中使用域名作为变量如:FirstName

临时变量只能存在于公式中。它的作用范围就是它所在的公式,除了在公式中赋予给它的属性以外没有其他属性。创建一个临时变量的语法是:variableName := value

 
常量
常量类型        描述
文本型        用""标记的字符集,如:"joe.",注意:为了在文本串中用引号,用转义符"/",如:/""
数字型        数字0-9,能用(+和-),科学记数法和常量e

时间型        任何时间型的常量用([]),如:[98-2-31]

操作符

    操作符类型
      符号
             例子

      赋值
:=
Areacode:=@left(phone;3)

      计算
乘号 *                除号 /                加号 +                减号
UnitPrice*3                                      TotalPrice/qty                                   TotalPrice+Tax                                   TotalPrice-Discount


      比较
等于  =               不等于 != =! <>; >;<    小于<                 小于等于 <=           大于 >;                大于等于 >;=
SELECT Year=1996                                  SELECT Month!="January"                        SELECT Age<70                                      SELECT Year<=1990                                SELECT Age>;30                                   SELECT Age>;=21


      串联
列表 :                 文本  +
"Tricycle":"Mini-bike":"5-speed"         CompanyName+",inc."


      逻辑
否  !                  于  &                 或  |
Status="Approved"&TargetMarket!="Children"

 

 
  公式关键字

 
关键字语法
描述
例子

FIELD fieldname:=value

赋一个值给当前notes文档中的域,如果域不存在则创建一个,存在则覆盖该值。
FIELD CompanyName:=Company+"。inc"


REM ["remarks"]
注释
REM "12/15/95"

SELECT logicalValue

在视图,代理或复制公式中用来定义一个文档集
SELECT form="idea"


 
字符串处理函数介绍?

 
函数
描述

@propercase(string)

将字符串中的单词转换成字首大写的形式:每个单词的头一个字母大写,后面的其他字母小写。以下的样例将返回 Every Child Loves Toys. @ProperCase("every CHILD LOves toys"

@trim(strin)

从文本字符串中(或文本列表的每一个元素中)删除位于开头和结尾的空格,同时还删除多余的空格。以下的样例将返回 ROBERT SMITH。@Trim(@UpperCase("Robert Smith")

@length(string)

返回文本字符串中字符的个数.该样例返回 45。@Length("The boy crossed the wide, but gentle, stream."

@newline

在文本字符串中插入一个新行(回车)。下面公式返回                 Hi                                                        There                                     "Hi"+@NewLine+"There"

@matches(string;pattern)

用一个样本字符串去匹配一个字符串。因为样本字符串可以包含一定数量的通配符和逻辑符号,所以可以用较复杂的模式去匹配字符串。     该样例返回 0。                                       @Matches("A big test";"a?test"

@left

从左到右搜索字符串,并返回字符串中最左边的几个字符。           该样例返回"Len"。                                @Left("Lennard Wallace";3)


 
逻辑操作

 
       函数
                           操作

      @if
  @if(condition1;action1;condition2;action2;else-action)


 
如果满足条件1,则做action1,如果满足条件2,则做action2,否则做else-action.

注意: 1.该函数必须有奇数个参数。

       2.总共可以加99个条件

       3.可以嵌套


 
日期操作

 
  函数
描述

@created
返回创建此文档时的时间-日期值。

@adjust(time-date; year;month;day;hour;   month;day;hour;minute ;second)
按照指定的年、月、日、小时、分钟、秒来调整指定的时间-日期值。调整的值可正可负。

以下的样例将返回 09/2/97。 @adjust([06/30/95];2;2;2;0;0;0)

@today
返回当天的日期。

@month(time-date)
从指定的时间-日期中提取月份值       

该样例返回 1。 @Month([1/15/88])

@Weekday(time-date)
算出一周中的某一天,返回一个表示这一天的数字。

下面样例返回 5(实际是星期六)。  Weekday([9/29/88])

@tomorrow
返回明天日期的时间-日期值。


 
算术操作

 
       函数
              描述

@Max(number;number)

  给出两个数字,返回较大的那个数字。

下面样例返回 99;6;7;8
@Max(99:2:3;5:6:7:

@Max(number;number)

给定两个数字,返回较小的那一个。

以下的样例将返回 5;2;3;3
@Min(99:2:3;5:6:7:

@Round(number)
将指定的数字归整,结果为最接近它的一个数

该样例返回 1
@Round(1.499)

@Round(number;factor)

如果还指定了另外一个数字,就用它作为规整因子

如果称做 NumberOfEmployees 的域值是12338,则该样例返回12340
@Round(NumberOfEmployees;10)

@Sum(num;num;..)

在一组数字或数字列表中进行加法运算。

以下的样例将返回 3
@Sum( 1 : 2 )


 
列表操作

 
函数
描述

@Elements(list)
计算列表中文本、数字、时间-日期的个数。该函数总是返回数字以指明在列表中项目的个数。

如果 SalesForce 域中的列表是 "Rogers" : "Binney" : "Harris" : "Larson",则以下的样例将返回 4。"                               @Elements(SalesForce)

@Max(list;list)
  给出两个数字列表,返回较大的那个数字列表。

@Member(value; stringlist)
给定一个值,在文本列表中找到该值的位置。

下面样例返回 0。                                   @Member("Sales"; "Finance":"Service":"Legal""

@Subset(list;number)
从左到右搜索一个列,并返回您所指定数量的值。如果您指定了一个负数,@Subset 将从右到左搜索,但结果却是按从头到尾的次序排列。

以下的样例将返回 New Orleans;London。            @Subset("New Orleans":"London":"Frankfurt":"Tokyo"; 2)


 
数据转换

 
       函数
                         描述

@Text(value)
将任意值转换成文本字符串。 如:@text(RetailPrice)

@TexttoNumber(string)
在可能的情况下,将文本字符串转换成数字。如:                 @texttonumber("32.95"


 
特殊函数

 
     函数
                  描述

@Username
返回当前的用户名或服务器名。

如果用户名是层次结构名, @UserName 将以规范格式返回(其中包含 CN、OU、O 和 C 标识符)。 如果如果要返回缩写格式的名字(忽略标识符),请使用 @V3UserName。


@name([action];name)


用来裁剪层次结构名。可以用它将标准格式的名称进行缩写,将缩写名称扩展为它的标准格式,在名称中找到某一个部分,掉转部件的顺序以便用层次名称为一个视图分类。                                       如:@Name([CN];Author)

@AllChildren
包含父文档的所有满足选择标准的"答复"文档。

@AllDescendants
包含所有满足选择标准的父文档的答复文档以及答复的答复文档。

@IsResponseDoc
判断某个文档是否为答复文档。

@IsNewDoc
对于一个正在编辑的文档,指出该文档是否已经存盘

@IsText(value)
判断某个值是否为文本(或文本列表)。

@IsNumber(value)
判断某个值是否为一个数字(或数字列表)。

@Failure(string)
返回您给出的消息;当用于输入确认校验时,若输入的数值不符合校验条件,@Failure 将显示您给出的消息。                  

如:这个样例给出了输入校验公式。如果用户在"AreaCode"域中输入了大于 999 的数字,则返回一条错误信息"Area codes have only 3 digits"。    @If(AreaCode<999;@Success;@Failure(Area codes have only 3 digits"

@Success
返回 1(真)。在输入检查公式中将该函数与 @If 一起使用可以判断输入的值是否满足检查条件。

如:当"rice"域中的值小于100 时,以下的样例将返回 1 并允许文档保存。在输入检查公式中表示输入的数据正确。 @If(Price<100;@Success;@Failure(Price too large"


 
  作者域、读者域介绍


作者域是一个域类型为作者类型的域,它是用来控制文档的作者的。作者域不能控制到ACL编辑者以上的权限,拥有编辑者或编辑者以上权限的,不管该文档中的作者域是否有它。作者域只能控制作者或作者以下的权限。你只须将名字,角色,群组放到作者域的公式中就可以了。

读者域是一个域类型为读者类型的域,它是用来控制文档的读者的。读者域能控制到ACL的任何权限,即使它是管理者。也就是说,只要读者域里没有他,即使他是管理者也不能看到该文档。编程方法同作者域。


怎样定义一个域的宽度?


在普通表单中,没有办法控制域的宽度(在notes上);但在区域布局中你可以随意拖动域的宽度。所以你要控制域宽度,你可以把它放到区域布局中。


怎样激活表单继承属性


在form1表单的属性中的缺省选项中选择继承整个文档到RTF域,并选择继承到哪个域。然后回到视图中选定用form2创建的文档创建文档(用form1表单)。你就可以看到用form1表单创建的文档中的RTF域中继承了form2创建的文档创建文档,它可以文档链接,也可以是整个文档,这个选择表单属性就可以了。


常用保留域介绍


Notes 提供了预定义的域,可以使用它们来自动添加一些只有自己编程才能实现的功能。这些域名在 Notes 中是保留的。如果想使用不同的保留域名称或者重新定义该域,Notes 将显示错误消息。也就是说你在表单中放置同名的域,表单会自动完成一些功能,如:我加一个叫mailoptions的域,并将其值设为"1",然后在表单中创建一个sendto的域,当表单保存时,它会自动发送一个文档到sendto里的接收者。

邮递文档的保留域

保留域名称用途

MailOptions 
由用户决定是否邮递文档 

SaveOptions
控制文档在邮递时是否保存

Sign
创建者签名文档防止损害

Encrypt
加密邮件SendTo将邮件发送给本域列出的用户

CopyTo
将邮件的拷贝发送给本域列出的用户      

BlindCopyTo
将邮件的隐藏拷贝发送给本域列出的用户

DeliveryPriority
分别以"高"、"中"、"低"的优先级邮递邮件

DeliveryReport                                  
当邮件邮递给收件人时返回一个报告  

ReturnReceipt
当收件人阅读邮件时返回回执

MailFormat                                      
通过 cc:MailTM 邮递邮件

 

 

 

 

 

                                                                                                                                                                                                         
通用的保留域

保留域名称用途Categories分类文档$VersionOpt控制文档的版本跟踪FolderOptions将新文档放置到文件夹中Secret EncryptionKeys使用机密密钥加密文档,而不使用公用加密密钥

 

            
怎样判断某一天所在周的最后一天

@If(tdate != ""; @Adjust(tdate; 0; 0; @Modulo(8 - @Weekday(tdate); 7); 0; 0; 0); tdate)
 

怎样计算两个日期域间有几周?

diffDays := (EndDate - StartDate) / 86400 + 1;
strtDay := @Modulo(@Weekday(StartDate); 7);
endDay := @Modulo(@Weekday(EndDate); 7);
result := (diffDays - endDay + strtDay -  * 5 / 7 - @Max(-2; -strtDay) - @Min(1; endDay) + 5 - strtDay + endDay
 

怎样在公式里用Dos命令

@Command([Execute]; "C://COMMAND.COM"; "/C DEL C://TEST.TXT"


怎样截取@dblookup的错误信息

TempVar := @DbLookup();
@If(@IsError(TempVar); 'perform desired error response'; 'perform desired
action on TempVar')


怎样做到当文档有答复时,用邮件通知该文档的作者

1.在主文档,答复文档,答复的答复文档创建一个域:form,缺省值:@Name([CN];@Usernam
2.在答复表单创建一个域:parentform,缺省值(用继承)form
3.在答复的答复表单,创建一个域:"parentform"缺省值(用继承)
ParentFrom:from
4.在答复和答复的答复表单增加一个隐藏,显示时计算的"announce"域,公式是:@If(@IsDocBeingSaved;@Success;@Return(0));
List := @Trim(@Replace(ParentFrom;From;""));
@If(@Elements(List) >; 0; @Success;@Return(0));
SendList := @Prompt([OKCANCELLIST]; "Mail Notify?"; "Send mail notification about your reply to ";"";List);
@If(@Elements(SendList) >; 0; @Success;@Return(0));
@MailSend(SendList; ""; ""; "Ref:" + OriginalSubject; ""; "My reply: "; [IncludeDoclink])


怎样在notes.ini里将环境变量删除

ENVIRONMENT environmental variable := ""; 或者 @SetEnvironment("environmental variable";"").
 

在答复文档里如何修改主文档的值

@SetDocField($Ref;"Field on Parent Doc";"Value")
 

怎样得到一个群组里有哪些成员

@Name([CN];@DbLookup("";@Subset(@MailDbName;1) : "Names.nsf";"Groups";"YourGroupName";
"Members"))


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值