2010-09-30 84 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