[Notes/Domino] NotesViewEntryCollection が間違ったコレクションを返すケースについて
特定の条件において、AllEntries や GetAllEntriesByKey が返す NotesViewEntryCollection のコレクションが、間違ったコレクションになる場合があるようです。
再現手順は以下のとおりです。
1. 以下のようなビューを作成します。(文書Aには "ああああ":"いいいい" という複数値の値がセットされています。)
列1 列2 ▼ああああ 文書A ▼いいいい 文書A 文書B ▼うううう 文書C
2. 以下のようなコードをビューのアクションボタンに記述します。
Dim ws As New NotesUIWorkspace Dim view As NotesView Dim ecol As NotesViewEntryCollection Dim entry As NotesViewEntry Dim i As Integer Set view = ws.CurrentView.View Set ecol = view.AllEntries i = 0 Set entry = ecol.GetFirstEntry() Do Until entry Is Nothing i = i + 1 Print i & " - " & entry.ColumnValues(1) Set entry = ecol.GetNextEntry(entry) Loop
3. アクションボタンを実行すると、以下のような結果になります。(「文書C」が出力されません。)
1 - 文書A 2 - 文書A 3 - 文書B
要は、複数値をカテゴライズしている場合に、分割されたエントリが複数回取得されてしまい、でも全体的には実際の文書数分しか取得しないので、最後のほうのエントリが削られてしまっている、ということのようです(x_x)
(ちなみに、列2の「複数値を別のエントリで表示」プロパティにチェックを入れていると、表形式コピーや書き出しでも同じことが発生します。)
この現象を回避するには、NotesViewNavigator クラスの方を使用すれば問題ないようです。(とはいっても、AllEntries を使いたい場合があるんだよなぁ......。)
この現象については、サポート技術情報に載っていました。
コメント
コメントはありません
※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。