2010-09-30 69 views
1

對於您來說這是一個難題:我有一個NotesForm對象,並且我得到了整個結構,包括字段的默認值,其中一些是公式。現在,我使用代碼爲該表單創建一些NotesDocument對象。我不知道NSF的結構 - 只有在運行時,數據庫可以來自任何地方。所以,這意味着我也不知道公式是什麼。Lotus Notes Domino API - 從公式生成值

現在,我想知道的是:有沒有一種方法可以將我從默認值(例如:@Today)讀取的公式文本傳遞給Notes,並將結果返回給該公式?然後我可以在生成文檔時使用該值。就目前而言,如果已經通過Notes客戶端輸入了默認值,則這些字段爲空白。

任何想法?

回答

6

您可以使用評估函數/方法。如果您從LotusScript中的Notes/Domino的環境中操作,您可以使用這樣的事情:

Dim result As Variant 
result = Evaluate(formulaString [,doc]) 

的NotesDocument的對象,doc INT上面的代碼,是可選的,但必要的,如果你正在評估使用數據的公式從一個特定的文件。您不需要使用它來評估@Today,但是如果您的公式使用來自其他字段的值,那麼您需要告訴公式語言引擎要使用哪個文檔(它沒有它將具有的上下文提示一個「純粹的公式」情況)。

如果您使用的是COM或Java,則Evaluate語句不是該語言的一部分,因此它作爲Notes會話對象的方法進行尋址。

Evaluate本地返回Variant,通常包含一個Array(它也可能返回一個錯誤值)。在LotusScript中,如果您希望返回單個標量值,請使用Variant並獲取第零個索引。在VB經典或VBA中,它將是一個變體。在.NET中,它是一個對象;在Java中它將是一個向量。

+1

斯坦......你是個天才。不,我沒有在筆記環境中操作,但Evaluate方法存在於NotesSession對象中。謝謝1000次! – Matt 2010-09-30 08:24:34