1

ビュー選択式内のドキュメント選択ルーチンとしてロータススクリプト関数を使用できますか?

これが選択基準を決定する私の蓮の関数です

Function MyFilter(doc As NotesDocument) as boolean

'very complex filtering function '........

End Function

これが、蓮の関数を内部に組み込みたいビュー選択式です。

SELECT (Form = "Form1")

  1. 上記のロータススクリプト関数を選択式の中で使用できますか?

    SELECT (Form = "Form1" & MyFilter(sourceDoc))

  2. データベース内の各ドキュメントをトラバースし、必要に応じてドキュメントをビューに追加することで、ビューの選択で数式言語を避け、実行時にビューにデータを入力できますか?

  3. 「ユーザー定義式」(式言語)を書く方法はありますか?

  4. このような問題に対処するためのCAPIを作成できますか?

4

2 に答える 2

3
  1. いいえ、ビュー選択式に LotusScript を含めることはできません

  2. ビューではありませんが、そこに何かがあります。私は過去にフォルダを使用してそれを行いました。ビューには、ビュー選択式に一致する一連のドキュメントが含まれています。一方、フォルダーには、ユーザーまたはコードによって配置されたドキュメントのコレクションを含めることができます。Lotusscript の世界では、NotesView クラスを使用して、ビューと同じ方法でフォルダーにアクセスします。次に、ドキュメントの PutInFolder メソッドまたはドキュメント コレクションの PutAllInFolder メソッドを呼び出して、そのフォルダーにドキュメントを追加できます。

  3. いいえ。ただし、SelectionFormula プロパティを使用して、ビューで使用される式をプログラムで指定できます。しかし、そのプロパティは数式言語で書かれた文字列を想定しています。

  4. 私は C API にあまり詳しくありませんが、#3 と同じことしかできないと思います - 選択式として使用される式を指定します。LotusScript コードに基づいて文書を選択するのには役立ちません。

私は以前にいくつかのプロジェクトでこの道を進んできましたが、私が見つけた最良の解決策は、回答#2で提案したものでした。つまり、プログラムでフォルダーをクリアしてから作成し、コードの最終ステップとしてユーザーをそのフォルダーに移動させることができます。この方法を使用すると、LotusScript を自由に使用して文書をフィルタリングし、「クエリ結果」ビューを作成できます。

あまり理想的ではありませんが、機能的な別の方法として、すべてのドキュメント内の 1 つのアイテムに特別な値をスタンプし、ビューをフィルター処理して、その特別な値に等しいアイテムを持つドキュメントのみを表示する方法があります。たとえば、LotusScript で検索を実行し、db.Search メソッドを使用してドキュメント コレクションを作成できます。次に、documentcollection.StampAll メソッドを使用して、「SHOWME」項目を「YES」に設定します。次に、SHOWME = "YES" のドキュメントのみを表示するようにビューを設定するだけです。もちろん、このコードの最初のステップとして、データベース内のすべてのドキュメントからその SHOWME アイテムを削除する必要があるため、毎回白紙の状態から始めることになります。この方法は、ドキュメントが増えるほど遅くなりますが、ドキュメントが数百個しかない場合は問題なく動作します。

お役に立てれば!

于 2010-06-23T13:33:56.590 に答える
1

残念ながら、ビュー選択式でLotuscriptを使用することはできません。ただし、これまでにこれに対処した1つの方法は、フォームのQuerySave(またはWebQuerySave)イベントで複雑な数式を呼び出し、すべてのドキュメントの非表示フィールドを[はい]または[いいえ]に設定することです。次に、その非表示フィールドを使用します。ビュー選択式:

SELECT (Form = "Form1" & MyFilterField="Y") 
于 2010-06-23T14:29:37.193 に答える