LotusScript语言的基本知识
一、概述
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
address = "100 Main Street " '变量赋值
Const address = "100 Main Street" '创建字符常量address
通信输入和输出
Dim response
as Integer
response = Inputbox( "Do you want to continue") '弹出输入框输入
Messagebox(response) '弹出输出窗口输出数据
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.
% End 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.
% End Rem
数据类型转换
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) 函数 '返回八进制
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" '给数组元素赋值
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
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
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
'语句组
loop
Do
'语句组
loop while/ until 条件
while 条件
'语句组
wend
4、For...Next
For i = 1
to 5
MyDays(i) = InputBox( "Enter your work days:")
Next i
MyDays(i) = InputBox( "Enter your work days:")
Next i
5、ForAll
ForAll m
in db.managers
'循环显示数组db.managers中的元素
MessageBox(m)
End ForAll
MessageBox(m)
End ForAll