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

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

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

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

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

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

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

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

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

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

    select o from sales$Order o where o.customer.id = :ds$customerDs order by o.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 в верхней панели.