Я пытаюсь создать представление в Domino, чтобы найти последний созданный документ в каждой категории. База данных Domino содержит записи об отчетах о курсах колледжа, и я создал представление с первым столбцом как CollegeClass, вторым столбцом как DateCreated и третьим столбцом как ReportTitle. Столбец CollegeClass, очевидно, может содержать несколько записей отчетов, и я хочу использовать формулу Lotus Notes в столбце DateCreated, чтобы отображать только последний отчет для каждого класса College. Я пробовал использовать @created несколькими способами, но пока безуспешно. Как мне отфильтровать это, чтобы показать только последний отчет?
Найти последний созданный документ в представлении
Ответы (2)
Вы не можете добиться этого с помощью представления. Документ в представлении нельзя скрыть в зависимости от другого документа.
Если это клиентское приложение Notes (а может быть, и веб-приложение), лучше всего сделать два представления. Один показывает то, что вы хотите (за исключением того, что он показывает все отчеты, но сначала показывает последний отчет), а другой - это папка с такими же столбцами представления.
Затем напишите библиотеку сценариев LotusScript, в которой есть функция, которая устанавливает / очищает это поле LatestReportInCategory, чтобы это второе представление показывало именно то, что вы хотите. Я предполагаю, что функция ...
Получите NotesViewEntryCollection всех документов в этой папке.
(например,Set col = db.GetView("LatestReportsPerCategory").AllEntries
)Получите объект NotesViewNavigator для представления.
Используйте NotesViewNavigator, чтобы пройти через получение первого документа в каждой категории и ...
Set doc = entry.Document
doc.PutInFolder "LatestReportsPerCategory"
col.Subtract doc
После прохождения через представление таким образом все документы, которые вы хотите во втором представлении, появятся там, но мы еще не очистили поле LatestReportInCategory для каких-либо отчетов, которые использовали как принадлежащие второму представлению. . Однако все эти дополнительные документы теперь являются единственными документами в коллекции NotesDocumentCollection, потому что мы вычли все относящиеся к ним, так что теперь вы можете сделать
col.RemoveAllFromFolder "LatestReportsInCategory"
Как только вы это заработаете, вы можете вызвать эту функцию из агента, который работает с новыми / измененными документами, или каждую ночь, из события сохранения и / или удаления документа отчета, или в любое другое время, когда это уместно. Кроме того, при использовании через Notes Client установите для события QueryAddToFolder папки значение False, так как код, а не пользователи, изменяют эту папку.