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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2003, 17:12   #1  
Berty Wooster is offline
Berty Wooster
Участник
Аватар для Berty Wooster
 
82 / 16 (1) ++
Регистрация: 15.12.2002
? Недопустимая комбинация поля/поля ссылки
Привет,

В таблице Table1 присутствуют два поля:
- RefType (Enum, значения : 0, 1, 2)
- RefId (String)
На таблице заданы relations:
- SalesTable
Table1.RefType == 0
Table1.RefId == SalesTable.SalesId
- Table2
Table1.RefType == 1
Table1.RefId == Table2.Id

На форме (Table1) при попытке создать сложный фильтр (Ctrl + F3 ), добавляем DataSource Table2 (n:1) . Выдается сообщение об ошибке "Недопустимая комбинация поля/поля ссылки".
Хотя переход к основной таблице работает правильно.
При добавлении в фильтр SalesTable - она добавляется без проблем.

Почему не добавляется Table2?
Старый 29.05.2003, 15:54   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Lightbulb
Все дело в том, что при построении query, когда система пытается прописать связи с Table2 согласно relations (класс SysQueryBuilder метод newDataSource()), она неправильно отрабатывает тип связи "Поле фиксировано". В методе видно, что получаемые числа система пытается интерпретировать как id полей. Так было в версии 2.5, а в 3.0 они все же решили эту проблему и проверяют тип связи в relation`е.
Можно сделать так:
(класс SysQueryBuilder метод newDataSource())
PHP код:
...
for(
lines=1;lines <= dictRelation.lines();lines++)
{
//    newDataSource.addLink(dictRelation.lineExternTableValue(lines), dictRelation.lineTableValue(lines));  было так
    
switch (dictRelation.lineType(lines))
    {
        case 
TableRelation::Field:
            {
                
newDataSource.addLink(dictRelation.lineExternTableValue(lines), dictRelation.lineTableValue(lines));
            }
            break;
        case 
TableRelation::ThisFixed:
            {
                
queryBuildRange newDataSource.addRange(dictRelation.lineTableValue(lines));
                
queryBuildRange.value(queryValue(dictRelation.lineExternTableValue(lines)));
                
queryBuildRange.status(RangeStatus::Hidden);
            }
            break;
    }
}
... 
__________________
Андрей.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
поля, содержащие RecId somebody DAX: Программирование 15 16.05.2008 17:50
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Ошибка: Недопустимая комбинация поля / поля ссылки kurekov DAX: Программирование 1 21.02.2007 16:36
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00

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

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

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