Кастомная форма добавления записей в справочник

В системе ELMA, начиная с версии 3.11.8, реализована возможность создания кастомной формы отображения при добавлении записей в справочнике в веб-приложении.

В данной статье рассмотрим настройки, которые необходимо произвести в Дизайнере ELMA, и пример отображения настроенной формы в веб-приложении.

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

Сначала в Дизайнере создадим необходимые объекты. Их будет 4:

  • Имущество (родительский объект для всех видов имущества);
  • Недвижимость (дочерний объект базового типа Имущество);
  • Транспортные средства (дочерний объект базового типа Имущество);
  • Собственник имущества.

Рис. 1. Схема базовых и родительских объектов в Дизайнере

Создаем объект Имущество (в группе Общий модуль). На вкладке Дополнительные ставим флажок Разрешать создавать наследников.

Рис. 2. Карточка объекта "Имущество". Вкладка "Дополнительные"

Для этого объекта на вкладке Формы (представления) создадим любую форму (добавлять на нее ничего не надо) и нажмем в верхнем меню кнопку Настройки формы. Откроется окно, в котором перейдем на вкладку Системные.

 

Рис. 3. Настройки формы объекта "Имущество"

Для дальнейшей настройки нам понадобится уникальный идентификатор данной формы. Скопируем его.

Сохраняем все настройки и публикуем объект.

Создаем объект Недвижимость. Этот объект будет являться дочерним, поэтому на вкладке Дополнительные в качестве базового класса выберем созданный ранее объект Имущество.

Рис. 4. Карточка объекта "Недвижимость". Вкладка "Дополнительные"

Создадим третий объект Транспортные средства. Этот объект также является дочерним, базовый класс – Имущество.

 

Рис. 5. Карточка объекта "Транспортные средства". Вкладка "Дополнительные"

Сохраним и опубликуем оба этих объекта.

Создадим четвертый объект Собственник имущества. Все настройки данного объекта оставим стандартными. Добавим для этого объекта свойство Собственность. Тип свойства – Имущество, Тип связи – Многие-ко-многим.

 

Рис. 6. Настройки свойства "Собственность"

Для этого объекта создадим форму на вкладке Формы (представления). На эту форму добавим свойство Собственность. Щелкнем дважды мышью по полю этого свойства на форме и вызовем окно его настроек. Перейдем на вкладку Системные.

 

Рис. 7. Окно настройки свойств на форме. Вкладка "Системные"

Здесь нажмем кнопку редактирования разметки Razor.

Напротив поля Форма Razor нажмем кнопку редактирования. Откроется форма редактирования разметки Razor. В выпадающем списке Выберите представление для редактирования выберем пункт Стандартный интерфейс: Редактирование. Нажмем справа от окна с выпадающим списком кнопку Изменить. И затем заменим стандартный код на следующий:

@model IEnumerable<Imuschestvo>
@using EleWise.ELMA.ConfigurationModel
@using EleWise.ELMA.Model.Views
@using EleWise.ELMA.Web.Mvc.Html
@Html.EntityCollection(new Guid("26b2e20c-1a59-4df8-a4b8-4dd97c9e8030"))

 

Здесь в значение Guid вставим уникальный идентификатор, который мы скопировали при создании формы для объекта Имущество.

Окно настроек будет иметь следующий вид:

 

Рис. 8. Окно настроек разметки "Razor"

 

Сохраним и закроем данную форму.

Установим созданную нами пользовательскую форму в качестве формы по умолчанию на вкладке Формы (представления).

Сохраним и опубликуем созданные объекты. Также перезапустим сервер ELMA.

 

Для объектов Недвижимость и Транспортные средства добавим необходимые свойства. 

Например, для объекта Недвижимость добавим свойства Тип недвижимости и Адрес, а для объекта Транспортные средства - Название и Тип ТС.

Сохраним и опубликуем измененные объекты. Перезапустим сервер ELMA.

 

Для объектов Недвижимость и Транспортные средства настроим необходимые формы. Для этого на вкладке Формы(представления) дважды нажмем по существующей там форме (данная форма наследовалась от базового объекта Имущество и обозначена синим шрифтом).

 

Рис. 9. Вкладка Формы(представления) объекта "Транспортные средства"

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

 

Рис. 10. Форма объекта "Транспортные средства"

Сохраним и закроем форму.

После того, как настроены формы, сохраним и опубликуем объекты.

 

В веб-приложении перейдем в справочник Собственник имущества, добавим запись о собственнике и его имуществе. Форма добавления записи будет выглядеть так, как показано на рис. 11.

 

Рис. 11. Форма добавления записи в справочнике "Собственник имущества"

Введем ФИО собственника. Для добавления информации о его собственности нажмем на кнопку Создать. Будет открыто окно, в котором выберем тип имущества. Тип  - это созданные нами в Дизайнере объекты Недвижимость или Транспортное средство.

 

Рис. 12. Выбор типа имущества

Для каждого выбранного типа объекта будет открыта своя форма, которая также была настроена в Дизайнере.

Например, для выбранного объекта Недвижимость форма будет выглядеть так, как показано на рис. 13.

 

Рис. 13. Форма добавления записи о недвижимости

После нажатия на кнопку Сохранить введенные данные будут отображены на форме добавления записи справочника Собственник. После этого можно буде таким же образом добавить информацию о другом имуществе собственника.

 

Рис. 14. Форма добавления записи справочника "Собственник"

Если навести курсор мыши на запись, то в правом верхнем углу будут показаны кнопки . С помощью данных кнопок можно отредактировать или удалить информацию на выделенной форме.