注释
‘Script name: Connect internet
‘Author: zynet
‘Last Modified: 6/23/08
‘Description: Connect my webserver.
1.单行注释:通过输入一个单引号( ‘ )或REM ( Remark的缩写 )来添加。
2.多行注释:%Rem …%End Rem 所以以上例子也可以写成这样:
Author: zynet
Last Modified: 6/23/08
Description: Connect my webserver.
%END REM
变量和数据类型
1.声明变量
Dim Variablename as type
dim是dimension的缩写,为变量的值在内存中创建一个空间。
类型 值 Size
类型 |
值 |
Size |
Boolean |
真 (-1) 或 假 (0) |
2字节 |
Byte |
从0到255的整数 |
1字节 |
Integer |
从-32768到32767的整数 |
2字节 |
Long |
从-2147483648到2147483647的整数 |
4字节 |
Single |
从-3.402823 E+38到3.402823E+38的任何数字 |
4字节 |
Double |
从-1.7976931348623158E+308到1.7976931348623158E+308的任何数字 |
8字节 |
Currency |
从-922337203685411.5807到-922337203685411.5807的任何数字。货币变量可能 多有4个十进制位置 |
8字节 |
String |
任何无格式文本值 |
每个字符两 2个字节 |
Variant |
任何值 |
16字节 |
Variant类型是这几种数据类型中最特殊的,他是一个变体类型,当定义的一个Variant型的变量时,可以给他赋以上任何一种类型的数据。但是他也是占用内存最多的一个数据类型。
2.列表
用户可以通过给Dim语句添加List运算符来声明一个列表。
声明:Dim Variablename List as Type
例子:
Messagebox PriceList(itemname)
输出结果为:弹出对话框 1.85
3.数组
数组是一组顺序下具有一系列的值,有一维数组,二维数组,LotusScript最多可以有8维。
声明一维数组:Dim valArray(5) as Integer 或 Dim ValArray(0 to 5) as integer
声明二维数组:dim TwoArray(1 to 5, 1 to 4) as Integer
这个数组的第一个元素是TwoArray(1,1) ,是一个二维数组
使用Option Base来改变数组的底数
当使用数组时,如果你的大脑能够很自然地想清楚它是从0开始而不是从1开始的,那么无论何时你要给arrayname(0)赋值都将不是问题。但是如果对这一点存在疑问,你可以通过改变LotusScript的功能来采取一些措施。如果你进入到 Options例程中,便可以添加”Option Base n”的命令行,n是默认的数组底限。添加Option Base 1,将使默认的数组底限设置为1,则arrayname(1)会成为数组的第一个成员。然而,当你使用多维数组的时候,需要小心使用Option Base. Option Base将把一个三维数组的中心从(0,0,0)移动到(1,1,1),这是一个有趣的数学问题。
声明变长数组:Redim valarray(5) as string
变长数组是指原来的数组个数不够用时,需要重新定义数组的长度,有两种情况:
一. 先定义了一个数组,但是没有声明个数(dim valarray() as string),在以后用到的时候才用Redim来重新声明。如下例所示,输出zys字符串:
Dim valarray() as string
Redim valarray(4) as string
valarray(0)=”zys”
messagebox valarray(0)
二.先声明了一个数组,并且给这个数组中的元素赋了值,然后想要重新定义数组的个数,可用Redim来重新声明,如果用户已经给数组赋了值,并且想保留它们,可以用PRESERVE关键字来进行保存,以防重新改变它们大小时,值被擦除掉。如下例所示:
例1:
Redim valarray(1) as integer
Valarray(0)=1
Redim valarray(2) as integer
Messagebox valarray(0)
输出结果为:0
例2:
dim valarray() as integer
Redim valarray(2) as integer
Valarray(0)=1
Messagebox valarray(0)
输出结果为:0
例3:
以下是重新定义了数组后保留了原值的例子:
Redim valarray(1) as integer
Valarray(0)=1
Redim preserve valarray(2) as integer
Messagebox valarray(0)
输出结果为:1
两关于数组的特殊的函数
Lbound(valarray) 输出数组的下界
Ubound(valarray) 输出数组的上界
选择和循环语句
1.if语句
If condition then
Elseif condition then
Else
End if
2.Select语句
Select Case selectexpr
Case conditionList
Case conditionList
Case Else
Statements
End Select
3.语句
for conntvar=first to Last [Step increment]
statements
next [countvar]
4.while语句
While condition
Wend
5.Do While/until Loop语句
永远循环
Do
Statements
Loop
先检查条件,再循环
Do while condition
Loop
Do until condition
Loop
先循环,后检查条件
Do
Loop while condition
Do
Loop until condition
6. Forall
ForAll refVar in container
End ForAll
例子:
Sub Click(Source As Button)
Dim short(5) As Integer
Forall x In short
End Forall
End Sub
结果:给short数组的每个元素赋值
中途退出循环
Exit LoopType
说明:looptype: for, while, do
子事例、函数、声明、作用域
1. 子事例
子事例也就是子过程,在编程窗格中单击一个按钮的click子事例就会打开如下click子事例:
Sub Click(Source As Button)
messagebox “hello word!”
End Sub
你可以在这个子事例中写出代码,如messagebox “hello word!” ,这是系统默认建立的一个单击子事例,同样的你可以建立自己的子事例如下:
Sub Click(Source As Button)
messagebox “hello word!”
End Sub
Sub OutputName(name as string)
Messagebox name
Sub
子事例是没有返回值的,函数的使用和子事例差不多,但是函数有返回值。如果想在子事例中返回一个值的话可以定义一个全局变量,然后给这个变量赋值就能达返回值的功能,如何定义一个全局变量将在作用域中讲到。
2. 函数
程序员都知道函数的作用,我就不多说了,这里只说明一下定义和使用的格式
Sub Click(Source As Button)
Dim a As Integer
Dim b As Integer
Dim c As Integer
a=3
b=4
c=Sun(a,b)
Messagebox Cstr(a)+"+"+Cstr(b)+"="+Cstr(c)
End Sub
Function Sun(a As Integer ,b As Integer ) As Integer '定义函数Sun, 功能是返回两个参数的和
c=a+b
sun=c
End Function
输出结果:弹出对话框a+b
3. 控制变量是否在需要声明才有效
如果用户在脚本的options部分中设置了option declare, 那么就一定要声明所有的变量,不管它们是什么类型。默认是可以不声明的,如下例:
例1 (没有设置 option declare)
Sub Click(Source As Button)
TestVar=”hello word !”
Messagebox TestVar
End Sub
输出结果为:(弹出对话框)hello word!
例2 (设置了 option declare)
Option Declare
Sub Click(Source As Button)
TestVar=”hello word !”
Messagebox TestVar
End Sub
在保存的时候就会出现错误:Variable not declared:TestVar
4. 作用域
LotusScript的作用域分为三个,从小到大分别为:子事例或函数、对象(如按钮、域等)、窗体(如表单、视图等)
Dim TestVar As String
Testvar="hello word!"
End Sub
Sub outputStr
Messagebox testvar
End Sub
输出结果:弹出对话框为无值
因为TestVar是在Click子事例中定义的,所以只能在Click子事例中使用,在OutputStr子事例中是不起作用的。
(2) 对象(如按钮、域等)
End Sub
Sub outputStr
End Sub
输出结果:弹出对话框hello word!
因为TestVar是在对象中定义的,所以在这个对象中的所有子事例或函数都起作用。
在窗体中定义的变量可以在这个窗体中的任何对象中使用,如下:
‘(Globals)test 窗体
Dim TestVar as String
Button1(按钮)
End Sub
‘Button2(按钮)
End Sub