|
![]() |
#1 |
Участник
|
Давайте, я приведу полный текст джобика.
Есть несколько дат, одна из них 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. |
|
![]() |
#2 |
Участник
|
date2str(theDate, 213, 2, 4, 2, 4, 4) равносильно date2StrXpp(theDate)?
|
|
![]() |
#3 |
Участник
|
Цитата:
![]()
__________________
// no comments Последний раз редактировалось dech; 18.04.2013 в 14:07. |
|
![]() |
#4 |
Участник
|
Кхе, и шо показывает info(qbdsInventTable.toString())? Можно увидеть?
![]() |
|
![]() |
#5 |
Участник
|
5 баксов
![]() X++: SELECT ShelfLife FROM InventTable WHERE ((ItemId = N'K206')) JOIN prodDate FROM InventBatch WHERE InventTable.ItemId = InventBatch.itemId AND ((((05/21/2012 - ProdDate) != InventTable.ShelfLife)))
__________________
// no comments |
|
![]() |
#6 |
Участник
|
Аха, теперь совсем просто: заглянуть в таблицу inventBatch
![]() |
|
![]() |
#7 |
Участник
|
Спасибо S.Kuskov
Разобрался в чем дело. Проблема была в дате theDate, которую я уже молотком забивал в query range. Надо было сразу использовать date2strxpp(). ![]() А в SQL Trace было ((05/21)/2012)
__________________
// no comments |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|