![]() |
#11 |
Участник
|
Ну в общем Вы двигаетесь в правильном направлении.
Если я Вас правлиьно понял, Вам надо выбрать все дочерние записи отталкиваясь от определенного значения SalesUnitId, тогда напишите рекурсивную функцию, которая, получая SalesUnitId как параметр, выбирает по очереди (while select) все дочерние записи, и, если какая нибудь из них тоже содержит дочерние, вызывается рекурсивно для этой конкретой дочерней записи. Ну например: X++: static void Job45(Args _args) { SMMSalesUnitId salesUnitId; List salesUnits = new List(Types::String); List getChildSalesUnit(SMMSalesUnitId _salesUnitIdParent) { SMMSalesUnit salesUnit; List childSalesUnit = new List(Types::String); //Add current sales unit to list childSalesUnit.addEnd(_salesUnitIdParent); //Check for child records select count(RecId) from salesUnit where salesUnit.ParentId == _salesUnitIdParent; if (!salesUnit) { return childSalesUnit; } //Go through child records and call recurent function while select SalesUnitId from salesUnit where salesUnit.ParentId == _salesUnitIdParent { //Merge list with the result list of all children childSalesUnit = List::merge(childSalesUnit, getChildSalesUnit(salesUnit.SalesUnitId)); } return childSalesUnit; } ; salesUnitId = "any value"; salesUnits = getChildSalesUnit(salesUnitId); }
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! Последний раз редактировалось plumbum; 12.04.2013 в 18:07. Причина: Орфография... мда, 3 года всего учил русский в школе :) |
|
|
За это сообщение автора поблагодарили: user_ax (1). |