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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.02.2024, 07:32   #9  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 543 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Если говорить про техническую реализацию, то примеры есть в стандарте - класс EREnumLookupMultiSelectGrid, метод new, передача через QueryRun.

X++:
        container selectedFields = [tableNum(SysOperationMultiSelectTmp), fieldName2id(tableNum(SysOperationMultiSelectTmp), fieldStr(SysOperationMultiSelectTmp, Values))];

        selectTableTmp = this.getMultiSelectTableForEnum(_enumId, _valuesToSkip);

        QueryRun localQueryRun = SysOperationHelper::getMultiSelectQueryRun(selectTableTmp);
        
        this.parmCallingControl(_targetStringControl);
        this.parmQuery(localQueryRun.query());
        this.parmQueryRun(localQueryRun);
Правда использовать временные таблички в лукапах, имеет смысл, если условно там выбор из десятка значений, иначе тормоза при открытии лукапа, будут раздражать куда больше, чем recId в колонке справа.

Также можно в качестве времянки использовать TempDB, заполнять ее прямым запросом через Query::insert_recordset, будет работать быстро, но выглядит это все как какой то Overengineering, ради лукапа.

Я бегло посмотрел по перекрестным ссылкам в стандарте, есть пример (да там нет группировки, может быть можно сделать примерно так же - скрытый контрол с recId - StatisticsOnInvoiceUIBuilder?).

X++:
    private void initPostingProfilesDialogField()
    {
        DialogField postingProfilesField = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(StatisticsOnInvoiceDataContract, parmPostingProfiles));
        postingProfilesField.registerOverrideMethod(
            methodStr(FormDateControl, lookup),
            methodStr(StatisticsOnInvoiceUIBuilder, postingProfilesLookup),
            this);
        postingProfilesField.lookupButton(FormLookupButton::Always);

        SysOperationDialog reportDialogBox = this.dialog();
        postingProfilesRecIdsControl = reportDialogBox.formRun().design().addControl(FormControlType::String, PostingProfilesRecIdsControlName);
        postingProfilesRecIdsControl.visible(false);
    }

    private void postingProfilesLookup(FormStringControl _postingProfilesControl)
    {
        Query query = new Query();
        QueryBuildDataSource qbds = query.addDataSource(tableNum(VendLedger));
        QueryBuildFieldList qbfl = qbds.fields();
        qbfl.dynamic(false);
        qbfl.clearFieldList();
        qbfl.addField(fieldNum(VendLedger, PostingProfile));
        qbfl.addField(fieldNum(VendLedger, Name));

        container selectFields = [ tableNum(VendLedger), fieldNum(VendLedger, PostingProfile) ];

        SysLookupMultiSelectGrid::lookup(
            query,
            _postingProfilesControl,
            postingProfilesRecIdsControl,
            _postingProfilesControl,
            selectFields);
    }
Если все же нельзя, то может сделать свою лукап-форму ? расширить функционал базового класса, чтобы можно было скрыть контрол с recId ?
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 20.02.2024 в 07:39.
За это сообщение автора поблагодарили: Lankey (1).
Теги
d365

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сохранение и подстановка значения multi-select control с последующим использованием в запросах Cardagant DAX: Программирование 1 05.04.2015 22:58
dax-lessons: On dialogs – SysLookupMultiSelectCtrl in Dynamics AX 6.0 Blog bot DAX Blogs 0 09.06.2011 03:27
dax-lessons: SysLookupMultiSelectCtrl in Dynamics AX 6.0 [AX 2012, X++] Blog bot DAX Blogs 0 08.06.2011 21:11
где хранятся значения полей удаленных строк? chanchala DAX: Программирование 16 04.09.2008 10:45
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37

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

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

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