begin
for select
SUM(A.Incomes),
SUM(A.Expenses),
A.BusProject_ID,
MAX(Z.Parent_ID)
from
RepBusProjects2 (:Audited, :DateFrom, :DateTo, :FirmSelID,
:BusTransactionSelID, :ABusTransactionsWithChilds,
:DivisionSelID, :BusOrderSelID, :ABusOrdersWithChilds,
:BusProjectSelID, :ABusProjectsWithChilds,
:IsRequest, :ADivisionsWithChilds) A
LEFT join BusProjects Z ON A.BusProject_ID = Z.ID
group by
A.BusProject_ID
into Incomes, Expenses, BusProject_ID, TempParent_ID
do begin
Nesting = 0;
TempBusProject_ID = BusProject_ID;
while (BusProject_ID is not null and TempParent_ID is not null and Nesting < 100) do begin
select Parent_ID, ID
from BusProjects where ID = :TempParent_ID
into TempParent_ID, TempID;
TempNesting = Nesting;
BusProject_ID = TempID;
Nesting = 0;
if (Summarize = 'A') then suspend;
Nesting = TempNesting + 1;
end
BusProject_ID = TempBusProject_ID;
suspend;
end
end;