lotusscript基本语法.docx_第1页
lotusscript基本语法.docx_第2页
lotusscript基本语法.docx_第3页
lotusscript基本语法.docx_第4页
lotusscript基本语法.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LotusScript基本语法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 通信输入和输出 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个元素,下标为06 Dim MyDay(1 to 7) as String 声明一个数组下标为17 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 1.声明变量 Dim Variablename as type dim是dimension的缩写,为变量的值在内存中创建一个空间。 Variablename 是变量的名称,一个变量的名称一定要以字母开头,其后可以是字母、任何数字以及下划线,变量的名称不区分大小写,最多可容纳40个字符。Lotus中有一些保留字,大部分是指令和语句,它们不能被用做变量名。 type是数据类型,可以是Boolean、Byte、Integer、Long、Single、Double、Currency、String、Variant 当然以后在介绍面象对象的时候还涉及到类和对象的定义,也是这个声明格式,这些在以后再介绍。 类型 值 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字节 2.列表定义 List 类型 为1 维的数组 用户可以通过给Dim语句添加List运算符来声明一个列表。 声明:Dim Variablename List as Type Dim :定义变量 Variablename 列表的名称 List 定义为列表 Type 列表的类型 例子: Dim PriceList List as Currency Dim ItemName as String PriceList(“apple”)=1.05 ItemName=”Oranges” PriceList(itemname)=1.85 Messagebox PriceList(itemname) 输出结果为:弹出对话框 1.85 3.数组 数组是一组顺序下具有一系列的值,有一维数组,二维数组,LotusScript最多可以有8维。 声明一维数组:Dim valArray(5) as Integer 或 Dim ValArray(0 to 5) as integer 这个数组的下标是从0开始到5,也就是数组ValArray有6个元素。 声明二维数组: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 例1和例2的区别就在于第一次定义后能不能附值,在例1中第一次定义用的是redim, redim定义数组时必须定义该数组的上界,且定义以后可以直接赋值使用; 而例2中第一次定义用的是dim, dim定义数组时如果定义了上界,则可以直接赋值使用,并且不能再用redim重新定义,如果没有定义上界,则不能直接使用,并且必须用redim重新定义后才能赋值使用。 两关于数组的特殊的函数 Lbound(valarray) 输出数组的下界 Ubound(valarray) 输出数组的上界 1.if语句 if condition1 then statement1 elseif condition2 then statement2 else statement3 end if 2.select case语句 select case selectexpr Case conditionList Statements Case conditionList Statements Case Else Statements End Select 3.for语句 for conntvar=first to Last Step increment statements next countvar 4.while语句 While condition Statements Wend 5.Do While/until Loop语句 永远循环 Do Statements Loop 先检查条件,再循环 Do while condition Statements Loop Do until condition Statements Loop 先循环,后检查条件 Do Statements Loop while condition Do Statements Loop until condition 6. Forall ForAll refVar in container statements End ForAll 例子: Sub Click(Source As Button) Dim short(5) As Integer Forall x In short x=1 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!” dim name=”lotus script” OutputName(name) 调用子事例OutputName End Sub Sub OutputName(name as string) 建立的新子事例,功能是输出参数name的值 Messagebox name Sub 输出结果为:弹出窗口lotus script 子事例是没有返回值的,函数的使用和子事例差不多,但是函数有返回值。如果想在子事例中返回一个值的话可以定义一个全局变量,然后给这个变量赋值就能达返回值的功能,如何定义一个全局变量将在作用域中讲到。 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) 使用求和函数得到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的作用域分为三个,从小到大分别为:子事例或函数、对象(如按钮、域等)、窗体(如表单、视图等) (1)子事例或函数 如果在子事例或函数中定义的变量只能在此子事例或函数中使用,在另外一个是不能用的,如下: Sub Click(Source As Button) Dim TestVar As String Testvar=hello wo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论