Рассмотрим гибкий инструмент, предусмотренный в системе 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.
Пурурум, все готово)
Допустим на Вашей форме присутствует 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.
Пурурум, все готово)