|
![]() |
#1 |
Участник
|
и даже после такой модификации код все еще не будет оптимальным и универсальным.
ведь кто-то может заоптимизировать inventSum или добавить туда статусов и дополнительных полей. А этот австралийский индус жестко указывает список суммируемых полей в жестко написанном запросе. Разобраться с методом newQuery?... Нет это же "quick and dirty" программирование. На самом деле должно быть так: X++: Query = InventSum::newQuery(null, 'your item',DimCriteria, ParmCriteria, ParmGroupBy); QueryRun = new Qureyrun(Query); while( QueryRun.next() ) { inventSum = QueryRun.get(tablenum(InventSum)); inventQty += inventSum.availPhysical(); } info(strfmt('%1', inventQty)); Недели и месяцы, потраченные на оптимизацию производительности запросов не пропадают зря только потому, что какой-то индус написал прямой запрос к таблице. Но ведь для этого надо разобраться с параметрами. А это так сложно, чтобы делать "enjoy" от "fast and dirty" примера... |
|
|
За это сообщение автора поблагодарили: belugin (3). |
![]() |
#2 |
Участник
|
Спасибо, что дали ссылку на эту тему.
Вопрос, чем этот код, Цитата:
Цитата:
Сообщение от mazzy
![]() X++: InventDim inventDim; InventSum inventSum; InventQty inventQty; ; while select sum(postedQty), sum(received), sum(deducted), sum(registered), sum(picked), sum(reservPhysical) from InventSum group by itemId join InventDim where inventSum.inventDimId == inventDim.inventDimId && inventSum.itemId == 'your item' && inventDim.inventLocationId == 'your WH' { inventQty += inventSum.availPhysical(); } info(strfmt('%1', inventQty)); |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|