2011年12月14日 星期三

LotusScript 與Formula結合時,| (Vertical bar) 發揮大功用.

每當純用LotusScript 來做類似@DBColumn 或@DBLookup動作時就覺得很不好寫..

比如:
       Search "Ref001" view的第一個Column 的動作

要先Search 出所有Document,取得第一筆, 取出第一個Column的欄位值到暫存列, 過慮是否重複,再取下一筆, 最後再排序.... ,往往一行@DBColumn 的動作,就要寫很久..

但其實 LotusScript 是可以結合 Formula 的, 只要透過Evaluate 及 | (Vertical bar) .

Formula 寫法如下: @DbColumn("":"NoCache";"":"";"REF001";1)
在 LotusScript 寫時, 一行只能出現兩個雙引號("), 如果套用有些語言處理雙引號的方法是在前面加上反斜線( \ ), 這會讓閱讀性大幅降低.

以LotusScript的作法是使用 | 來夾 ,經由 | 夾起來後, 不管多少個雙引號都視為字串, 可方便的加上變數.

Formula 的寫法改寫為LotusScript 也只要兩~三行即可完成:
 Dim vrColumn As Variant , tmpstr as string
  tmpstr = mailto:%7C@DbColumn(%22%22:%22NoCache";"| +db.Server+ |":"|+Ct_Replace(db.FilePath,"\","file://%22)+%7c%22;%22ref001%22;1/)|
  varColumn = Evaluate(tmpstr)

排序也只要在@Sort 加到@DBColumn前即可.

有的人堅持LotusScript 就是要只用LotusScript , 寫Formula 就是 Low,  但我覺得方便性及可讀性最重要..不一定寫的最多行就是最厲害.

沒有留言:

張貼留言