![]() |
#1 |
Участник
|
Relation между таблицей и View?
Есть три таблицы
MyHeader MyTable (на таблице есть relation к Myheader по полю HeaderId) MyLine (на таблице есть relation к MyTable по полю TableId) Нужно создать форму, которая будет в верхнем гриде показывать Header, а в нижнем суммарные данные по соответствующим MyLine. Создаю MyView, куда кладу MyTable, MyLine. В MyTable указываю группировку по HeaderId, на MyLine по нужным мне полям Если кладу на форму теперь MyHeader и MyView, но почему-то не создается диналинк по HeaderId между MyHeader и MyView и поэтому при перемещении по строкам верхнемго грида, записи в нижнем не меняются. Если просто создать запрос на основе MyHeader и MyView и выставить relations = true, то видно, что диналинка нет( Что не так? AX2012 R2 |
|
![]() |
#2 |
Участник
|
А у вас в датасорсах прописана связь между ними ?
Какой родительский а какой дочерний ? |
|
![]() |
#3 |
Участник
|
На форме:
MyHeader - родительский MyView - дочерний |
|
![]() |
#4 |
Участник
|
Какая-то ерундень из-за View!
Я пытаюсь даже явно добавить addLink между Header и записями из View в init() датасоурса формы. Когда делаю addLink в init() View, то получаю "The data source is not embedded within a (parent) data source " Если же присоединять Header к View ( в init() header), то все срабатывает, вот только, ест-но записи на форме сразу задваиваются, тк relation 1(header):N (записей в View). Вот и пользуйся этими View ... |
|
![]() |
#5 |
Участник
|
Попробуйте не relation link прописывать, а в executeQuery на View добавить range:
с помощью функции findOrCreateRange_W например с фильтром по полю по которому идёт джойн. Ведь там же джойнмод стоит active или delayed, потому оно и не даёт link добавить, ведь датасорс View не заджойнен к MyTable по настоящему. |
|
![]() |
#6 |
Участник
|
Цитата:
Цитата:
Сообщение от VORP
![]() Попробуйте не relation link прописывать, а в executeQuery на View добавить range:
с помощью функции findOrCreateRange_W например с фильтром по полю по которому идёт джойн. Ведь там же джойнмод стоит active или delayed, потому оно и не даёт link добавить, ведь датасорс View не заджойнен к MyTable по настоящему. ![]() Последний раз редактировалось S.Kuskov; 22.07.2014 в 08:35. |
|
![]() |
#7 |
Участник
|
Теперь по поводу того, почему этот Dynalink не формируется самостоятельно. У вас на каком уровне прописана связь между MyTable и MyHeader? на уровне таблицы или на уровне расширенного типа данных (как в предыдущих версиях)?
Нужно проверить, но мне кажется что и в предыдущих версиях аксапты связи с таблиц не переходили на View, только связи с EDT. Учитывая, что в последних версиях от связей на EDT отказались - ситуация тупиковая. Разработчикам аксапты нужно было либо реализовать поддержку использования на View связей с соответствующих таблиц, либо создать на View такой-же узел Relation как и на таблицах, для возможности вручную прописать нужные связи. |
|
|
За это сообщение автора поблагодарили: kitty (1). |
|
|