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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.06.2008, 11:38   #1  
Dimitry is offline
Dimitry
Участник
 
172 / 10 (1) +
Регистрация: 07.02.2003
Помогите разобраться с лукапом
Проблема анологична, описаной тут
только описаное там же решение не помогает.

Вот код перекрытого мною лукапа:
X++:
public void lookup()
{
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    SysTableLookup          sysTableLookup;
    ;

    this.text('');

    sysTableLookup = SysTableLookup::newParameters(tableNum(RD_InventType), this);

    sysTableLookup.addLookupField(fieldNum(RD_InventType, InventTypeMK));
    sysTableLookup.addLookupField(fieldNum(RD_InventType, prefix));

    queryBuildDataSource = query.addDataSource(tableNum(RD_InventType));
    queryBuildDataSource.addSortField(fieldNum(RD_InventType, InventTypeMK));
    queryBuildDataSource.addSortField(fieldNum(RD_InventType, prefix));
    queryBuildDataSource.orderMode(orderMode::GroupBy);

    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
//    super();
}
Старый 26.06.2008, 12:22   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1235 (44) ++++++++
Регистрация: 11.04.2008
А не поможет ли:
sysTableLookup.parmUseLookupValue(false);
Старый 26.06.2008, 12:29   #3  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Цитата:
sysTableLookup.parmUseLookupValue(false);
Четвёрка?
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 26.06.2008, 12:37   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1235 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Четвёрка?
угу
Старый 26.06.2008, 12:42   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать? Тот же эффект?
Старый 26.06.2008, 12:47   #6  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1235 (44) ++++++++
Регистрация: 11.04.2008
Разница 3-ки и 4-ки в классе sysTableLookup\formRun():
4.0:
X++:
if(useLookupValue)
    {
        args.lookupField(lookupField);
        switch (callingControl.handle())
        {
            case classnum(FormStringControl):
                callingStringControl = callingControl;
                args.lookupValue(callingStringControl.text());
                break;
        }
    }
3.0:
X++:
switch (callingControl.handle())
    {
        case classNum(FormStringControl):
            callingStringControl = callingControl;
            args.lookupValue(callingStringControl.hasChanged() ? callingStringControl.text() : callingStringControl.valueStr());
            break;
    }
т.е. в 3-ке отсутствует этот флаг, но для удобства будущих разработок его можно добавить
Старый 26.06.2008, 12:55   #7  
Dimitry is offline
Dimitry
Участник
 
172 / 10 (1) +
Регистрация: 07.02.2003
Цитата:
Сообщение от DSPIC Посмотреть сообщение
А не поможет ли:
sysTableLookup.parmUseLookupValue(false);
Пишет:
X++:
 SysTableLookup    .
Старый 26.06.2008, 12:56   #8  
Dimitry is offline
Dimitry
Участник
 
172 / 10 (1) +
Регистрация: 07.02.2003
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать? Тот же эффект?
не пробовал
Старый 26.06.2008, 13:07   #9  
Dimitry is offline
Dimitry
Участник
 
172 / 10 (1) +
Регистрация: 07.02.2003
РЕшил проблемк переписав класс sysTableLookup
Старый 26.06.2008, 13:09   #10  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Действительно странно лукап отображается
Он как будто сначала не сгруппированный отображается, а потом уж строки начинают сворачиваться

Цитата:
А если Query не динамически создавать, а в AOT построить или вьюху создать и на её основе лукап делать?
Думаю, что от того, где query создан (АОТ или "на лету") разницы нет.

Вью, наверное, заработает.
Или попробовать лукап-форму.
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 26.06.2008, 13:18   #11  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1235 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
РЕшил проблемк переписав класс sysTableLookup
Как Вы его переписали?
Старый 26.06.2008, 13:45   #12  
Dimitry is offline
Dimitry
Участник
 
172 / 10 (1) +
Регистрация: 07.02.2003
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Как Вы его переписали?
Дописал необязательный параметр в методе FromRun:
X++:
public FormRun formRun(boolean useLookupValue = true)
{
******
далее в коде поставил условие:
X++:
    if (useLookupValue)
    {
        switch (callingControl.handle())
        {
            case classNum(FormStringControl):
                callingStringControl = callingControl;
                args.lookupValue(callingStringControl.text());
                break;
        }
    }
так же это параметр прописал в методе performFormLookup:
X++:
void performFormLookup(boolean useLookupValue = true)
И из него передаю дальше в fromRun:
X++:
callingStringControl.performFormLookup(this.formRun(useLookupValue));
Теперь когда мне необходима групировка в лукапе выполняю следующее:
X++:
sysTableLookup.performFormLookup(false);
Старый 18.09.2008, 22:40   #13  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Димитрий, а можно проектиком выложить класс sysTableLookup и пример LookUp?
Пока не помогло.
Вариант с this.text("") тоже не прокатил.
Старый 19.09.2008, 10:48   #14  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Dronas Посмотреть сообщение
Вариант с this.text("") тоже не прокатил.
Лекарство применено правильно, но не до конца - нужна более заковыристая терапия .

См. рекомендацию EVGL здесь: Как сделать лукап со своими значениями?
X++:
saveText = _ctrl.text();
_ctrl.text("");
_ctrl.pasteText("", false); // Disable filter effects

...............................................

_ctrl.pasteText(saveText, false);
За это сообщение автора поблагодарили: Logger (1).
Старый 20.09.2008, 10:04   #15  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Спасибо!
Теги
systablelookup, ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
вопрос про дату в range. помогите разобраться. Hans DAX: Программирование 5 24.04.2007 17:52
Помогите разобраться с edit-методом mashaSi DAX: Программирование 4 08.06.2006 07:19
Помогите разобраться с отчетностью Vansoft DAX: Функционал 2 12.04.2004 03:06
Помогите разобраться с полем OprNum в BOM! ravil DAX: Программирование 4 29.07.2003 11:15
Журналы, пакеты... Помогите разобраться! dmit2604 DAX: Функционал 1 07.05.2002 21:53

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:00.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.