среда, 31 июля 2013 г.

Axapta. Parts

Рассмотрим гибкий инструмент, предусмотренный в системе Microsoft Dydamic AX, Parts. С его помощью можно легко помещать различную информацию из лабиринта связанных таблиц на форму, пользуясь объектами Query. Это и смотрится симпатично, и делается все в несколько перетаскиваний и кликов.

Допустим на Вашей форме присутствует Grid, отображающий записи в таблице FilmTable, и стоит задача отображать информацию о студии, которая выпустила выделенный фильм (Таблица SudioTable).

1) Создаем Query.
Для начала создадим объект Query, например, с названием StudioOfFilm, чтобы было понятно, для чего он собственно нужен. В нем необходимо создать Data Source для таблицы, откуда мы будем доставать информацию, то есть StudioTable.

Если нам нужно отображать еще и информацию о директоре студии, которая содержится в таблице DirectorsTable, то в датасорсе таблицы StudioTable нужно создать дочерний датасорс, назначить ему таблицу DirectorsTable и настроить в созданном датасорсе соответствующие Relations для связи с таблицей StudioTable. Например StudioTable_ds.DirectorName == DirectorsTable.Name. Но при этом необходимо учитывать условие, что поле Name в таблице DirectorsTable должно быть индексом.

We need to go deeper.

Замечание: Для группы Fields каждого датасорса нужно выставить свойство Dynamic в значение Yes.

2) Создаем InfoPart.
Вторым шагом будет создание InfoPart, которая будет определять, какую информацию из выбранных таблиц отображать, и каким образом. Называйте ее именем, созвучным с именем Вашего Query.

В значении свойства Query в InfoPart выберите созданный вами Query (StudioOfFilm), а затем в разметке вашей части (Layout) создайте группы для соответствующих таблиц. В них можно выбрать нужный датасорс и группу полей таблицы, которые следует отобразить. При необходимости можно создавать поля в ручную. (Есть возможность использования Display методов).

Дело почти сделано.

3) Создаем MenuItem.
Дело осталось за малым. Создаем MenuItem типа Display, задать ему Object типа Info Part (Наша InfoPart) и перетащить его в Parts нашей формы. FormPart будет создан автоматически. В нем нужно выбрать DataSource формы и Relation, по которой этот датасорс связан с главным датасорсом запроса Query.

Пурурум, все готово)

Комментариев нет:

Отправить комментарий