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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2020, 16:50   #7  
Vlad_ is offline
Vlad_
Участник
 
11 / 10 (1) +
Регистрация: 24.09.2019
Адрес: Санкт-Петербург
Джойним датасорс:
X++:
childQBDS = qbds.addDataSource(tableNum(AS_ComVehicleLink), "AS_ComVehicleLink"); // здесь разные ошибки в зависимости от того, указываем или нет имя
childQBDS.addLink(fieldNum(RWPreliminaryRepair, VehicleId), fieldNum(AS_ComVehicleLink, VehicleId));
Генерим строку для фильтрации:
X++:
str makerFilterStr(Set _filterSet = filterSet)
{
    SetEnumerator se;
    str filterStr;
    ;

    fldStr = fieldStr(AS_ComVehicleLink, Node);
    se = _filterSet.getEnumerator();
    while (se.moveNext())
    {
        if (!se.current())
        {
            continue;
        }
        if (filterStr)
        {
            filterStr += "||";
        }
   
        filterStr += (strFmt(' (%1.%2 like ("%3")) ',  childQBDS.name(), fldStr, se.current())); // фильтр по ноде вешаем на подчинённый датасорс
    }

    fldStr = fieldStr(RWPreliminaryRepair, AutoParkId);
    se = autoParkFilterSet.getEnumerator();
    while (se.moveNext())
    {
        if (!se.current())
        {
            continue;
        }
        if (filterStr)
        {
            filterStr += "||";
        }
        filterStr += (strFmt(' (%1.%2 like ("%3")) ', qbds.name(), fldStr, se.current())); // фильтр по площадке на главный
    }
    this.parmQBDS(childQBDS);
    //return filterStr;
    return strFmt("(%1)",filterStr);
}
filterStr в этом месте равно
X++:
 "( (AS_ComVehicleLink.Node like ('val')) || (RWPreliminaryRepair.AutoParkId like ('val2')) )"
Накладываем фильтр:
X++:
qbr = childQBDS.addRange(fieldId);
qbr.value(filterStr)
Текст qbds в этом месте:
X++:
 "SELECT FIRSTFAST * FROM RWPreliminaryRepair JOIN FIRSTFAST * FROM AS_ComVehicleLink WHERE RWPreliminaryRepair.VehicleId = AS_ComVehicleLink.VehicleId AND ((( (AS_ComVehicleLink.Node like ('val1')) || (RWPreliminaryRepair.AutoParkId like ('val2')) )))"

Последний раз редактировалось Vlad_; 31.01.2020 в 16:57.
Теги
ax2009, qbds

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка расширенного диапазона запроса samolalex DAX: Программирование 2 18.04.2014 00:59
Ошибка расширенного диапазона запроса: Ожидается правая круглая скобка рядом с 0. uskutus DAX: Программирование 5 11.04.2012 13:48
Ошибка расширенного диапазона запроса: stTable2.ItemId не является корректной парой datasource.field рядом с 24. uchenik DAX: Программирование 14 05.05.2011 08:47
Ошибка расширенного диапазона Yugene DAX: Программирование 1 21.04.2006 10:36
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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