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

Настройка атрибутов представлений

Настройка конкретных представлений и форм в существующем примере будет продемонстрирована на диаграмме классов Сущности, класс Order (Заказ). Для этого необходимо открыть класс на редактирование:

Order → [правая кнопка мыши] → ORM: Редактировать свойства → Представления

Представления класса Order

Как было сказано ранее, представление - это перечень атрибутов некоторого объекта данных, который используется в операциях чтения данных из источника данных. В каждое представление могут входить не только собственные атрибуты конкретного объекта данных, но и атрибуты связанных с ним объектов данных. Кроме того, для каждого представления можно указать заголовок - он будет учитываться при генерации приложения в виде подписи к полю, которое связано с соответствующим свойством.

В приведенном примере показаны два представления для класса Order (E- и L-представление). Открыть на редактирование представление для списковой формы (OrderL) (выбрать в строке с OrderL ячейку в столбце Properties и нажать на кнопку [ … ], появившуюся справа от строки):

Старое L-представление класса Order

С помощью стрелок [▲] и [▼]и именования заголовков на русском языке списку атрибутов можно задать следующий вид:

Новое L-представление класса Order

Number ‒ Номер
Status ‒ Статус
CreateDate ‒ Дата оформления 1
Manager.LastName ‒ Менеджер 2
TotalSum ‒ Стоимость заказа
PaymentDate‒ Дата оплаты
ShipmentDate ‒ Дата отгрузки

1 атрибуты наследуются от класса Document (Документ);
2 атрибут принадлежит связанному ассоциацией классу Employee (Сотрудник).

Аналогично настраивается представление для формы редактирования (OrderE):

Новое E-представление класса Order

Остался видимым только атрибут Manager для отображения на форме выбранного сотрудника. Атрибут Manager.LastName был скрыт (но не убран совсем из представления!): далее он потребуется при загрузке данных для лукапа - компонента, который используется для выбора из списка значения связанного мастера (мастерового объекта данных).

У таких атрибутов заголовки лучше оставлять пустыми (чтобы было легко их отличать от видимых). Для этого в поле Заголовок добавляется символ ~ (тильда).

При копировании наименований могут возникнуть неточности, приводящие к ошибкам генерации. Рекомендуется вводить все наименования вручную.


Далее можно настроить порядок и заголовки представлений остальных классов (в L-представлениях нужно включать только поле с наименованием мастера, то есть Мастер.Name, а в E-представлениях нужно включать и мастер, и поле с его наименованием, но при этом само поле мастера делать невидимым):

Вид OrderItem

Product.Name ‒ Товар
Amount ‒ Количество
PriceWTaxes ‒ Цена с налогом
Total Sum ‒ Сумма по позиции

Вид Invoice

Number ‒ Номер
Status ‒ Статус
CreateDate ‒ Дата оформления
Order.Number ‒ Номер заказа (Заказ 1)
CustomerName ‒ Получатель
TotalSum ‒ Сумма заказа
TotalWeight ‒ Вес заказа (кг)
Note ‒ Примечание
ShipmentDateTime ‒ Дата и время отгрузки
ResponsiblePerson.LastName ‒ Товар выдал

Вид InvoiceItem

Product.Name ‒ Товар
Amount ‒ Количество
Weight ‒ Вес (кг)
Price ‒ Цена
TotalSum ‒ Сумма по позиции

Вид Storehouse

Number ‒ Номер
Address ‒ Адрес
StoreKeeper.LastName ‒ Кладовщик

Вид StoreProduct

Product.Name ‒ Товар
Amount ‒ Количество

Вид Product

Product code ‒ Код товара
Name ‒ Наименование
Measure ‒ Единица измерения
Description ‒ Описание
Price ‒ Цена за ед.
Weight - Вес в кг

Вид Employee

Number ‒ Табельный номер
LastName ‒ Фамилия
FirstName ‒ Имя
MiddleName ‒ Отчество
PhoneNumber ‒ Телефон
Email ‒ Электронная почта
Position ‒ Должность

1 заголовок указан для формы редактирования.


Настройка мастеровых и детейловых атрибутов

На примере этого класса Order (Заказ) продемонстрирован предварительный внешний вид формы редактирования:

Order → [ПКМ] → ORM: Редактировать свойства → Представления → OrderE → [...] → Атрибуты → Просмотр

Предпросмотр формы радктирования Order

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

Для того чтобы переименовать заголовок у атрибута, являющегося детейлом, нужно закрыть предварительный просмотр и перейти на вкладку |Детейлы|. На этой вкладке в поле “Заголовок” указать новое значение:

Order item → Содержимое заказа

Список детейлов E-представления класса Order

Далее, нажав снова на кнопку [Просмотр], можно убедиться, что изменения применились, и теперь заголовок отображается корректно.

Другим требующим настройки свойством в E-представлении класса Order является поле Manager. Оно является мастеровым, поэтому на форме редактирования ему будет соответствовать компонент лукап (lookup). Под лукапом понимается компонент, позволяющий выбрать связанную запись из другого класса и записать её в указанное свойство данного класса.

Так как связанный мастеровой класс содержит в себе целый набор свойств, нужно выбрать, значение какого свойства будет выводится в лукапе для поля “Manager”, когда он будет выбран. Для этого щелкнуть на поле Manager в вкладке |Атрибуты|, выбрать для него тип лукапа standard и указать свойство мастера LastName:

Настройка лукапа атрибута Manager формы редактирования Order

Теперь все мастера и детейлы для E-представления класса Order настроены. В L-представлении этого делать не требуется, т.к. лукапы и детейлы на соответствующей списковой форме не отображаются, а получение мастеровых свойств для списка указаны через выбор атрибутов вида “Мастер.Свойство” на предыдущем шаге.


Самостоятельно необходимо настроить порядок и заголовки представлений остальных классов:

Класс Invoice

Детейл: Invoice item → Список товаров к выдаче

Мастера
Order (Заказ) → Number
ResponsiblePerson (Материально ответственное лицо) → LastName

Класс Storehouse

Детейл: Stock product → Список товаров
Мастер: Storekeeper (Кладовщик) → LastName

Класс InvoiceItem

Мастер: Product (Товар) → Name

Класс OrderItem

Мастер: Product (Товар) → Name

Класс StoreProduct

Мастер: Product (Товар) → Name


Итог

Настройка представлений - очень важный шаг, так как он определеяет внешний вид форм и данные, которые будут подгружаться для отображения на соответствующей форме. Этому этапу всегда стоит уделять особое внимание, потому что перегенерация приложения в случае каких-то изменений не всегда является простой задачей.

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

Перейти