2

約 20,000 のドキュメントを含むデータベースがあります。ビューの 1 つはドキュメント番号によって分類され、最後に作成されたドキュメントが各カテゴリの最初のドキュメントになるように並べ替えられます。一部のカテゴリ (文書番号) には、1 つの文書しか関連付けられていませんが、複数の文書が関連付けられているカテゴリもあります。各カテゴリで最後に作成されたドキュメントを特定し、それが最新のリビジョンであることを示すフィールドに書き込みたいと思います。簡単にできると思っていたのですが、なかなか難しいです。どんな助けでも大歓迎です。

MJ

4

1 に答える 1

4

あなたが言うように、最後に作成されたドキュメントが各カテゴリ内の最初のドキュメントになるように並べ替えられたビューがあると仮定するのは簡単かもしれません。その場合、そのビューをトラバースする場合、各カテゴリの後に最初のドキュメントを取得し、ドキュメントのアイテムの 1 つに値を設定するだけで済みます。

例えば、

Dim s as New NotesSession
Dim db as NotesDatabase
Dim view as NotesView
Dim nav As NotesViewNavigator
Dim viewEntry as NotesViewEntry
Dim docEntry as NotesViewEntry
Dim doc as NotesDocument

Set db = s.CurrentDatabase
Set view = db.GetView("My Categorized and Sorted View")
Set nav = view.CreateViewNav
Set viewEntry = nav.GetFirst  ' Should be your first category

While Not (viewEntry Is Nothing)

    Set docEntry = nav.GetNextDocument(viewEntry)  'The first document entry after the category
    Set doc = docEntry.Document
    doc.ReplaceItemValue("Some item", "This is the latest doc")
    doc.Save(false, false)
    Set viewEntry = nav.GetNextCategory(viewEntry)  'Jump to the next category

Wend
于 2013-07-05T16:42:40.193 に答える