Set BL=##class(BL.Derde.Klant.Main).%New() s Q=BL.Zoek(1051) f d Q.Next(.Ok) q:('Ok) w Ok,! m Data=Q.Data zw Data BL.Derde.Derde 1 %RegisteredObject 0 SELECT Nummer, Naam, Woonplaats FROM Derde_Klant.Klant WHERE Naam %STARTSWITH ? WHERE Nummer = ? WHERE PostNummer %STARTSWITH ? WHERE WoonPlaats %STARTSWITH ? WHERE StraatNrBus %STARTSWITH ? AND (isnull(KodeCommercieelAktief,0)=0) ORDER BY Naam Criteria : BeginLetters of DerdeNr of Postkode ZoekType : Leeg = DerdeNaam of DerdeNr : "W" = Woonplaats : "P" = Postkode : "S" = Straat 1 Criteria:%String,ZoekType:%String,InclNonAktief:%Boolean %XML.DataSet Criteria:%String,ZoekType:%String,InclNonAktief:%Boolean %String 1 Status,Object w ##class(BL.Derde.Klant.Main).OmzetTrend(5209) 1 KLNr ",Omz,! . ; Sommering 3 maanden . If I<13 Do . . Do ..Compare(3,1,3,Omz,.Omz) . Else Do . .Set Omz(3)=Omz(3)+Omz . ; Sommering 2 maanden . If I<14,I>1 Do . . Do ..Compare(2,1,2,Omz,.Omz) . Else If I>13 Do . .Set Omz(2)=Omz(2)+Omz . ; Sommering 1 maand . If I<15,I>2 Do . . Do ..Compare(1,1,1,Omz,.Omz) . Else If I>14 Do . .Set Omz(1)=Omz(1)+Omz ;w ! ;K %Omz m %Omz=Omz zw %Omz ;w ! ; Analyze Set Result="" For Grp=1:1:3 Do . Set (Som,Aantal)=0 . For I=1:1:Grp Do:Omz(Grp,I)<$$$Max . . Set Aantal=Aantal+1 . . Set Som=Som+Omz(Grp,I) . Quit:'Aantal . Set Omz(Grp)=(Omz(Grp)/Grp)_"\"_(Som/Aantal) ; Laatste Omzet \ Minimum Omzet . If $P(Omz(Grp),"\") < ($P(Omz(Grp),"\",2)*$$$ReduceOmzet) Set Result=$TR($J("",Grp)," ","-"),$P(Omz(Grp),"\",3)=Result ; De MinOmzet wordt verkleind, dit om kleine afwijkingen toe te laten. . ;Write Grp," LstOmz: "_$J($P(Omz(Grp),"\"),0,0)_" < MinOmz:"_$J($P(Omz(Grp),"\",2),0,0)," * ",$$$ReduceOmzet," = result: "_$P(Omz(Grp),"\",3),! ;W ! ;W !,"*** ",Result," ***" Quit Result ]]> Hulproutine voor OmzetTrend 1 Grp,FromI,Max,CompOmz,Omz 1 ; geen omzet in de maand For J=FromI:1:Max If Omz(Grp,J)>CompOmz Do Quit . Do ..Compare(Grp,J,Max,Omz(Grp,J),.Omz) ; Recursief . Set Omz(Grp,J)=CompOmz Quit ]]>