2010年1月5日火曜日

ビューで選択した文書を、ビューのソート順に従って処理する

このトピックについて興味があり、遊んでみました。

ここでの問題は、ビューで選択したいくつかの文書を NotesUIView.Documents や NotesDatabase.UnprocessedDocuments で文書コレクションを取得しても、ビューの表示順(ソート順、並び順)のとおりに取り出すことができないことです。

そこで、ビューのエントリを最初から順になめていき、文書コレクションに一致する文書があれば処理する、といった手法で解決する例が紹介されていて感心したのですが、少々ややこしかったので簡単に書きなおしてみました。

下の例はビューのアクションボタンに記述しています。

Dim ws As New NotesUIWorkspace
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim entry As NotesViewEntry
Dim nav As NotesViewNavigator

Set dc = ws.CurrentView.Documents '選択文書を取得する(ここは作成日の昇順になる)

Set nav = ws.CurrentView.View.CreateViewNav
Set entry = nav.GetFirstDocument
While Not entry Is Nothing
    Set doc = dc.GetDocument(entry.Document)
    If Not doc Is Nothing Then
        'ここへ処理を記述します。例) Print Format$(doc.Created, "yyyy/mm/dd")
    End If
    Set entry = nav.GetNextDocument(entry)
Wend

0 件のコメント:

コメントを投稿