|
![]() |
#1 |
Участник
|
InventOnHand, конечно
![]() Dim я туда случайно всунул, так как АХ не открыл, чтобы проверить, что это тот класс, который на уме. Сорри за запутывание ![]() Вот пример написал, что исправиться ![]() X++: static void InventOnHandExample(Args _args) { InventDim inventDim; InventDimParm inventDimParm; #define.InventLocationId("MW") #define.ItemId("ESB-005") ; inventDimParm.InventLocationIdFlag = NoYes::Yes; inventDim.InventLocationId = #InventLocationId; box::info(strFmt("%1", InventOnHand::newItemDim(#ItemId, inventDim, inventDimParm).availPhysical())); } А про InventSum::newQuery() - ты немного просто напутал, когда написал цикл. Ведь этот запрос, по сути, уже возвращает готовый запрос с агрегированием, поэтому цикла там никогда не будет - хотя код, естественно, будет работать. |
|
![]() |
#2 |
Участник
|
Цитата:
![]() Цикла не будет только в этом примере. Я специально сделал группировку как у Тринха. При его группировке и условиях цикл действительно не нужен. В реальности параметры ParmCriteria, ParmGroupBy могут и не совпадать. А также ParmGroupBy может содержать больше галочек, чем ParmCriteria. Тогда цикл очень даже нужен. Кстати, InventOnHand как раз предполагает совпадение. ![]() Я же старался написать действительно универсальный код, который можно использовать как паттерн в любых случаях. Какие бы галки не включили в ParmCriteria и ParmGroupBy - мой код будет работать корректно. |
|
![]() |
#3 |
Участник
|
Да. Единственное ограничение - не наод использовать конструкцию с InventOnHand внутри цикла. Только для одноразового запроса.
|
|
![]() |
#4 |
Участник
|
Кстати, если говорить об аккуратности и краткости при предположениях и в частных случаях...
Если нужно получить только по непустым складским аналитикам, то можно упростить и унифицировать инициализацию InventDimParm. Вот так. X++: static void InventOnHandExample(Args _args) { InventDim inventDim; InventDimParm inventDimParm; #define.InventLocationId("MW") #define.ItemId("ESB-005") ; inventDim.InventLocationId = #InventLocationId; inventDimParm.initFromInventDim(InventDim); // галочки берем из непустых полей InventDim info(strFmt("%1", InventOnHand::newItemDim(#ItemId,inventDim,inventDimParm).availPhysical() )); } |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|