Форма BaseEditForm (из пространства имен Ultima.Client) наследуется от CommonForm и является общим предком для всех форм редактирования справочников и документов:

DevBookmark_Scripts CommonForm

tree DevBookmark_Scripts BaseEditForm

В форме реализована поддержка мультиязычности, вложений, печати, открытия списковой формы редактируемого объекта, отмены внесенных изменений и их сохранения. Также форма содержит панель инструментов со всем перечисленным функционалом:

Control_BaseEditForm

Элемент управления обладает следующими специфичными свойствами:

IDLabelVisible – в значении true отображается идентификатор открытого в форме объекта (3);

ListButtonVisible – в значении true отображается кнопка, по которой раскрывается списковая форма открытого в форме BaseEditForm объекта (1);

MultilingualLabelVisible – в значении true отображается метка мультиязычности (5);

PrintButtonVisible – в значении true отображается кнопка печати (6);

RecordBarVisible – в значении true отображается панель инструментов;

ShowAttachments – в значении true отображается кнопка вложений (4);

Control_BaseEditForm_prop

UndoButtonVisible – в значении true отображается кнопка отмены внесенных в открытый в форме объект, но еще не сохраненных изменений (2).

DevBookmark_Scripts В классе формы BaseEditForm реализован интерфейс IRecordEditor, а также импортирован менеджер DictionaryManager.

При наследовании от формы BaseEditForm прикладному разработчику могут оказаться полезны следующие методы и свойства ее класса:

DataRecordChanged – событие, которое происходит после изменения данных редактируемой записи;

Print – событие, которое происходит при нажатии кнопки печати;

Export – событие, которое происходит при нажатии кнопки экспорта;

LoadedRecord – событие, которое происходит после загрузки записи.

SaveRecordAndClose() – сохраняет сделанные изменения и закрывает форму;

ID типа long – код текущей редактируемой записи справочника или документа;

DataRecord типа IBusinessObject – текущая редактируемая запись справочника или документ.

Также можно переопределить следующие методы и свойства класса формы BaseEditForm:

GetAvailableToolbarLinks() – позволяет добавить на панель инструментов формы дополнительные кнопки;

ValidateRecord(ValidationErrorCollection errors) – позволяет переопределить проверку записи перед сохранением в базу:

errors – коллекция ошибок;

ShowValidationErrors() – определяет логику отображения ошибок валидации на форме, например, чтобы выделить ошибки валидации каким-нибудь нестандартным способом;

EditRecord(long id) – открывает указанную запись на редактирование в модальном режиме:

id – идентификатор записи;

InsertRecord(IDictionary<string, object> parameters) – инициирует создание записи в модальном режиме:

parameters – параметры создаваемой записи;

CloneRecord(long baseId) – клонирует указанную запись в модальном режиме:

baseId – идентификатор записи для клонирования;

ViewRecord(long id) – отображает указанную запись в режиме только для чтения в модальном режиме:

id – идентификатор записи;

BeginEditRecord(long id) – открывает указанную запись на редактирование в немодальном режиме:

id – идентификатор записи;

BeginInsertRecord(IDictionary<string, object> parameters) – инициирует создание записи в немодальном режиме:

parameters – параметры создаваемой записи;

BeginCloneRecord(long baseId) – клонирует указанную запись в немодальном режиме:

baseId – идентификатор записи для клонирования;

BeginViewRecord(long id) – отображает указанную запись в режиме только для чтения в немодальном режиме:

id – идентификатор записи;

Modified типа bool – переопределяет проверку, что запись изменена;

InternalCreateRecord(IDictionary<string, object> parameters) – переопределяет создание новой записи справочника или документа:

parameters – параметры создаваемой записи;

InternalLoadRecord(long id) – переопределяет загрузку новой записи справочника или документа:

id – идентификатор записи;

InternalSaveRecord() – переопределяет сохранение новой записи справочника или документа;

OnDataRecordPropertyChanged(string propertyName) – метод вызывается, когда у записи справочника или документа изменяется указанное свойство:

propertyName – название свойства;

EndEdit() – применяет внесенные пользователем изменения к текущей загруженной записи. Например, если пользователь редактирует на форме текстовое поле, значение этого поля копируется в текущую запись;

RejectChanges() – отменяет сделанные пользователем изменения в записи и возвращает ее в исходное состояние;

BrowseRecords() – показывает списковую форму открытой в форме редактирования записи.