1 %RegisteredObject %String Context:%String 1 1 %Status StartLabel:%String 0) { Set ParentLabel = LabelsQueue.GetAt(1) Set ParentTimingUnit = Index.GetAt(ParentLabel) Do LabelsQueue.RemoveAt(1) Set ResultSet = ##class(%ResultSet).%New("zTryout.CSC.Timing.Writer:GeefKnopen") Do ResultSet.Execute(..Context, ParentLabel) While (ResultSet.Next()) { Do LabelsQueue.Insert(ResultSet.Data("Label")) Set TimingUnit = ##class(zTryout.CSC.Timing.TimingUnit).%New() Set TimingUnit.Label = ResultSet.Data("Label") Set TimingUnit.ParentLabel = ResultSet.Data("ParentLabel") Set TimingUnit.Aantal = ResultSet.Data("Aantal") Set TimingUnit.Minimum = ResultSet.Data("Minimum") Set TimingUnit.Average = ResultSet.Data("Average") Set TimingUnit.Maximum = ResultSet.Data("Maximum") Do Index.SetAt(TimingUnit, TimingUnit.Label) Do ParentTimingUnit.Children.Insert(TimingUnit) } } Do ..Verwerk(Index.GetAt(StartLabel)) ]]> Knoop:zTryout.CSC.Timing.TimingUnit,Niveau:%Integer=0 0) { w ", Aant: "_Knoop.Aantal_", Avg: "_$Piece(Knoop.Average,".")_"."_$Extract($Piece(Knoop.Average,".",2),1,2) w !,Indentatie_"Min: "_Knoop.Minimum_", Max: "_Knoop.Maximum } Set Iterator = ##class(TECH.ListIterator).%New(Knoop.Children) While (Iterator.HasNext()) { Do ..Verwerk(Iterator.Next(),(Niveau+1)) } ]]> %SQLQuery Context:%String,ParentLabel:%String SELECT Label, ParentLabel, count(1) as Aantal, min(Duurtijd) as Minimum, avg(Duurtijd) as Average, max(Duurtijd) as Maximum FROM TECH_Timing.Timer WHERE Context = :Context AND ParentLabel = :ParentLabel GROUP BY ParentLabel, Label