Показать сообщение отдельно
Старый 18.04.2013, 09:51   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Complex expressions in query range
Всем добрый день.
Так сложилось, что у нас не пользуются полем InventBatch.ExpDate, а вместо этого по каждой номенклатуре проставлено время жизни. Соответственно, необходимо узнать, у каких записей в батче истекает срок в течение следующих expDays дней. Никак не получается сделать фильтр, в котором нужно к дате из одной таблицы добавить число дней из другой. Программа работает, если сравнивать дату с датой. Но если к дате прибавить числовое значение, она преобразуется в число и условие работает неправильно.
X++:
    qbr = qbds.addRange(fieldnum(InventBatch, DataAreaId));
    s = strfmt("(%1 + %2.%3 < %4)", // (%1 < %4) - так работает
        fieldstr(InventBatch, ProdDate),
        qbdsInventTable.name(),
        fieldstr(InventTable, ShelfLife),
        queryValue(systemdateget() + expDays) // expDays = 30 дней, к примеру
    );
    qbr.value(s);
__________________
// no comments

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