![]() |
#6 |
Участник
|
Давайте, я приведу полный текст джобика.
Есть несколько дат, одна из них 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. |
|
|
|