|
![]() |
#1 |
Участник
|
Две View на форме, которые соединяются по двум полям (AX 2009)
Есть форма с двумя гридами. Датасорсы обоих гридов View, которые должны джоиниться по двум полям.
Если я указываю в подчиненном датасорсе JoinSource первую вьюху и LinkType ставлю InnerJoin, то как оно выбирает поля, по которым джоинить? |
|
![]() |
#2 |
Участник
|
Скорее всего, они у вас сджойнятся без условий связи. Будет декартово произведение
Добавьте на одну из вьюх явный релейшен на другую
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Да, действительно, насчет релейшенов на вьюхах я погорячился)
Тогда, два варианта Первый - явно связать два датасорса в коде с помощью метода addLink() Второй - создать в AOT Query с джойном этих вьюх с явным указанием релейшенов по нужным полям. Использовать этот query в качестве источника данных на форме Если на форме есть другие датасорсы, помимо этих двух вьюх, то для второго случая придется переносить их всех в этот Query
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#5 |
Участник
|
Второй вариант я пробовал. При этом получается одна плоская таблица и при использовании двух гридов курсор на ведомом гриде двигается синхронно с ведущим гридом.
|
|
![]() |
#6 |
Участник
|
Вы же сами в исходном сообщении об InnerJoin'е писали
Если датасорсы должны работать как Master-Detail, то надо воспользоваться addDynalink()
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: AnGor (1). |
![]() |
#7 |
Участник
|
Действительно - не иннерджоин, а актив имелось в виду, прошу прощения.
|
|
|
|