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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.05.2007, 12:37   #1  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Создание линка в квери по полю из Аналитики
Доброго дня. У меня такой вопрос.

Есть таблица A у которой есть поле- массив Dimension.
В запросе пишу
...
QueryBuildDataSource qrbd;
;
qrbd=query.addDataSource(tablenum(A));
qrbd=qrbd.addDataSource(tablenum(dimension));
qrbd.addlink(fieldnum(Dimensions, Num),
fieldID2ext(fieldnum(А,dimension),2));
...
и здесь выдается ошибка:
"Недопустимая комбинация поля / поля ссылки"
Что можно здесь сделать???
Старый 07.05.2007, 13:42   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Перво-наперво навести порядок, а именно - каждой таблице в Query свой отдельный датасорс. Попытка коммунизма(один датасорс для двух таблиц) в данном случае обречена на провал - qrbd сначала инициализируется как датасорс в запросе по таблице А, затем переинициализируется как датасорс к таблице Dimension, что приводит к потере информации в нем о таблице А. Попытка создать связь у qrbd по полю таблицы, на которой он не построен и не имеет ни малейшего понятия, приводит к данной ошибке.
Во-вторых очень так неясно - кого к кому линкуем ? Порядок инициализации датасорсов говорит о том , что к А линкуется Dimension, а вот создание линка об обратном толкует ...

В общем, опишите ситуевину более предметно в плане конечной цели
Старый 07.05.2007, 13:52   #3  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Я привел в соответствие qrbd получилось:
X++:
...
QueryBuildDataSource            qrbd, qrbdD;
;
qrbd=query.addDataSource(tablenum(A));
qrbdD=qrbd.addDataSource(tablenum(dimension));
qrbdD.addlink(fieldID2ext(fieldnum(,dimension),2), 
                   fieldnum(Dimensions, Num));
...
2)Линкуем мы Dimension с таблицей А
Старый 07.05.2007, 13:55   #4  
Ed1k is offline
Ed1k
Участник
 
102 / 42 (2) +++
Регистрация: 19.07.2006
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Перво-наперво навести порядок, а именно - каждой таблице в Query свой отдельный датасорс. Попытка коммунизма(один датасорс для двух таблиц) в данном случае обречена на провал - qrbd сначала инициализируется как датасорс в запросе по таблице А, затем переинициализируется как датасорс к таблице Dimension, что приводит к потере информации в нем о таблице А. Попытка создать связь у qrbd по полю таблицы, на которой он не построен и не имеет ни малейшего понятия, приводит к данной ошибке.
Дьявольские фантазии)
Код:
    query = new Query();
    qbds = query.addDataSource(tablenum(LedgerTable));
    qbds = qbds.addDataSource(tablenum(Dimensions));
    qbds.addLink(fieldId2ext(fieldnum(LedgerTable, Dimension), 2), fieldnum(Dimensions, Num));
    info(qbds.parentDataSource().name());
    info(qbds.parentDataSource().toString());
Старый 07.05.2007, 14:13   #5  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Упс, действительно ...
Обосрамился чуток, пойду по-RTFM-лю
Старый 07.05.2007, 14:25   #6  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Упс, действительно ...
Обосрамился чуток, пойду по-RTFM-лю
Вместо того чтобы ругаться сказали бы лучше что нить путное))
Старый 07.05.2007, 14:31   #7  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Принцип такой:

X++:
    for (i = 0; i < dimof(Dimension); i++)
        myQBDS.addLink(fieldId2Ext(fieldnum(Table1, Dimension), i + 1), fieldId2Ext(fieldnum(Table2, Dimension), i + 1));
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Код новой фин. аналитики DAX 4.0 Ivanhoe DAX: Программирование 4 13.05.2008 15:23
Сравнение в разрезе складской аналитики. longson DAX: Программирование 3 14.01.2008 13:45
Учёт остатков в разрезе фин. аналитики miklenew DAX: Программирование 11 06.11.2007 20:01
Создание аналитики kekc DAX: Программирование 1 10.08.2005 19:34
Создание складской аналитики loka DAX: Функционал 5 05.11.2004 18:51
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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