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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.08.2023, 12:18   #5  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от Logger Посмотреть сообщение
На x++ фикс можно сделать ?.
А почему нет ?
SysTableLookup - открытый класс.

X++:
protected void buildSelectionList(Query _query)
{
    QueryBuildDataSource            queryBuildDataSource = _query.dataSourceTable(tableId);
    QueryBuildFieldList             selectedFields;
    boolean                         returnItem;
    str                             method;
    int                             fieldId;
    int                             i;

    //+ ТумОВ 02.12.2022
    boolean  fieldSelected(FieldId _id)
    {
        int     j;
        FieldId selectedFieldId;

        for( j = 1 ; j <= selectedFields.fieldCount() ; j++ )
        {
            selectedFieldId = selectedFields.field(j);

            if(selectedFieldId == _id) return true;
        }

        return false;
    };
    //- ТумОВ 02.12.2022

    if (!queryBuildDataSource)
    {
        return;
    }

    selectedFields = queryBuildDataSource.fields();

    for (i = 1; i <= conlen(lookupItems); i++)
    {
        [fieldId, returnItem, method] = conpeek(lookupItems, i);
        //
        // FieldId could be 0 if current element represents a display method used
        // to return values for a lookup column.
        // If fieldId is 0 then there is no sense to add it to the selection list of the query.
        //
        //+ ТумОВ 02.12.2022
        //todo А если, <censored>, поле уже выбрано как агрегат в ранее переданном запросе - на<censored> агрегацию ?
        //if (fieldId)
        if (fieldId && !fieldSelected(fieldId))
        //- ТумОВ 02.12.2022
        {
            queryBuildDataSource.addSelectionField(fieldId);
        }
    }
}
Цитата:
Сообщение от Logger Посмотреть сообщение
Мне казалось бага где-то в ядре сидит.
Внутри закрытого QueryBuildDataSource.addSelectionField(<код поля>, [<тип агрегации>)] - повторная передача поля в список выбираемых с типом агрегации по умолчанию сносит режим группировки у источника данных. Обходится вышеуказанным контролем на наличие добавляемого поля в списке полей выбора источника данных lookup-овского запроса.
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: Logger (10).
Теги
lookup, законченный пример

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Передача значения из ComboBox одной формы в lookup форму P^ilk^A DAX: Программирование 4 03.03.2015 18:25
получение значения из Lookup Global::conView() DesertBrowser DAX: Программирование 3 23.11.2011 15:56
LookUp. На основе предыдущего значения. Михаил Петрович DAX: Программирование 4 24.10.2007 12:26
Выбор значения из lookup + ввод с клавиатуры Lucky13 DAX: Программирование 29 25.05.2007 10:54
Как получить значения поля из lookup метода в WEB Dronas DAX: Программирование 5 13.01.2005 10:17

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

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

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