LotusScript及公式學習心得

genusBIT發表於2010-01-13
一、介紹

  LotusScript及公式是Lotus Notes提供的一個完整的程式設計介面,是一種與BASIC相容的程式設計語言。可以根據需要在NOTES的任意物件中附加LotusScript語句和公式。

  LotusScript是一個完全物件導向的程式設計語言,具有豐富的類,方法和屬性,包含有整合的物件瀏覽器和程式開發環境。

  NOTES公式語言包含一整套的語法規則,提供豐富的命令和函式,可以對常量和變數進行計算,進行簡單的邏輯控制。

  二、.公式基礎

  (1)輸入公式的方式(兩種)

  公式視窗

  設計視窗

  (2)公式語言的語法結構

  詞法元素:公式有一個或多個語句構成,一個語句可以有變數,常量,運算子,函式,關鍵字等構成如:CTX:=@Created

  CTX是變數,:=是運算子,@Created是一個無引數的函式

  語句含義:把文件的建立時間賦給變數CTX

  如:@Trim(name)

  @Trim是函式,引數name是一個域名

  語句含義:把name值的多餘空格去掉

  如:@Promp([OK];"問候!";"您好! ")

  @Promp是一個帶三個引數的函式,引數[OK]是一個關鍵字,後面兩個是文字常量

  語句含義:顯示一個對話方塊

  如:LastName+", "+FirstName

  LastName, FirstName是一個變數,+是一個運算子,", "是一個常量

  語句含義:將LastName,一個逗號和空格號, FirstName合併在一起

  通用語法規則(必須遵循)

  語句分隔符:使用分號分隔多哥語句

  如:FIELD txtmap:=txtmc;FIELD txtmc:=@DeleteField

  空格:在運算子,標點和值之間可以有任意多個空格,也可以沒有,必須有一個來區分關鍵字,文字常量中的空格也很重要。

  大小寫:除了在文字常量中之外,其他都沒分別

  運算子和值:兩個值之間至少有一個運算子間隔。

  變數:(兩種)域和臨時變數

  域:公式可以訪問正在被處理的問檔的域(名字和型別指定)

  資料型別:如如果Totalvalue是一個數字域,則不能用@Prompt直接顯示

  應該 @Prompt([OK];"問候!";@Text(Totalvalue));

  RTF文字域:不能進行賦值計算

  如:BodyText是一個RTF文字域,不能直接顯示,也不能使用@Text,可以訪問屬性。判斷是否為RTF文字域:

  @Prompt(OK],"是RTF文字域嗎?";@if(@IsAvailable_(BodyText);"yes";"no"))

  列表:一種包含多值的域@Elements(Locations) 返回列表中值的數目

  域值:可以利用公式來指定。

  如:FIELD Subject:="設計主題"

  空域:等價於文字常量中""

  如:FIELD Test:=if(Test="";"域值為空";Test)

  刪除域:可以使用@DeleteField從文件中刪除域

  如:FIELD BodyText:=@DeleteField

  表單域:沒儲存,則Form的域包含表單的名稱儲存,則域$TITLE,$Info,$WindowTitle和$Body反映表單的屬性

  如:@Prompt([OK];"表單名";@if(IsAvailable(Form);Form;$TITLE))

  語句含義:顯示用來建立當前的表單的名字

  例:刪除儲存在當前文件中的表單Test_Form,並且用資料庫中的表單First_Form來代替它

  SELECT $TITLE="Test_Form";

  FIELD $TITLE:=@DeleteField;

  FIELD $Info:=@DeleteField;

  FIELD $WindowTitle:=@DeleteField;

  FIELD $Body:=@DeleteField;

  FIELD Form.:="First_Form"

  臨時變數:只能用於公式中建立一個臨時變數:variablename:=value;兩者資料型別相同

  如:data:=@Created;month:=@Text(@Month(data));@Prompt([OK];"當前月份";month+"月")

  常量:(三種)文字常量,數字常量,時間-日期常量

  文字常量:注意@Repeat,"\"的使用

  數字常量:整數,小數,正負號,科學計數

  時間/日期常量:

  操作符:

  優先順序:賦值運算>列表運算>符號運算>算術運算>比較運算>邏輯運算

  計算順序:(注意)

  賦值操作符:

  列表操作符:

  如:Test:="長沙英華":"中南工大":"湖南師大";Res:=Test:"長沙教育學院"

  一元操作符:

  算術操作符:

  文字操作符:

  比較操作符:

  邏輯操作符:

  @函式:

  語法:函式的通用格式:

  @function-name(argument1;argument2;....)返回值:

  附加效果:

  @命令:@Command和@PostedCommand函式執行一個NOTES命令。

  @Do命令:按順序執行一系列語句

  @Return函式:終止

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14751907/viewspace-624987/,如需轉載,請註明出處,否則將追究法律責任。

相關文章