persistent TECH.Error,vhLib.Macro 1 DOM.EC.Winkelkar.Lijn TECH.String 1 DOM.EC.Winkelkar.Lijn list Naam:%String 1 1 %Status TECH.Iterator Visitor:DOM.EC.Winkelkar.WinkelkarVisitor GroepNaam:%String DOM.EC.Winkelkar.GroepLijn Als een groep verwijderd wordt, verwijdert ze eerst haar inhoud. Pos:%Integer %Status 0) && (VerwijderStatus = $$$OK)) { // Eerste element van de lijst #dim Lijn As DOM.EC.Winkelkar.Lijn = ..Sublijnen.GetNext("") set VerwijderStatus = Lijn.OnBeforeVerwijder() set:(VerwijderStatus = $$$OK) VerwijderStatus = ..VerwijderPos(Lijn, 1) set Count = Count - 1 } quit VerwijderStatus ]]> Lijn:DOM.EC.Winkelkar.Lijn,InsertPos:%Integer %Status Lijn:DOM.EC.Winkelkar.Lijn %Status Lijn:DOM.EC.Winkelkar.Lijn %Integer ..Sublijnen.Count()) && $$$Not(..Sublijnen.GetAt(i).%Oid() = Lijn.%Oid())) { set i = i + 1 } if (i > ..Sublijnen.Count()) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.GeneralErrorException).%New("Deze lijn bestaat niet in deze groep")) } quit i ]]> Verwijdert de lijn uit de groep. Indien de lijn zelf een groep is, dan worden alle lijnen die in die groep zitten mee verwijderd (recursief). Lijn:DOM.EC.Winkelkar.Lijn %Status Lijn:DOM.EC.Winkelkar.Lijn,Pos:%Integer 1 %Status omitted for now do ..Sublijnen.RemoveAt(Pos) #dim Status As %Status =..Lijst.VerwijderInternal(Lijn) set:($$$ISERR(Status)) Status = $$$ERROR($$$GeneralError, "Fout bij verwijderen van lijn " _ Lijn) quit Status ]]> %Library.CacheStorage GroepLijnDefaultData "GroepLijn" Naam Sublijnen