1

これはあなたにとって難しい問題です。私は NotesForm オブジェクトを持っていて、フィールドのデフォルト値を含む構造全体を取得しましたが、そのうちのいくつかは数式です。現在、コードを使用してそのフォーム用の NotesDocument オブジェクトをいくつか作成しています。NSF の構造については事前にわかりません。実行時のみです。データベースはどこからでも取得できます。つまり、私も式が何であるかを知りません。

ここで知りたいのは、デフォルト値 (@Today など) から読み取った数式テキストを Notes に渡し、その数式の結果を取得する方法はありますか? 次に、ドキュメントを生成するときにその値を使用できます。現状では、これらのフィールドはノーツ クライアント経由で入力された場合にデフォルト値が完全に設定されていた可能性があるにもかかわらず、空白になっています。

何か案は?

4

1 に答える 1

6

Evaluate 関数/メソッドを使用できます。Notes/Domino 環境内で LotusScript から操作している場合は、次のようなものを使用できます。

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

上記のスニペットの NotesDocument オブジェクトdocはオプションですが、特定の文書のデータを使用する式を評価する場合に必要です。@Today を評価するためにそれを使用する必要はありませんが、数式が別のフィールドの値を使用する場合は、数式言語エンジンにどのドキュメントを使用するかを伝える必要があります (コンテキスト ヒントがありません)。 「純粋な式」の状況)。

COM または Java を使用している場合、Evaluate ステートメントは言語の一部ではないため、Notes セッション オブジェクトのメソッドとして扱われます。

Evaluate は、通常は配列を含む Variant をネイティブに返します (エラー値を返す場合もあります)。LotusScript では、単一のスカラー値が返されることを期待している場合は、Variant を使用して 0 番目のインデックスを取得します。VB クラシックまたは VBA では、Variant になります。.NET ではオブジェクトです。Java ではベクトルになります。

于 2010-09-30T05:18:18.970 に答える