Описание

Класс DocExt является единственным публичным классом библиотеки DocExtLib. Объект класса неразрывно связан с каким-либо документом в приложении. Просто предоставьте этот документ при создании объекта DocExt. Объект класса работает с документом конфигурации типа DocExt, именованным как форма документа, с которым этот объект связан.


Создание объекта

Вы должны создать объект DocExt, прежде чем документ будет изменен. Таким образом, для UI документа, изменяемого пользователем посредством его формы, создание объекта должно быть написано в событии PostOpen формы. Для back-end документа напишите создание объекта DocExt для него перед всеми изменениями этого документа в программном коде.

Определение объекта:

dim doc as NotesDocument

dim ext as DocExt

Простое создание:

set ext = new DocExt( doc, "" )

Условное создание:

if not DEdocLocked( doc ) then

set ext = new DocExt( doc, "" )

end if

При условном создании объекта ( ext ), документ ( doc ) проверяется на его блокировку конфигурацией DocExt\Doc. Если документ не заблокирован, то функция DEdocLocked возвращает результат False (0).

Типичный программный код, который следует писать в событии PostOpen формы:

if source.isNewDoc then

set ext = new DocExt( doc, "" )

elseif source.editMode then

source.editMode = not DEdocLocked( doc )

if source.editMode then

set ext = new DocExt( doc, "" )

end if

end if


Обработка объекта

Обработка объекта DocExt выполняет все проверки связанного с объектом документа, предусмотренные его конфигурацией DocExt\Doc, и затем, если проверки были успешно пройдены, обновляет все связанные документы с журнализацией изменений.

Чтобы вызвать обработку объекта DocExt в Вашем коде, необходимо вызвать метод объекта под названием Update. Метод необходимо вызывать, прежде чем документ будет сохранен. Таким образом, для UI документа, изменяемым пользователем посредством его формы, необходимо вызывать обработку объекта DocExt в событии QuerySave формы. Для back-end документа необходимо вызывать обработку объекта DocExt сразу перед сохранением документа в программном коде.

Метод Update возвращает результат: True (-1) or False (0). Результат True означает, что документ успешно прошел все проверки, и связанные документы были обновлены. Проверки определяются пунктами Doc, а обновления определяются пунктами DocUpDoc конфигурации DocExt, связанной с документом по наименованию формы.

Напишите код в событии формы QuerySave, чтобы вызвать обработку объекта DocExt ( ext ) при сохранении UI документа:

continue = false

continue = ext.update( "" )

Напишите код, чтобы вызвать обработку объекта DocExt ( ext ) при сохранении back-end документа ( doc ):

if ext.update( "" ) then doc.save( true, false )


Ссылки по теме:

Конфигурация DocExt

Функция DEdocLocked

Смотрите также:

Библиотека кода DocExtLib