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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2003, 15:30   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Как подключить датасоурсы на два вторичных ключа одинакового типа на форме
В таблице есть два поля InventDimIdOld и InventDimIdNew . Ссылаются на одну и ту же таблицу InventDim. В отчёте при подключении дочернего датасоурса можно указать через какое поле идёт связь. Соответственно можно один InventDim подцепить к InventDimIdOld, а другой к InventDimIdNew. А на форме как это сделать? Оба датасоурса по умолчанию цепляются к тому полю, у которого fieldId меньше. Как программно редактировать Relation (если это вообще возможно) я не нашёл. DynaLink работает глючно почему-то. Может я как-то неправильно её прицеплял.
Сейчас попробую перекрыть метод Init у родительского датасоурса для этих двух и там полностью прописать все связи. Может так получится. Но это уж слишком дубово мне кажется. Может как-то проще можно?
__________________
Дмитрий
Старый 24.09.2003, 16:05   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
На init() нужного datasource после super() прописать:
PHP код:
    this.query().dataSourceNo(1).dynaLink(1).field(fieldNum(<имя_таблицы>, <имя_нужного_поля>)); 
__________________
Андрей.
Старый 24.09.2003, 16:53   #3  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
мне необходимо подключить к одной таблице две лукаповские(вот они как раз являются одинаковыми).

вставил после init() метода одной из лукаповских таблиц следующее
PHP код:
this.query().dataSourceNo(1).dynaLink(1).dynamicField(fieldNum(<имя главной таблицы>, <имя поля вторичного ключа(InventDimIdOld)>)); 
в итоге лукаповские данные по полю InventDimIdOld не отображаются ... Хотя когда смотрю настройку формы, то там введённая мною DynaLink показывается. То есть она всё-таки добавляется, но почему-то не работает .. или работает каким-то странным образом
__________________
Дмитрий
Старый 24.09.2003, 17:14   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Не понял, что имеется в виду под "лукаповскими таблицами"
Я представляю себе задачу так: на форме расположены 3 грида, один - главный и 2 дочерних (по таблице InventDim). Один дочерний связан с полем InventDimIdOld, другой - с InventDimIdNew. Надо сделать так, чтобы при перемещении по основному гриду менялись дочерние. Это делается как раз так, как я и описал, в методах init() дочерних datasource. А метод dynamicField() содержит ссылку на поле из главной таблицы, и его как раз менять не надо.
__________________
Андрей.
Старый 24.09.2003, 17:29   #5  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
не, задача другая ... сложнее .. наверное

На форме один грид. Основан на таблице , которая содержит в себе два поля InventDimIdOld и InventDimIdNew . И в этом же гриде должны отображаться связанные с ними поля складской аналитики из таблицы InventDim. То есть старая аналитика должна отображаться и новая( такая задумка была). Так как между моей таблицей и таблицей InventDim связь n:1( многие к одному) я называю InventDim лукаповской таблицей.
Вот проблема на форме и встала в присоединении двух датасоурсов InventDim к разным полям InventDimIdOld и InventDimIdNew в моей таблице.
__________________
Дмитрий
Старый 24.09.2003, 18:13   #6  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
В данном случае есть хороший пример - форма строк складского журнала (форма InventJournalTransfer).
__________________
Андрей.
Старый 25.09.2003, 10:26   #7  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
всё , сделал ...
Спасибо. InventJournalTransfer и правда помогла. Там такая же ситуация как у меня. Я сначала вроде упёрся в то, что одно из полей InventDimIdOld у меня было необязательным( а ведь в форме InnerJoin используется). А потом оказалось, что в таблице InventDim есть "пустая" запись с InventDimId = "Axapta". Но это у меня она так настроена, у других может и не Axapta там написано.
__________________
Дмитрий
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Два InventDim на форме gefr DAX: Программирование 10 19.03.2008 13:41
Два одинаковых поля два разных события miklenew DAX: Программирование 3 29.11.2006 13:50
Странный эффект. OLAP и измерение типа "перечислимый тип" chi DAX: Программирование 1 28.12.2005 12:31
Создание нового типа журнала в Управлении запасами vasiliy DAX: Программирование 2 03.11.2005 14:46
Про два грида на одной форме YVAS DAX: Программирование 4 01.08.2003 10:53
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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