Takenoff Labs

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

[Notes/Domino] NotesView の EntryCount と AllEntries.Count の違い

NotesView.EntryCount と NotesView.AllEntries.Count は、ビューの文書全部に対して処理を行うときなどに、ステータス表示をするためによく使うと思います。どちらもビューのエントリ(文書)数を返しますが、動作はかなり異なります。先日自分がちょっとハマったので、自戒をこめてエントリ。

動作の違いをまとめると、以下の表のようになります。

区分 EntryCount AllEntries.Count
処理速度 速い 遅い
参照権限 計算しない 計算する
複数値(※) 影響なし 影響あり

(※:複数値を別のエントリで表示している場合。参考→「NotesViewEntryCollection が間違ったコレクションを返すケースについて」

EntryCount は処理速度がすごく速いですが、常に全体の件数を返してしまうので、読者名フィールドによって見られる文書が制限されている人が処理を行うと、実際に表示されている文書数とは異なる値が返ってしまいます(10文書しか見えていないのに、1,000件(=全体の件数)が返ってしまう、など)。

AllEntries.Count は、基本的には実際に見えている文書数を返しますが、いったんコレクションを返すため、EntryCount に比べると処理速度が遅いのと、複数値を別のエントリで表示しているビューでは誤った値が返る場合があります。うーん、どっちもどっち、という感じですね(´~`)

ちなみに、NotesViewNavigator.Count は、見えているエントリを正確にカウントしますが、カテゴリや合計行もカウントしてしまいますし、複数値を別のエントリで表示しているビューでは、同一文書も複数カウントしてしまします。文書数のカウントが欲しい場合は、あまり使えないですね。(複数値が無く、カテゴリが1つなら、NotesViewNavigator.Count - NotesView.TopLevelEntryCount という手もありますが……。)

いずれにしても、それぞれの特性を理解した上で、状況に応じて使い分けるのがベストかもしれませんね。

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
読み込み中...

トラックバック

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

コメント

ちょっとしたことですがすごく参考になりました。
でも、いまどきR5での開発がまだあり、R5にもEntryCountプロパティがほしいと思う、時代遅れ者です。 😉

ををををを! なっからさんだ! 😯
こんな僻地までご訪問いただき、ありがとうございます!m(_ _)m

R5は……最後に触ったのは何年前かなぁ。
デザイナー起動しているときにID切り替えるとおかしくなる罠に
はまりまくっていたのが懐かしい思い出です(涙

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





(以下のタグが使えます)
<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 5926 to the field below:

^
×