一、概述


LotusScript是一种和Basic相兼容的面向对象的Scripting环境,它具有强大的能够从事面向对象应用软件开发的语言范围,能够提供循环和分支的能力、数组以及访问Notes对象的能力。
判断Notes中什么时候使用LotusScript或公式语言
1)任何时候当执行该任务的函数或命令存在时,使用公式。
2)对于复杂的程序控制或循环,使用LotusScript。
3)存取或操作储存的文档数据要使用LotusScript,特别对于跨文档、跨数据库的存取。
4)若公式语言不能办到,则使用LotusScript
在Notes应用程序中访问和操作对象需要三步进行:
1.声明对象变量DIM 
    
DIM db As NotesDatabase

2.实例化一个类将其赋值给对象变量 
    
SET db = New NotesDatabase("Domestic","Sales.nsf")

3.使用这个对象的方法或属性 
    
db.created '用来展现创建数据库时的日期和时间


二、NotesScript中的数据元素


NotesScript中的常量 

    Null '特殊值,代表数据遗失或空
    Empty '相当于"",也就是空串
    Nothing '涉及变量的初始值,表示对象变量没有内容 
    PI '圆周率
    True/False '分别为数值1和0

数据类型

Integer(整型) Long(长整型) Single(单精度型) Double(双精度型)
Currency(货币型) String(字符串)

运算符

+ - * / < > <> = Not And OR &

常量和变量

 
Dim address As String '定义变量    
address = "100 Main Street " '变量赋值    
Const address = "100 Main Street" '创建字符常量address

通信输入和输出

 
Dim response as Integer    
response = Inputbox("Do you want to continue") '弹出输入框输入    
Messagebox(response) '弹出输出窗口输出数据

注释

1.单行注释:用Rem或'号
2.多行注释:用%Rem和%EndRem

 
%Rem '多行注释实例    
The first statement in this Script declares a variable myName.The second assign the value "Robert" to myName.The third statement display the value of myName.    
%EndRem

数据类型转换

 
Asc(String) 函数 '将字符串转化为ANSI字符代码    
CBool(expression) 函数 '将表达式转化为布尔型    
CByte(expression) 函数 '将表达式转化为字节型    
CCur(expression) 函数 '将表达式转化为货币型    
CDate(Strin*) 函数 '将字符串转化为日期型    
**bl(expression) 函数 '将表达式转化为双精度型    
Chr(Integer) 函数 '返回整数AscII码对象的字符,例如65表示A    
CInt(expression) 函数 '将表达式转化为整型    
CLng(expression) 函数 '将表达式转化为长整型    
CSng(expression) 函数 '将表达式转化为单精度型    
CStr(expression) 函数 '将表达式转化为字符串    
Hex(number) 函数 '返回十六进制    
Oct(number) 函数 '返回八进制


三、数组管理

Dim MyDays(7) as String '声明一个数组一共7个元素,下标为0~6    
Dim MyDay(1 to 7) as String '声明一个数组下标为1~7    
ReDim MyDay(1 to 3) '重新设置数组的边界和维数,这里ReDim用于定义动态数组    
UBound(MyDay,1) '返回数组的上界,1表示若是多维数组,返回第一维的上界    
LBound(MyDay) '返回数组的下界    
LBound(MyDay,2) '返回数组第2维的下界    
MyDay(1) = "Sunday" '给数组元素赋值


四、语句


1、IF ... End if

 
if balance > 100 then    
      interest = 0.35    
else    
      interest = 0    
end if

2、Select case
 
Select case thisMonth    
case 1    
        Response = "January"    
case 2 to 10 '也可以写成case 10,20,30或case is > 10    
        response = "Other"    
case else    
        MessageBox(thisMonth & "is invalid value")    
end Select    

3、Do...loops和while... wend
Do while/until 条件    
        '语句组    
loop    

Do    
        '语句组    
loop while/until 条件    

while 条件    
        '语句组    
wend

4、For...Next
For i = 1 to 5    
        MyDays(i) = InputBox("Enter your work days:")    
Next i

5、ForAll

 
ForAll m in db.managers '循环显示数组db.managers中的元素    
        MessageBox(m)    
End ForAll