Копировать документ в другой вид и заблокировать текущий документ - PullRequest
0 голосов
/ 08 апреля 2019

Я все еще новичок в Notes, поэтому я все еще не знаком с каждой функцией.Я кратко объясню мой процесс.

У меня есть список документов в представлении «Список».Я хочу скопировать все текущие документы в другое представление, скажем, «Пакетно», как новый документ, и заблокировать флаг всего документа в представлении «Список».Я отредактирую новый документ в «Пакете», и когда я нажму «Сохранить», этот новый документ будет сохранен как новые текущие документы, а для старого текущего документа он будет удален в «старое» представление.Таким образом, я вижу новый документ редактирования и старый документ.

На данный момент я обнаружил эту ссылку для флага блокировки, но я не знаю, как создать для всех документов

Мой вопрос: нужно ли мне создать кнопку на моем виде, чтобы скопировать весь документ в другой вид?Как я могу скопировать весь документ в новый вид и сохранить как новый документ?Кто-нибудь может посоветовать какую-нибудь функцию, которую я могу добавить в процесс?Заранее спасибо!

1 Ответ

2 голосов
/ 09 апреля 2019

Я бы подошел к этому, сначала установив viewList.refresh в значение false: это останавливает обновление индекса представления при циклическом просмотре представления, особенно если вы вносите изменения, которые что-то изменяют в формуле выбора.

Выполните циклический просмотр каждого документа, с помощью document.copy создайте архив, установив параметр Form.

В конце цикла и в обработчике события завершения и / или ошибки установите viewList.refresh обратно в trueснова.

Таким образом, вам нужно только заблокировать исходный документ, если вы собираетесь его редактировать, и лучше всего это сделать в цикле на кратчайший срок, а не пытаться заблокировать все документы на времяпетля.Если вы пойдете по этому маршруту, также получите разблокировку документа в обработчике события и / или ошибки завершения.

Теоретически предложенные мной действия не требуют дублирования обработчика события и ошибки завершения: только мойосторожный характер.

Function CopyDoc( docOld As NotesDocument, dbThis As NotesDatabase) As NotesDocument
    Dim docNew As NotesDocument
    On Error GoTo Handler

    Set docNew  = docOld.copyto(dbThis)
    Call docOld.lock()
    docOld.Form = "Archive"
    Call docOld.Save(True,True)
    Call docOld.unlock()
    'docNew Edits You Want To Make
    Call docNew.Save(True,True)
    Set CopyDoc = docNew
e:  Exit Function

Handler:
    Call docOld.unlock()
    'additional logging for diagnostics
    Resume e
End Function
...