AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2013, 14:32   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Как связать 3 таблицы на форме
Есть форма
На форме имеются несколько источников данных(пять, если быть точным):
InventSum - главный, к нему привязан
InventDim по innerJoin(в свойствах DS InventDim)

Нужно добавить на форму источник данных(таблицу) InventBatch и показать одно из ее полей на форме.
InventBatch связана с :
1) InventDim по InventBatchId
2) InventSum по ItemId

Как добавить такой DS и показать соответствующее поле?
(display метод не предлагать, нужно именно из DS поле показывать)

AX2009
Старый 17.04.2013, 15:00   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Через DynaLink?
Старый 17.04.2013, 15:02   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от kitty Посмотреть сообщение
Есть форма
На форме имеются несколько источников данных(пять, если быть точным):
InventSum - главный, к нему привязан
InventDim по innerJoin(в свойствах DS InventDim)

Нужно добавить на форму источник данных(таблицу) InventBatch и показать одно из ее полей на форме.
InventBatch связана с :
1) InventDim по InventBatchId
2) InventSum по ItemId

Как добавить такой DS и показать соответствующее поле?
(display метод не предлагать, нужно именно из DS поле показывать)

AX2009
Можно прописать связь (Dynalink) в init() датасорса InventBatch, без указания свойств join'а.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 17.04.2013, 15:12   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Ещё можно View сделать = InventSum + InventDim и уже к нему джойнить InventBatch

В этом случае будет доступна сортировка и фильрация по полям из InventBatch
Старый 17.04.2013, 15:49   #5  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Почему Dynalink?
Старый 17.04.2013, 15:50   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
А какие еще датасорсы участвуют в запросе? Покажите иерархию.
__________________
// no comments
Старый 17.04.2013, 15:56   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kitty Посмотреть сообщение
Почему Dynalink?
Потому что в вашем случае простой джойн не поможет. Джойн может быть только к одному родительскому датасорсу, а вам нужно к двум. Вот поэтому и предположил, что Dynalink вам поможет.
Старый 17.04.2013, 16:01   #8  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
2 Dech: Это форма InventOnHandReserve, там немного нетривиальная иерархия

Последний раз редактировалось kitty; 17.04.2013 в 16:04.
Старый 17.04.2013, 16:52   #9  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
X++:
  this.query().dataSourceTable(tablenum(InventBatch)).clearDynalinks();
    this.query().dataSourceTable(tablenum(InventBatch)).addDynalink(fieldnum(InventBatch, ItemId), InventSum, fieldnum(InventSum, ItemId));
    this.query().dataSourceTable(tablenum(InventBatch)).addDynalink(fieldnum(InventBatch, inventBatchId), InventDim, fieldnum(InventDim, inventBatchId));
не помогло.
В info(inventSum_DS.query().dataSourceNo(1).toString()); вообще нет InventBatch
Старый 18.04.2013, 08:16   #10  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от kitty Посмотреть сообщение
X++:
  this.query().dataSourceTable(tablenum(InventBatch)).clearDynalinks();
    this.query().dataSourceTable(tablenum(InventBatch)).addDynalink(fieldnum(InventBatch, ItemId), InventSum, fieldnum(InventSum, ItemId));
    this.query().dataSourceTable(tablenum(InventBatch)).addDynalink(fieldnum(InventBatch, inventBatchId), InventDim, fieldnum(InventDim, inventBatchId));
не помогло.
В info(inventSum_DS.query().dataSourceNo(1).toString()); вообще нет InventBatch
Попробуйте связать InventBatch только с таблицей InventDim по InnerJoin.
__________________
// no comments
Старый 18.04.2013, 08:27   #11  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kitty Посмотреть сообщение
не помогло.
В info(inventSum_DS.query().dataSourceNo(1).toString()); вообще нет InventBatch
Так и должно быть. Dynalink не добавляет источник данных в родительский запрос. Он создаёт отдельный запрос, который обновляет при каждом изменении родительского курсора.
За это сообщение автора поблагодарили: kitty (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отображение таблицы в новой форме форме DAsm DAX: Программирование 23 04.03.2011 21:50
Как правильно связать таблицы в форме? Как показать параметры партии? mazzy DAX: Программирование 10 27.10.2010 15:56
Фильтр строк подчиненной таблицы на форме demon46 DAX: Программирование 4 15.07.2008 15:41
вывод количества записей в таблице на web форме и указание текущей страницы таблицы bambuk1960 DAX: Программирование 1 06.07.2006 13:27
Объединить несколько полей таблицы в одном поле Grid-а на форме? storer DAX: Программирование 2 12.11.2003 14:08

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:46.