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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.08.2004, 15:48   #1  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
Не работает relation
Создал таблицу
table1
{
DimensionCode (наследует DimensionCode)
Num (наследует SysDim)
...
}

relation
table1.DimensionCode = Dimensions.DimensionCode
table1.num = Dimensions.Num


Создаю запись выбираю определенный DimensionCode
Lookup на поле num не фильтрует записи из таблица аналитик по выбранному DimensionCode????
Старый 25.08.2004, 16:06   #2  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
Походил отладчиком:

В форме DimensionLookUp.run()
есть код

callerFieldId = callerControl.dataField();
sysDimension = callerFieldId >> 16 - 1;
callerFieldId = callerFieldId & 0x7FFF;
if (!callerFieldId)
{
sysDimension = callerControl.arrayIndex() - 1;
}

похоже дело в нем
буду разбираться
Старый 25.08.2004, 18:17   #3  
Hezl is offline
Hezl
Участник
Аватар для Hezl
 
138 / 16 (1) ++
Регистрация: 21.04.2004
Адрес: Moscow, Russia
Создал все то же самое. Lookup отрабатывает. Попробуй индексы перестроить. (Из серии: "монитор тряпочкой протереть" )
Старый 10.01.2008, 12:32   #4  
veps is offline
veps
Участник
 
87 / 26 (1) +++
Регистрация: 22.03.2006
Адрес: хабаровск
значение callerFieldId на форме DimensionsLookup
Доброго времени суток.
В таблицу LedgerJournalTrans добавлено поле DimensionOffset (ID 40002)

необходимо сдлеать специфический выбор аналитик

код в форме DimensionLookUp.run()
X++:
    callerFieldId   = callerControl.dataField();
    sysDimension    = callerFieldId >> 16 - 1;
    callerFieldId   = callerFieldId & 0x7FFF;
выдает значение callerFieldId равное 7234,

в чем может быть причина этого глюка ???
на сколько критично если я руками поменяю номер ID для поля в таблице ???
Старый 10.01.2008, 12:58   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ниче не понял.
Что вы понимаете под "необходимо сделать специфический выбор аналитик"?

В Classes\Global есть методы fieldExt2Idx, fieldExt2Id
и замечу, что они отличаются от вашей "прямой" реализации.

Вот кусочек кода из 5ки:

X++:
calledFieldId = calledControl.dataField();

sysDimension = Dimensions::arrayIdx2Code(fieldExt2Idx(callerFieldId));
callerFieldId = fieldExt2Id(calledFieldId);
if (!callerFieldId)
{
    sysDimension = Dimensions::arrayIdx2Code(callerControl.arrayIndex());
}
Что вернет в такой реализации?
Старый 11.01.2008, 08:45   #6  
veps is offline
veps
Участник
 
87 / 26 (1) +++
Регистрация: 22.03.2006
Адрес: хабаровск
выражение callerControl.dataField() & 0x7FFF возвращет 7234, а должно возвращать 40002, если изменить номер ID поля в таблице, например на 145 то код работает нормально
стоит AX 3 SP 4
Старый 11.01.2008, 09:23   #7  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А почему 0x7FFF? FieldId хранится в младших двух байтах идентификатора, а это 0xFFFF.
Да и посмотрите на пример из совета Ивана - там как раз реализовано то, что вам требуется
__________________
Axapta v.3.0 sp5 kr2
Старый 11.01.2008, 09:33   #8  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
fieldid2ext(40002,2) & 0x7FFF; выдаст 7234

fieldid2ext(40002,2) & 0xFFFF; выдаст 40002

7 - это ошибка в стандартном коде, для полей добаленных на sys слое она не проявляется, т.к. ИД - маленький

Последний раз редактировалось dn; 11.01.2008 в 09:36.
За это сообщение автора поблагодарили: veps (1).
Теги
ax3.0, ax4.0, аналитика, баг

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
И снова про Relation Corsar DAX: Программирование 7 24.10.2008 14:19
JOIN программно на форме не работает rohlenko DAX: Программирование 2 31.03.2005 15:41
Relation на таблице и EDT Alex_K DAX: Программирование 2 15.12.2004 15:49
CRM ABC, SWOT анализ Как это работает и работает ли вообще. ShadowFromXZone DAX: Функционал 16 02.03.2004 18:09
Создать Relation в AOT программным кодом EVGL DAX: Программирование 3 21.05.2003 12:47
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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