3.5.4. Экран редактирования Покупателя со списком Заказов

Займемся задачей отображения списка заказов в окне редактирования покупателя.

  • Перейдите на вкладку Generic UI на панели навигатора. Выделите экран customer-edit.xml и нажмите на кнопку Edit.

  • На странице дизайнера экрана перейдите на вкладку Datasources и нажмите на кнопку New.

  • Выделите только что созданный источник данных в списке. В правой части страницы отобразятся его характеристики.

  • В поле Type укажите collectionDatasource.

  • В списке Entity выберите сущность Order.

  • В поле Id будет автоматически заполнено значение идентификатора источника данных − ordersDs.

  • В списке View выберите представление _local.

  • В поле Query введите следующий запрос:

    select e from sales$Order e where e.customer.id = :ds$customerDs order by e.date

    Здесь запрос содержит условие отбора Заказов с параметром ds$customerDs. Значением параметра с именем вида ds${datasource_name} будет идентификатор сущности, установленной в данный момент в источнике данных datasource_name, в данном случае − идентификатор редактируемого Покупателя.

    qs customer screen orders ds
  • Нажмите на кнопку Apply для сохранения изменений.

  • Далее перейдите на вкладку Layout в дизайнере экрана и в палитре компонентов найдите компонент Label. Перетащите этот компонент на панель иерархии компонентов экрана, между fieldGroup и windowActions. Перейдите на вкладку Properties на панели свойств. В поле value введите значение компонента: Orders.

    qs customer screen label
    Tip

    Если разрабатываемое приложение предполагает локализацию на несколько языков, используйте кнопку localization рядом с полем value, чтобы создать новое сообщение msg://orders и задать его значение на требуемых языках.

  • Перетащите компонент Table из палитры компонентов на панель иерархии компонентов между label и windowActions. Выделите компонент в иерархии и перейдите на вкладку Properties. Задайте размеры таблицы: в поле width укажите 100%, в поле height установите значение 200px. Из списка доступных источников данных выберите orderDs, после этого в поле id с помощью кнопки generate_id сгенерируйте идентификатор таблицы: ordersTable.

    qs customer screen table
  • Для сохранения изменений в экране редактирования Покупателя нажмите на кнопку OK в верхней панели.