Форма BaseEditForm (из пространства имен Ultima.Client) наследуется от CommonForm и является общим предком для всех форм редактирования справочников и документов:
CommonForm
BaseEditForm
В форме реализована поддержка мультиязычности, вложений, печати, открытия списковой формы редактируемого объекта, отмены внесенных изменений и их сохранения. Также форма содержит панель инструментов со всем перечисленным функционалом:
Элемент управления обладает следующими специфичными свойствами: •IDLabelVisible – в значении true отображается идентификатор открытого в форме объекта (3); •ListButtonVisible – в значении true отображается кнопка, по которой раскрывается списковая форма открытого в форме BaseEditForm объекта (1); •MultilingualLabelVisible – в значении true отображается метка мультиязычности (5); •PrintButtonVisible – в значении true отображается кнопка печати (6); •RecordBarVisible – в значении true отображается панель инструментов; •ShowAttachments – в значении true отображается кнопка вложений (4); |
•UndoButtonVisible – в значении true отображается кнопка отмены внесенных в открытый в форме объект, но еще не сохраненных изменений (2).
В классе формы 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() – показывает списковую форму открытой в форме редактирования записи.