Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[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 を使いたい場合があるんだよなぁ......。)

この現象については、サポート技術情報に載っていました。

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
読み込み中...

トラックバック

トラックバックはありません

コメント

コメントはありません

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 6230 to the field below:

^
×