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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2018, 13:49   #1  
SCP_00 is offline
SCP_00
Участник
 
19 / 19 (1) ++
Регистрация: 24.04.2018
? link между dataSource
Существует 3 датасоурса. В параметрах DS1 joinsource DS2 c типом OuterJoin. Необходимо создать такую же связь с DS3.
Пробовал таким макаром, в init DS1:
X++:
    this.query().dataSourceTable(tablenum(TSRTechItemImportance)).addLink(
                                                                    fieldnum(TSRTechItemImportance, TechItemId),
                                                                    fieldnum(TSRTechItemTreeTable, TechItemId),
                                                                    TSRTechItemTreeTableTS_ds.name());
Но при запуске формы выпадает ошибка : Не удается найти указанный источник данных.
Возможно ли реализовать такую связь и как?
Старый 12.09.2018, 19:31   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Связь - это всегда взгляд подчиненного на начальника. Это подчиненному важно мнения начальника, а не наоборот

Поэтому связь всегда настраивается из DataSource подчиненной таблицы. Если же идти со стороны "начальника", то к моменту инициализации DataSource главной таблицы DataSource подчиненной может быть еще не инициализирована

Если я правильно понял и у Вас

TSRTechItemTreeTable - главная
TSRTechItemImportance - подчиненная

То связь настраивается в init для источника данных TSRTechItemImportance. Подчиненной таблицы

X++:
public void init()
{

  super();

  this.query().dataSourceTable(tablenum(TSRTechItemImportance)).addLink(
      fieldnum(TSRTechItemTreeTable, TechItemId),     // поле главной таблицы
      fieldnum(TSRTechItemImportance, TechItemId),   // поле текущей таблицы
      TSRTechItemTreeTableTS_ds.name());                 // имя DS главной таблицы
}

Справка по методу addLink указывает распределение параметров так

thisDataSource.addLink(parentField, thisField [, parentDatasourceName])

Имя DataSource главной таблицы (3 параметр) обычно не указывают. Это имеет смысл только в случае, если источников данных с этой таблицей несколько и надо уточнить, о каком именно источнике идет речь

---------------------------------

С другой стороны, а зачем Вы вообще программированием занимаетесь? В смысле, написанием кода. Это имеет смысл только в том случае, если настроенные на таблицах Relation отличаются от той связи, которая Вам нужна на конкретной форме. Ну, или вообще не указана

Если же настроенные Relation на подчиненной таблице к главной и так те, какие Вам нужны, то просто сделайте настройку в DataSource для указания типа связи

В свойствах DataSource подчиненной таблицы TSRTechItemImportance указать

JoinSource = TSRTechItemTreeTable
LinkType = OuterJoin

И никакого программирования не нужно
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 14.09.2018, 14:03   #3  
SCP_00 is offline
SCP_00
Участник
 
19 / 19 (1) ++
Регистрация: 24.04.2018
Проблема в том, у одного датасоурса два родительских. Один указан так как вы описали, через параметр, а с еще одним возникли проблемы. Сейчас это реализовано через edit метод, что как по мне не очень...
Теги
datasource, form, link

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsax-fico: Link multiple Management Reporter reports Blog bot DAX Blogs 0 20.01.2017 09:11
Khue Trinh: Setting up a link between a financial dimension and the site inventory dimension Blog bot DAX Blogs 0 27.09.2010 13:05
link по ИЛИ между источниками данных PPL DAX: Программирование 14 14.01.2010 16:35
C# and AX Development: Updating the caller Form/DataSource Blog bot DAX Blogs 0 18.07.2009 02:28
При добавлении связи между dataSource Аксапта вылетает vasiliy DAX: Программирование 2 07.05.2005 07:44
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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