UTILI ;UTILI-DATA [ 01/23/2002 3:45 PM ] d ^cA604 s r=$$SELECT("KL","","Test : ") W !,r," ",$G(^KLIS1(r)),@F2,! q ; SELECT(Bestand,DefU,Titel) New X,Y,Tekst,UTLNr,Utl,TUtl Set Bestand=$G(Bestand) Set:'$L($G(DefU)) DefU=$G(sRef("UTL")) If $L(DefU),'$D(^KLIS1(DefU)) Set DefU="" If DefU,'$$UCHECK(DefU,Bestand) Set DefU="" If '$L($G(Titel)) Set Titel="Utili-Data selectie : " Do ADD^vhScherm(21,24) Set UTLNr="" SEL2 Set Utl=$$ASK^vhINP(Titel,20,"","Ingave Utili-Data selectie dmv. naam of nummer") Quit:Utl="-"!(Utl=".") Utl Set Utl=$$UPTRIMAN^vhRtn1(Utl) If Utl=""!zb Do LIST("") Goto SEL2:'UTLNr,EXIT If Utl?3.4N,$D(^KLIS1(Utl)) Set UTLNr=Utl Goto SEL2:'$$UCHECK(Utl,Bestand),EXIT Set TUtl=$O(^KLIS(Utl)) If $E(TUtl,1,$L(Utl))'=Utl Goto SEL2 If $E($O(^KLIS(TUtl)),1,$L(Utl))'=Utl Set UTLNr=+^KLIS(TUtl,0) Goto SEL2:'$$UCHECK(UTLNr,Bestand),EXIT Do LIST(Utl) Goto SEL2:'UTLNr,EXIT EXIT Quit UTLNr UCHECK(UTLNr,Bestand) Quit:Bestand="" 1 Quit $P(^KLIS(^KLIS1(UTLNr),0),D,3)'=Bestand LIST(Kode) ;New Y,X Set TUtl=Utl ;If '$L(Utl) Set Utl="ZZZZZ" Set Y="5\\Selecteer een Utili-Data selectie\\MORE^UTILI\UTILI" X "Set Y(0)=$$"_$P(Y,"\",5)_"(0,3)" Quit:'Y(0) Do ^POP Set:X UTLNr=+^KLIS(Y(X),0) Quit MORE(Max,Len,Ref) If Max>200 w *7 Quit Max Set Count=0 If Max,TUtl="" Quit Max For Set TUtl=$O(^KLIS(TUtl)) Quit:TUtl=""!($E(TUtl,1,$L(Utl))'=Utl) Set:$S($L(Bestand):$P(^KLIS(TUtl,0),D,3)=Bestand,1:1) Count=Count+1,Y(Max+Count)=TUtl Quit:Count>Len Set:$E(TUtl,1,$L(Utl))'=Utl TUtl="" Quit Max+Count FETCHKL(KLNr,Local) New Inc If '$D(Local) Kill B Set Local="B",Inc=1 Else Set Inc=$G(@Local) Kill @Local Set @Local=Inc,Inc=0 Quit:'$D(^KK1(KLNr)) Set I1=^KK1(KLNr) Quit:'$D(^KKL(I1,0)) For I=0:1:8 Set @Local@(I+Inc)=$G(^KKL(I1,I)) Quit FETCHLEV(LEVNr,Local) New Inc,I Set Inc=0 Set:'$D(Local) Local="B",Inc=1 Kill @Local Quit:'$D(^KL1(LEVNr)) Set I1=^KL1(LEVNr) Quit:'$D(^KLE(I1,0)) For I=0:1:6 Set @Local@(I+Inc)=^KLE(I1,I) Quit FETCHPR(PRNr,Local) New Inc,Key,I Set Inc=0 Set:'$D(Local) Local="B",Inc=1 Kill @Local Quit:'$D(^KPR(PRNr)) Set I1=PRNr For I=0:1:$O(^KPR(PRNr,20),-1) If $D(^KPR(I1,I)) Set @Local@(I+Inc)=^KPR(I1,I) For I="I","J" Set @Local@(I)="",Key=$O(^KPR(I1,I)) Set:$E(Key)=I @Local@(I)=^KPR(I1,Key) Quit CHECK(Local) ; Verwerking executes New T,Count,String,Piece,Value,Test,TestVal,TestDate If '$D(B) Quit 0 For Count=1:1:$O(@Local@(""),-1) Do .Set String=@Local@(Count) .Set Piece=$P(String,U,5) .If Piece?.N!("IJ"[$E(Piece)&($E(Piece,2,9)?.N)) Do ..If Piece?.N Set Value=$P(B(Piece\100),D,Piece#100) Quit ..Set Value=$P(B($E(Piece)),D,$E(Piece,2,9)) .Else Set Value=$$XECUTE(String) .Set Test=$P(String,U),TestVal=$P(String,U,2),TestDate=$P(String,U,6) .If Test>6 Do Quit ..If Test=7 Set T(Count)=$E(Value,1,$L(TestVal))=TestVal Quit ..If Test=8 Set T(Count)=$F(Value,TestVal) Quit ..Set T(Count)=$E(Value,$L(Value)-$L(TestVal)+1,$L(Value))=TestVal .Set Test=$P(">\'<\=\<\'>\'=",D,Test) .If $L(TestVal)=8,TestDate,$L(Value)=8 Do ..Set Value=$$INTDATE^vhDTyp(Value) ..Set TestVal=$$INTDATE^vhDTyp(TestVal) .If TestVal'?.1"-"1N.N.1".".N!(Value'?.1"-".N.1".".N) Do Set Test="Set T(Count)=Value"_Test ..If Test="<" Set Test="']TestVal&(TestVal'=Value)" Quit ..If Test=">" Set Test="]TestVal&(TestVal'=Value)" Quit ..If Test="'>" Set Test="']TestVal!(TestVal=Value)" Quit ..If Test="'<" Set Test="]TestVal!(TestVal=Value)" Quit ..Set Test=Test_"TestVal" .Else Set Test="Set T(Count)=Value"_Test_"TestVal" .Xecute Test Xecute "If "_@Local Quit $T ; ; Verwerking xecutes utilidata S3 If S1 Set S1=$P(K,D,S1#100) Quit Set U3="" Xecute S1 Set S1=U3 Quit ; S4 If '$L($P(K,U,5)) Set J1=I1,S1=$P(K,U,3),S4=$P(K,U,4),K=D Set:$D(B(S1\100)) K=B(S1\100) Quit Xecute $P(K,U,6) Set S1=$P(K,U,7),S4=$P(K,U,8) If '$L(J1) Set K=D Quit Set R="" Set:$D(@("^"_Q_$P(K,U,5)_"(J1,S1\100-1)")) R=^(S1\100-1) Set K=R Quit ; XECUTE(K) New SWKL,SWLE,SWK,SWL,K2,K3,K4,K5,K6,K7,K8,I2,J1,S1,S2,S3,S4,X1,U3,R Set I2="",X1="",S2=$P(K,U,1),S3=$P(K,U,2),K=$P(K,U,3,99) Do S4,S3 Quit U3 ; ; Eenmalige selektie EENMALIG(Global,Ref,Titel,DefScr) Goto ^UTILI2 Quit BEPAALDE(Bestand,SelRef,Sort,Titel,Format,CallBack,RetKeys) Goto COMMAND^UTILI3 Quit ; OMZET(Type) If Type="KL" Do .New KLNr,KlantInd,Omzet,Index .If '$D(%J) Do ..Set %J=$$%J^vhRtn1() ..Kill ^HULP(%J) ..Set KLNr=0 ..For Set KLNr=$O(^KK1(KLNr)) Quit:'KLNr Do ...Set Omzet=+$P($G(^KKAAP(KLNr,0,0,0,0)),D) ...Set KlantInd=^KK1(KLNr),Index=999999999999-Omzet_KlantInd,^HULP(%J,Index)=KlantInd .Set K1=$N(^HULP(%J,K1)),I1=K1 .If I1'=-1 Set I1=^HULP(%J,K1) .Else Kill ^HULP(%J) Quit ;