LotusScript のクラスでビューやフォルダ内の文書を検索する

最初に、NotesDatabase オブジェクトの GetView メソッドまたは Views プロパティを使用して、ビューやフォルダを検索して NotesView オブジェクトに設定します。

注: ビューやフォルダは、共有ビューかフォルダ、または、データベース内に保存されてエージェントを実行している有効な ID が所有する個人ビューかフォルダでなければなりません。デスクトップに保存された個人ビューやフォルダに LotusScript® を使用してアクセスすることはできません。

ビューを一覧する

NotesView の GetFirstDocument (または GetLastDocument) に続けて、GetNextDocument (または GetPrevDocument) メソッドのループを使用すると、ビューやフォルダ内のすべての文書を一覧できます。

ビュー内での位置が分かっている文書を取得する

NotesView の GetNthDocument を使用すると、ビューやフォルダのトップレベルの (主要な) 文書内での位置が分かっている文書を取得できます。このメソッドは返答文書にはアクセスしません。

全文検索でビューのサブセットを作成する

NotesView の FTSearch メソッドは、検索条件に一致する文書で構成されるビューやフォルダのサブセットを作成します。FTSearch の最初の引数として指定する検索条件は、全文検索の規則に従った文字列です。この規則では、検索エンティティは引用符で囲まれた単語か複数の語句でなければなりません (LotusScript の文字列定数では二重引用符)。検索エンティティには、ワイルドカード ? と * を含めることができ、! (NOT)、& (AND)、| (OR) 演算子を組み合わせることもできます。

検索する前にデータベースで全文索引を作成しておく必要はありませんが、検索の速度は遅くなります。NotesDatabase の UpdateFTIndex メソッドは全文索引を作成または更新します。NotesDatabase の IsFTIndexed プロパティは索引が作成されているかどうかを調べます。

ビューやフォルダのサブセットを作成した後は、NotesView の GetFirstDocument (または GetLastDocument) と GetNextDocument (または GetPrevDocument) を使用して、サブセットを一覧できます。サブセットのビューには階層がなく、返答文書の階層もありません。

NotesView の Clear メソッドを使用すると、ビューやフォルダを、完全に復元できます。

ソートされた列のキーでビューのサブセットを作成する

GetDocumentByKey メソッドを使用すると、ソートされた列の指定された文字列に一致する最初の文書を、ビューまたはフォルダ内で検索することができます。例えば、列 1 と列 2 がソートされている場合は、文字列を 1 つ指定し、最初の列で一致するものを検索できます。また 2 つの文字列を指定し、最初の文字列で一致するものを検索した後、2 番目の列で一致するものを検索できます。キーとの部分一致または完全一致を指定することもできます。

ビューまたはフォルダ内でソートされた列で指定した文字列が一致したすべての文書を検索するには、GetAllDocumentsByKey メソッドを使用します。この方法では、検索された文書に ColumnValues プロパティの設定はしません。これが問題であれば、GetDocumentByKey を使用して最初に一致した文書を検索し、次に GetNextDocument を使用してそれ以降の文書で一致するものも検索できます。ただし、それらの文書が条件に一致するかどうかを確認する必要があります。

返答文書を処理する

NotesView の GetNextSiblingGetPrevSibling の各メソッドを使用すると、返答の階層で、現在の文書とはレベルが異なる文書をスキップできます。例えば、返答文書を持つメイントピックにアクセスしている場合、GetNextSibling は次のメイントピックを取得します。この場合、GetNextDocument を使用すると、現在のメイントピックの最初の返答文書が取得されます。

GetChild メソッドを使用すると、現在の文書の 1 つ下のレベルの最初の文書を取得できます。GetParentDocument メソッドを使用すると、1 つ上のレベルの文書を取得できます。また、NotesDatabase の ParentDocumentUNID プロパティGetDocumentByUNID メソッドに渡すこともできます。

NotesDocument の Responses プロパティを使用すると、NotesDocumentCollection オブジェクトの文書の最初のレベルの返答文書をすべて収集できます。文書が親文書ではない場合、オブジェクトに返答文書は含まれません。2 番目以降のレベルの返答文書を取得するには、各レベルのそれぞれの返答文書の Responses プロパティにアクセスしなければなりません。Responses プロパティで収集される文書の順序は特に定められていません。

NotesDocument の IsResponse プロパティを使用すると、文書が返答文書かどうかを確認できます。

MakeResponse メソッドを使用すると、ある文書を別の文書の返答文書にできます。

文書をフォルダに入れる

NotesDocumentCollection の PutAllInFolder メソッドまたは NotesDocument の PutInFolder メソッドを使用すると、文書を共有フォルダや個人フォルダにコピーできます。NotesDocumentCollection の RemoveAllFromFolder メソッドまたは NotesDocument の RemoveFromFolder メソッドを使用すると、文書を共有フォルダや個人フォルダから削除できます。