07.05.2007, 12:37 | #1 |
Участник
|
Создание линка в квери по полю из Аналитики
Доброго дня. У меня такой вопрос.
Есть таблица 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 |
Мрачный тип
|
Перво-наперво навести порядок, а именно - каждой таблице в Query свой отдельный датасорс. Попытка коммунизма(один датасорс для двух таблиц) в данном случае обречена на провал - qrbd сначала инициализируется как датасорс в запросе по таблице А, затем переинициализируется как датасорс к таблице Dimension, что приводит к потере информации в нем о таблице А. Попытка создать связь у qrbd по полю таблицы, на которой он не построен и не имеет ни малейшего понятия, приводит к данной ошибке.
Во-вторых очень так неясно - кого к кому линкуем ? Порядок инициализации датасорсов говорит о том , что к А линкуется Dimension, а вот создание линка об обратном толкует ... В общем, опишите ситуевину более предметно в плане конечной цели |
|
07.05.2007, 13:52 | #3 |
Участник
|
Я привел в соответствие qrbd получилось:
X++: ... QueryBuildDataSource qrbd, qrbdD; ; qrbd=query.addDataSource(tablenum(A)); qrbdD=qrbd.addDataSource(tablenum(dimension)); qrbdD.addlink(fieldID2ext(fieldnum(,dimension),2), fieldnum(Dimensions, Num)); ... |
|
07.05.2007, 13:55 | #4 |
Участник
|
Цитата:
Сообщение от 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 |
Мрачный тип
|
Упс, действительно ...
Обосрамился чуток, пойду по-RTFM-лю |
|
07.05.2007, 14:25 | #6 |
Участник
|
|
|
07.05.2007, 14:31 | #7 |
NavAx
|
Принцип такой:
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 | 4 | |||
Сравнение в разрезе складской аналитики. | 3 | |||
Учёт остатков в разрезе фин. аналитики | 11 | |||
Создание аналитики | 1 | |||
Создание складской аналитики | 5 |
|