Lotus Script语法基础篇

合集下载

lotusscript技巧

lotusscript技巧

Lotus script 技巧LotusScript 是完全面向对象的编程语言。

它通过预定义的类与 Domino 接口。

Domino 监控用户代码的编译和加载,并且自动包含 Domino 的类定义。

访问现有的对象最好使用 LotusScript,例如:根据其他文档的值来更改一个文档中的值。

LotusScript 提供了一些公式没有的功能,例如:操作数据库存取控制列表 (ACL) 的能力。

写script关键是取对象,查看对象的属性,所以你要学会看notes提供的Script帮助。

下面是我收集的一些script例子。

一般是比较技巧的程序。

怎样判断视图中没有文档?set doc = vw.getfirstdocument()if doc is nothing then.....end if如何将查询结果放到一个文件夹里?下面是将搜索结果放到名叫newfolder的文件夹中,并跳转到该文件夹上Sub Click(Source As Button)Dim docs As notesdocumentcollectionDim doc As notesdocument...........q=doc.query(0)Set docs = db.ftsearch(q, 0)Call docs.PutAllInFolder( \"newfolder\" )Call w.OpenDatabase( \"\",\"\",\"newfolder\")End Sub如何删掉数据库中所有私有视图?Dim session As New notessessionDim db As notesdatabaseDim doc As notesdocumentSet db=session.currentdatabaseForall i In db.viewsSet doc=db.getDocumentByUNID(v.universalID)\' 这个地方视图当作文档来处理,以便取到视图的一些属性。

Lotus+Script+基本架构

Lotus+Script+基本架构

CInt CLng CSng CStr CVar
CInt(Expression) 把參數改成整數(Integer)的資料型態 CLng(Expression) 把參數改成長整數(Long)的資料型態 CSng(Expression) 把參數改成單精準值(Single)的資料型態 CStr(Expression) 把參數改成文字(String)的資料型態 CVar(Expression) 把參數改成 Variant 的資料型態
2.運算式的成員
在 Lotus Script 中的運算式,主要是由運算子來決定所要執行的動作,而運算元就是要處理的資料對 象;當然處理結束,就會產生一個結果。 因此運算式的三個主要成員就是運算元、運算子及運算結果。
(1) 運算元(Operands)
所謂的運算元就是在運算式中所要進行運算的單元,也就是所謂的『資料』;而為了使 Lotus Script 可以明白分辨這些資料運算元,於是我們根據運算元的宣告、特性及其使用方法, 將 Lotus Script 中的運算元分為下列幾類:
1.變數宣告
在 Lotus Script 中一共提供了三種方式來宣告程式中所使用的變數: ◎ 關鍵字宣告型態 ◎ 尾碼宣告型態 ◎ 自動宣告型態
當設計師在 Lotus Script 的程式中,完成變數宣告後,這些變數就已經存在記憶體中,設計師就 可以使用 Lotus Script 的指令或敘述句,把資料指定存入某一個變數的記憶體中,或是提取記憶 體中某一個變數的內容。
◎關鍵字(Keywords)
所謂關鍵字,是 Lotus Script 保留給自己使用的識別字;也是 Lotus Script 已經事先宣告的識別 字,在其程式中可以代表獨特的敘述意義或是某些常數。 例如

学习LotusScript

学习LotusScript

学习LotusScript学习LotusScriptLotusScript对象与类1.面向对象编程类是以抽象数据类型为基础的对象行为,抽象数据类型定义了以类型为基础执行所有接口为一个类而定义的所有操作称之为方法。

2.对象一般可以从两个方面来理解面向对象编程中的对象:?属性。

?对象。

3.类类是从对象中抽象出来,作为对具有相同特征的一组对象的描述。

类是一种定义,它描述该类中每个对象共有的属性和方法,类不占用计算机内存。

Notes中的类被分为前端类(front-end)和后端类(back-end)两种。

前端类主要对用户当前正在工作的对象、表示Notes客户机用户界面中的对象进行操作。

后端类可以访问和操作任何数据库中的任何文档、视图与文件夹内容、数据库ACL以及外部数据。

7个前端类?NotesUIDatabase :代表Notes工作台上打开的数据库?NotesUIDocument :用于用户访问当前文档?NotesUIView :代表当前的数据库视图?NotesUIWorkspace :帮助用户访问Notes当前的工作台?Button :代表表单或文档上的操作按钮、热点或按钮?Navigator :代表一个导航器上的对象,帮助用户操作浏览器?Field :代表表单中的一个域。

23个后端类?NotesACL :代表数据库中的所有存取控制列表,通过它用户可以访问和使用数据库中的存取控制列表?NotesACLEntry :代表存取控制列表中一个单一的ACL项目,通过它用户可以查询Notes 对象的访问属性?NotesAgent :代表一个代理,通过它用户可以运行一个代理或查询代理的属性?NotesDatabase :代表一个数据库,通过它用户可以获得一个数据库的属性和操作该数据库中的文档、视图、表单等所有与数据库相关的对象?NotesDataRange :代表Notes中的时间和日期,用于Notes中的日历和日程安排?NotesDataTime :用于Notes中的时间和日期格式的转换?NotesDbDirectory :代表Notes服务器和本地机上的所有数据库列表?NotesDocument :代表Notes数据库中的一个文档,通过它可以实现对文档的操作?NotesDocumentCollection :代表Notes中类的集合,通过它用户可以访问所有的文档?NotesEmbeddedObject :代表Notes中的嵌入对象、链接和附件,通过它用户可以操作以上的对象?NotesForm :代表Notes数据库中的一个表单,通过它用户可以访问表单的属性,还可以对表单进行一定的操作?NotesInternational :代表Notes所在操作系统的不同国家、不同的设置?NotesItem :代表文档中的域,通过它用户可以访问域的属性?NotesLog :用于创建Notes日志,记录Notes事件、操作和错误等?NotesName :代表Notes中的用户名、服务器名和访问控制列表中的名字?NotesNewLetter :代表一个概要文档,其中包括与其他文档的链接?NotesRichTextItem :代表RTF域,通过它用户可以访问RTF域?NotesRichTextStyle :用于设置RTF域的属性?NotesSession :代表用户与Notes的对话,是所有类的根类?NotesTimer :通过该类可以设定时间间隔来触发一个事件?NotesView :代表数据库中的一个视图,通过它用户可以获得数据库中所有的视图的属性和访问视图中的文档?NotesViewColumn :代表视图中的一个列,通过它用户可以获得列的属性?NotesRegistration :主要操作Notes用户名和通讯录,通过它用户可以增加用户和服务器、登记新用户、交叉验证等程序书写规则1.注释要添加注释,只要使用单引号“’”作为注释文字的开头。

lotus命令1

lotus命令1

--e--EditBottom将插入点移动到文档或表单的底部。

语法@Command([EditBottom])用法在处于设计模式的表单中,EditBottom 将插入点移动到表单的底部,就象用户使用ctrl+end 一样。

在处于编辑模式的文档中,EditBottom 将插入点移动到文档的最后一个可编辑域中。

在处于阅读模式的文档中,EditBottom 不起作用。

EditButton为选中的按钮显示设计窗格和属性框。

语法@Command([EditButton])用法必须在编辑模式下打开文档,或者必须在设计模式下打开表单必须选中一个按钮。

EditClear执行菜单命令“编辑”“清除”。

语法@Command([EditClear])用法在视图、文件夹或者处于阅读模式的文档中,将当前选定的文档标记为删除。

在处于编辑模式的文档中,删除突出显示的数据(文本、表格、图形、链接、文件附件或对象)。

在处于设计模式的表单、子表单、视图或文件夹中,删除突出显示的数据、域或列。

在工作台上,删除所选的图标(并非从磁盘上永久删除数据库)。

使用便捷图标来调用此命令最为方便。

当您在Web 应用程序中使用本命令时,它将删除当前文档。

仅对Web 中的表单使用本命令,而在视图操作中无效。

EditCopy执行菜单命令“编辑”“拷贝”。

语法@Command([EditCopy])用法在视图或文件夹中,将选定的文档拷贝到剪贴板。

在处于阅读或编辑模式的文档中,将突出显示的数据拷贝到剪贴板。

在处于设计模式的表单、子表单、视图或文件夹中,将突出显示的数据、域或列拷贝到剪贴板。

您可以使用便捷图标以调用该命令。

EditCut执行菜单命令“编辑”“剪切”。

语法@Command([EditCut])用法在视图或文件夹中,删除选定的文档并将它们放在剪贴板上。

在处于编辑模式的文档中,删除突出显示的数据并将它们放在剪贴板上。

在处于阅读模式的文档中,EditCut 无任何效果。

lotus script

lotus script

常用lotus script2010-04-10 15:36保存并关闭窗口@Command([FileSave]);@Command([FileCloseWindow])取消保存并关闭窗口REM {Notes only};FIELD SaveOptions := 0;@Command([FileCloseWindow])或 window.close()新建讨论主题viewname := @Subset(@ViewTitle; -1);@SetProfileField("tmpProfile"; "viewtitle"; viewname); @PostedCommand([Compose];"MainTopic")新建主文档的答复REM {notes only};@Command([Compose]; "Response")新建答复viewname := @Subset(@ViewTitle; -1);@SetProfileField("tmpProfile"; "viewtitle"; viewname);@PostedCommand([Compose];"Response")新建答复的答复@PostedCommand([Compose];"ResponseToResponse")父文档预览REM {notes only};@Command([ShowHideParentPreview])搜索REM {Web only};@Command([ViewShowSearchBar])转发@Command([MailForward])作为书签转发@Command([Compose]; @MailDbName; "Bookmark")移至废纸篓@Command([MoveToTrash])清空废纸篓@Command([EmptyTrash])新建文件夹@Command([CreateFolder])或var pathname = (window.location.pathname);window.open(pathname.substring(0,(stIndexOf('.nsf')+5))+'F olderCreate?OpenForm','Folder','scrollbars,screenX=150,screenY=200,wi dth=500,height=280');删除文件夹var pathname = (window.location.pathname);window.open(pathname.substring(0,(stIndexOf('.nsf')+5))+'F olderRemove?OpenForm','Folder','scrollbars,screenX=150,screenY=200,wi dth=500,height=250');移入文件夹@If(!@IsAvailable(form); @Return(@Prompt([Ok]; "警告"; "您必须先选择一个文档。

LotusScript语言知识

LotusScript语言知识
给数组元素赋值
目录
概述
1.1 LotusScript介绍 1.2 LotusScript特点 1.3 使用位置与执行时机
数据元素
2.1 数据类型 2.2 常量和变量 2.3 数组
Domino 对象
3.1 Domino 对象介绍 3.2 Domino 对象的属性 3.3 Domino 对象的方法
语法
Domino 对象
3.1 Domino 对象的介绍 3.2 Domino 对象的属性 3.3 Domino 对象的方法
语法
4.1 常用语句 4.2 错误处理语句
数据类型
类型
数值范围
初始值
Integer(整型)
Long(长整型) Single(单精度型) Double(双精度型) Currency(货币型)
4.1 常用语句 4.2 错误处理语句
对象的介绍
Domino 对象 是一组用来表示一个Domino应用程序的class,每一个class 都有其属性和方法 主要分为两类class Back-end:NotesDatabase、NotesDocument等 Front-end:NotesUIWorkSpace、NotesUIView等
对象的介绍
Domino 对象包含模式 Domino对象包含层级是Domino对象类别分享的关系,也就 是有些类别会再包含其他类别。 示例 Domino Server -> Databases -> Notes -> items 所以若要存取Item Value,就要先存取Database与Notes
myName.The third statement display the value of myName.
%EndRem

javascript基本语法分析说明

javascript基本语法分析说明

javascript基本语法分析说明javascript基本语法分析说明导读:要学习好JavaScript,首先我们要懂JavaScript语言的一些基本语法要求,下面是店铺为大家整理的javascript基本语法分析说明,欢迎参考~javascript的标识符标识符是指javascript中定义的符号比如变量名,函数名,数组名等等。

标识符可以由任意顺序的大小写字母,数字,下划线和美元符号组成,标识符不能以数字开头,也是不能使用javascript中的保留关键字。

javasceipt严格区分大小写,每条功能执行后以分号结束,每个词之间用空格、制表符、换行符或大括号、小括号这样的分隔符隔开。

~~~~~~~~以上部分虽然有些唠叨,但是是需要严格遵守的,所以还是要写上~~~~~~~~~~~~~~~~基本数据的类型与常量整型常量十六进制以0x或0X开头,例如0x8a。

八进制必须以0开头,例如:0123。

十进制的第一位不能是0(数字0除外),例如:123。

实型常量12.32、192.98、5E7、4e5等。

.0001,0.0001,1e-4,1.0e-4上面部分我就不多说了,不需要深究但是一定要有概念。

布尔值Booleantrue和false.true为真false为假null常量null空,为关键字它指明变量包含的关键字无效,换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。

可以通过给一个变量赋null值来清除变量的内容。

undefined常量undefined未定义的,属性是Global对象的一个成员,该属性在脚本引擎初始化后可用。

如果已声明了一个变量但还没有初始化,那么该变量的值就是undefined。

字符串型常量“thisisJavaScriptppt”、'abc'、“a”、“”。

字符串中的特殊字符,需要以反斜杠()后跟一个普通字符来表示,例如:\r、、、、'、”、\.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 变量在javascript中声明一个变量需要用var关键字来声明,声明变量时要对其赋值.列如:varname="zhansan";对赋值给予一个其他类型的数据。

LotusScrip及公式的学习

LotusScrip及公式的学习

LotusScript 及公式的学习1.LotusScript及公式是Lotus Notes提供的一个完整的编程接口,是一种与BASIC兼容的程序设计语言。

可以根据需要在NOTES的任意对象中附加LotusScript语句和公式。

LotusScript是一个完全面向对象的程序设计语言,具有丰富的类,方法和属性,包含有集成的对象浏览器和程序开发环境。

NOTES公式语言包含一整套的语法规则,提供丰富的命令和函数,可以对常量和变量进行计算,进行简单的逻辑控制。

2.公式基础:(1)输入公式的方式(两种)公式窗口设计窗口(2)公式语言的语法结构词法元素:公式有一个或多个语句构成,一个语句可以有变量,常量,运算符,函数,关键字等构成如:CTX:=@CreatedCTX是变量,:=是运算符,@Created是一个无参数的函数语句含义:把文档的创建时间赋给变量CTX如:@Trim(name)@Trim是函数,参数name是一个域名语句含义:把name值的多余空格去掉如:@Promp([OK];"问候!";"您好! ")@Promp是一个带三个参数的函数,参数[OK]是一个关键字,后面两个是文本常量语句含义:显示一个对话框如:LastName+", "+FirstNameLastName, FirstName是一个变量,+是一个运算符,", "是一个常量语句含义:将LastName,一个逗号和空格号, FirstName合并在一起通用语法规则(必须遵循)语句分隔符:使用分号分隔多哥语句如:FIELD txtmap:=txtmc;FIELD txtmc:=@DeleteField空格:在运算符,标点和值之间可以有任意多个空格,也可以没有,必须有一个来区分关键字,文本常量中的空格也很重要。

大小写:除了在文本常量中之外,其他都没分别运算符和值:两个值之间至少有一个运算符间隔。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Lotus Script语法基础篇注释注释在程序运行中并不执行,只是让程序员在编写程序的时候添加的一些标记性的文字,但他的作用可不容忽视,在编写一个程序模块时说明这个模块的功能、作用、创建时间、作者等,这对以后的维护大有好处。

一般在用户的脚本中插入头信息是一个不错的想法,如下事例:‘Script name: Connect internet‘Author: zynet‘Last Modified: 6/23/08‘Description: Connect my webserver.1.单行注释:通过输入一个单引号( ‘ )或REM ( Remark的缩写 )来添加。

2.多行注释:%Rem …%End Rem 所以以上例子也可以写成这样:%REMScript name: Connect internetAuthor: zynetLast Modified: 6/23/08Description: Connect my webserver.%END REM变量和数据类型1.声明变量Dim Variablename as typedim是dimension的缩写,为变量的值在内存中创建一个空间。

Variablename 是变量的名称,一个变量的名称一定要以字母开头,其后可以是字母、任何数字以及下划线,变量的名称不区分大小写,最多可容纳40个字符。

Lotus中有一些保留字,大部分是指令和语句,它们不能被用做变量名。

type是数据类型,可以是Boolean、Byte、Integer、Long、Single、Double、Currency、String、Variant 当然以后在介绍面象对象的时候还涉及到类和对象的定义,也是这个声明格式,这些在以后再介绍。

类型值 SizeVariant类型是这几种数据类型中最特殊的,他是一个变体类型,当定义的一个Variant型的变量时,可以给他赋以上任何一种类型的数据。

但是他也是占用内存最多的一个数据类型。

Currency类型则是最不常用到的,我以前都不知道有这样一个类型,如果有高手看到这里有不同的看法,可以发邮件给我,大家交流一下,可能有其他的特殊用途。

2.列表用户可以通过给Dim语句添加List运算符来声明一个列表。

声明:Dim Variablename List as TypeDim :定义变量Variablename 列表的名称List 定义为列表Type 列表的类型例子:Dim PriceList List as CurrencyDim ItemName as StringPriceList(“apple”)=1.05ItemName=”Oranges”PriceList(itemname)=1.85Messagebox PriceList(itemname)输出结果为:弹出对话框 1.853.数组数组是一组顺序下具有一系列的值,有一维数组,二维数组,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 stringRedim valarray(4) as stringvalarray(0)=”zys”messagebox valarray(0)二.先声明了一个数组,并且给这个数组中的元素赋了值,然后想要重新定义数组的个数,可用Redim来重新声明,如果用户已经给数组赋了值,并且想保留它们,可以用PRESERVE关键字来进行保存,以防重新改变它们大小时,值被擦除掉。

如下例所示:例1:Redim valarray(1) as integerValarray(0)=1Redim valarray(2) as integerMessagebox valarray(0)输出结果为:0例2:dim valarray() as integerRedim valarray(2) as integerValarray(0)=1Messagebox valarray(0)输出结果为:0例3:以下是重新定义了数组后保留了原值的例子:Redim valarray(1) as integerValarray(0)=1Redim preserve valarray(2) as integerMessagebox valarray(0)输出结果为:1例1和例2的区别就在于第一次定义后能不能附值,在例1中第一次定义用的是redim, redim定义数组时必须定义该数组的上界,且定义以后可以直接赋值使用; 而例2中第一次定义用的是dim, dim定义数组时如果定义了上界,则可以直接赋值使用,并且不能再用redim重新定义,如果没有定义上界,则不能直接使用,并且必须用redim重新定义后才能赋值使用。

两关于数组的特殊的函数Lbound(valarray) 输出数组的下界Ubound(valarray) 输出数组的上界选择和循环语句1.if语句If condition thenstatementsElseif condition thenstatements……ElsestatementsEnd if2.Select语句Select Case selectexprCase conditionListStatementsCase conditionListStatements…Case ElseStatementsEnd Select3.语句for conntvar=first to Last [Step increment] statementsnext [countvar]4.while语句While conditionStatementsWend5.Do While/until Loop语句永远循环DoStatementsLoop先检查条件,再循环Do while conditionStatementsLoopDo until conditionStatementsLoop先循环,后检查条件DoStatementsLoop while conditionDoStatementsLoop until condition6. ForallForAll refVar in containerstatementsEnd ForAll例子:Sub Click(Source As Button)Dim short(5) As IntegerForall x In shortx=1End ForallEnd 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) ‘调用子事例OutputNameEnd SubSub OutputName(name as string) ‘建立的新子事例,功能是输出参数name的值Messagebox nameSub输出结果为:弹出窗口lotus script子事例是没有返回值的,函数的使用和子事例差不多,但是函数有返回值。

如果想在子事例中返回一个值的话可以定义一个全局变量,然后给这个变量赋值就能达返回值的功能,如何定义一个全局变量将在作用域中讲到。

2. 函数程序员都知道函数的作用,我就不多说了,这里只说明一下定义和使用的格式Sub Click(Source As Button)Dim a As IntegerDim b As IntegerDim c As Integera=3b=4c=Sun(a,b) '使用求和函数得到a和b 的和Messagebox Cstr(a)+"+"+Cstr(b)+"="+Cstr(c)End SubFunction Sun(a As Integer ,b As Integer ) As Integer '定义函数Sun, 功能是返回两个参数的和c=a+bsun=c '给函数名赋值就是这个函数的返回值。

End Function输出结果:弹出对话框a+b3. 控制变量是否在需要声明才有效如果用户在脚本的options部分中设置了option declare, 那么就一定要声明所有的变量,不管它们是什么类型。

默认是可以不声明的,如下例:例1 (没有设置 option declare)Sub Click(Source As Button)TestVar=”hello word !”Messagebox TestVarEnd Sub输出结果为:(弹出对话框)hello word!例2 (设置了 option declare)Option DeclareSub Click(Source As Button)TestVar=”hello word !”Messagebox TestVarEnd Sub在保存的时候就会出现错误:Variable not declared:TestVar4. 作用域LotusScript的作用域分为三个,从小到大分别为:子事例或函数、对象(如按钮、域等)、窗体(如表单、视图等)(1)子事例或函数如果在子事例或函数中定义的变量只能在此子事例或函数中使用,在另外一个是不能用的,如下:Sub Click(Source As Button)Dim TestVar As StringTestvar="hello word!"End SubSub outputStrMessagebox testvarEnd Sub输出结果:弹出对话框为无值因为TestVar是在Click子事例中定义的,所以只能在Click子事例中使用,在OutputStr子事例中是不起作用的。

相关文档
最新文档