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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.07.2019, 10:01   #1  
SuperStar88 is offline
SuperStar88
Участник
 
79 / 10 (1) +
Регистрация: 11.08.2017
? ax 2009. Вопрос. При открытии формы фильтр AND + OR
Вначале при открытии формы надо было сделать фильтр по нескольким условиям с И. Сделал так:
X++:
void init()
{;
    super();

    qbds = this.query().dataSourceTable(tablenum(SalesQuotationLine));

    findOrCreateRange_W(qbds, fieldnum(SalesQuotationLine,Status)).value('<11');
    findOrCreateRange_W(qbds, fieldnum(SalesQuotationLine,IncludeIn)).value(SysQuery::value(1));
    findOrCreateRange_W(qbds, fieldnum(SalesQuotationLine,TypeOfLineSales)).value('05, 10, 15, 20, 25, 30');
}
Теперь надо добавить ещё одно условие, но через ИЛИ (то что вверху или SalesQuotationLine.Checked == Yes)

Сделал так, но не работает:
X++:
    str getTypeOfLineSalesRange(str _tableN, container _con)
    {
        int cnt, conLength;
        str ret;
        ;
        conLength = conLen(_con);
        for (cnt = 1; cnt <= conLength; cnt++)
        {
            if(ret != "")
            {
                ret += " || ";
            }
            ret += strFmt("(%1.TypeOfLineSales == %2)", _tableN, conPeek(_con, cnt));
        }

        return ret;
    }
    ;
    typeOfLineSales = [05, 10, 15, 20, 25, 30];

    qbr = qbds.addRange(fieldNum(SalesQuotationLine, DataAreaId));
    qbr.value(strFmt('(((%1.Status < %2) && (%3) && (%1.IncludeIn == %4)) || (%1.Checked == %5))',
              qbds.name(),
              queryValue('11'),
              getTypeOfLineSalesRange(qbds.name(), typeOfLineSales),
              queryValue(1),
              queryValue(1)
              ));
Как правильно?
Старый 02.08.2019, 14:51   #2  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Попробуй написать :
X++:
 qbr.value(strFmt('(((%1.Status < %2) && (%3) && (%1.IncludeIn == "%4")) || (%1.Checked == "%5"))',
               qbds.name(),               

              queryValue('11'),               

              getTypeOfLineSalesRange(qbds.name(), typeOfLineSales),               

              queryValue(NoYes::Yes),               

              queryValue(NoYes::Yes)               ));
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Временная таблица + RLS leshy DAX: Программирование 6 27.04.2006 12:39
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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