Найти последний созданный документ в представлении

Я пытаюсь создать представление в Domino, чтобы найти последний созданный документ в каждой категории. База данных Domino содержит записи об отчетах о курсах колледжа, и я создал представление с первым столбцом как CollegeClass, вторым столбцом как DateCreated и третьим столбцом как ReportTitle. Столбец CollegeClass, очевидно, может содержать несколько записей отчетов, и я хочу использовать формулу Lotus Notes в столбце DateCreated, чтобы отображать только последний отчет для каждого класса College. Я пробовал использовать @created несколькими способами, но пока безуспешно. Как мне отфильтровать это, чтобы показать только последний отчет?


person AJF    schedule 12.05.2017    source источник


Ответы (2)


Вы не можете добиться этого с помощью представления. Документ в представлении нельзя скрыть в зависимости от другого документа.

person Knut Herrmann    schedule 12.05.2017
comment
Спасибо за ваш отзыв. Это избавляет меня от лишних затрат времени на это - person AJF; 15.05.2017

Если это клиентское приложение Notes (а может быть, и веб-приложение), лучше всего сделать два представления. Один показывает то, что вы хотите (за исключением того, что он показывает все отчеты, но сначала показывает последний отчет), а другой - это папка с такими же столбцами представления.

Затем напишите библиотеку сценариев LotusScript, в которой есть функция, которая устанавливает / очищает это поле LatestReportInCategory, чтобы это второе представление показывало именно то, что вы хотите. Я предполагаю, что функция ...

  1. Получите NotesViewEntryCollection всех документов в этой папке.
    (например, Set col = db.GetView("LatestReportsPerCategory").AllEntries)

  2. Получите объект NotesViewNavigator для представления.

  3. Используйте NotesViewNavigator, чтобы пройти через получение первого документа в каждой категории и ...

    Set doc = entry.Document
    doc.PutInFolder "LatestReportsPerCategory"
    col.Subtract doc

  4. После прохождения через представление таким образом все документы, которые вы хотите во втором представлении, появятся там, но мы еще не очистили поле LatestReportInCategory для каких-либо отчетов, которые использовали как принадлежащие второму представлению. . Однако все эти дополнительные документы теперь являются единственными документами в коллекции NotesDocumentCollection, потому что мы вычли все относящиеся к ним, так что теперь вы можете сделать
    col.RemoveAllFromFolder "LatestReportsInCategory"

Как только вы это заработаете, вы можете вызвать эту функцию из агента, который работает с новыми / измененными документами, или каждую ночь, из события сохранения и / или удаления документа отчета, или в любое другое время, когда это уместно. Кроме того, при использовании через Notes Client установите для события QueryAddToFolder папки значение False, так как код, а не пользователи, изменяют эту папку.

person JSmart523    schedule 15.05.2017