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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.04.2013, 13:06   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Давайте, я приведу полный текст джобика.
Есть несколько дат, одна из них 22\3\2012, время жизни номенклатуры K206 - 60 дней. Т.е. одна запись с этой датой как раз не должна попадать в запрос, но выводится.
В дальнейшем планирую theDate превратить в systemdateget() + expDays, пока удобнее так на тестовых данных.
X++:
static void complexExpression(Args _args)
{
    Query                   query = new Query();
    QueryBuildDataSource    qbds;
    QueryBuildDataSource    qbdsInventTable;
    QueryBuildRange         qbr;
    QueryRun                qr;
    InventBatch             inventBatch;
    InventTable             inventTable;
    str                     s;
    date                    theDate = 22\3\2012 + 60;
    ;

    qbdsInventTable = query.addDataSource(tablenum(InventTable), tablestr(InventTable));
    qbdsInventTable.addSelectionField(fieldnum(InventTable, ShelfLife));
    qbdsInventTable.addRange(fieldnum(InventTable, ItemId)).value('K206');
    qbdsInventTable.addRange(fieldnum(InventTable, DataAreaId));

    qbds = qbdsInventTable.addDataSource(tablenum(InventBatch), tablestr(InventBatch));
    qbds.addSelectionField(fieldnum(InventBatch, ProdDate));
    qbds.joinMode(JoinMode::InnerJoin);
    qbds.addLink(fieldnum(InventTable, ItemId), fieldnum(InventBatch, ItemId));

    qbr = qbds.addRange(fieldnum(InventBatch, DataAreaId));
    s = strfmt('((%4 - %1) != %2.%3)',
        fieldstr(InventBatch, ProdDate),
        qbdsInventTable.name(),
        fieldstr(InventTable, ShelfLife),
        date2str(theDate, 213, 2, 4, 2, 4, 4)
    );
    info(s);
    qbr.value(s);

    qr = new QueryRun(query);
    while (qr.next())
    {
        inventBatch = qr.get(tablenum(InventBatch));
        inventTable = qr.get(tablenum(InventTable));
        info(strfmt("@SYS26868",
            queryValue(theDate - inventBatch.prodDate),
            inventTable.ShelfLife));
    }
}
__________________
// no comments

Последний раз редактировалось dech; 18.04.2013 в 13:09.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax-erp: How to Set the Query Range on a SSRS Report Blog bot DAX Blogs 0 18.10.2012 19:11
sumitax: AX Queries – Passing query range as parameter Blog bot DAX Blogs 0 29.06.2011 13:11
Advanced query range value expressions: поле таблицы - имя вcтроенной функции year(). ATimTim DAX: Программирование 12 27.03.2009 18:16
axaptafreak: Label for Query Range cannot be modified (still) Blog bot DAX Blogs 2 25.07.2007 10:09
Advanced query range value expressions dn DAX: Программирование 2 07.10.2003 15:38

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

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

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