HADSTAT ;Statistiek portefeuille [ 12/27/2003 12:17 PM ] Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set LEVNr=6332 ; HALUX Quit:'LEVNr Do INIT Do FETCH() Do REFRESH For Do Quit:Input="-"!(Input="CANC") .If DispMode="O" Do ..Set Input=$$SCROLL^vhLIST(.LD,,1) ..Set LevWk=$S(LD("SELECT"):$P($G(^HULP(%J,"L",LD("SELECT"))),D,1),1:"") .If DispMode="D" Do ..Set Input=$$SCROLL^vhLIST(.DLD) .If Input="" Do SHOWSUB(LevWk) Quit .If Input="COM" Set Input="" Do CALL^vhMenu("HADSTAT") .Do EXEC^vhMenu("HADSTAT",.Input) Quit INIT Set SubWk="" Set DispMode="O" Do INIT^vhLIST("HADSTAT","OVZ",.LD) Quit REFRESH Write @F11,@F1 Do DISPLAY^vhScherm("HADSTAT") If DispMode="O" Do .Set FP=0401 Write @F,@F2,@FMTB," Gewogen aantallen ",@FMTb .Do WRITE^vhLIST(.LD) .Set FP=1801 Write @F,@F2,@FMTB," Absolute aantallen ",@FMTb If DispMode="D" Do .Do WRITE^vhLIST(.DLD) Quit FETCH(Soorten) Set LevWk="",VolgNr=0 Set:$G(Soorten)="" Soorten="KM;KZ;PR;BA;DV" Set:$G(Nodes)="" Nodes="KOBFP" Set LevWk=$O(^HADSTAT("O",LEVNr,LevWk)) For Set LevWk=$$CALCDATE^vhDTyp(LevWk,"W",+1,"MD") Do Quit:$O(^HADSTAT("O",LEVNr,LevWk))="" .Set VolgNr=VolgNr+1 .Set Rec="" .Set $P(Rec,D,1)=LevWk .Set:LevWk<$H DefSelect=VolgNr .For I=1:1:$L(Nodes) Do ..Set Node=$E(Nodes,I) ..Quit:'$D(^HADSTAT("O",LEVNr,LevWk,Node)) ..For J=1:1:$L(Soorten,";") Do ...Set Soort=$P(Soorten,";",J) ...;Write !,LEVNr," ",LevWk," ",Node," ",Soort ...Set RecH=$G(^HADSTAT("O",LEVNr,LevWk,Node,Soort)) ...Quit:RecH="" ...;Weging doorgeven voor aantal ...Set $P(Rec,D,I*3)=$P(Rec,D,I*3)+($P(RecH,D,1)*$S(Soort="DV":0,Soort="KZ":.7,Soort="PR":.7/4,Soort="BA":4,1:1)) ...Set $P(Rec,D,I*3+1)=$P(Rec,D,I*3+1)+$P(RecH,D,3) .Set ^HULP(%J,"L",VolgNr)=Rec Set:$G(DefSelect) LD("SELECT")=DefSelect Quit SHOWSUB(LevWk) New Nodes,Soorten,VolgNr,Rec,Node,Soort,RecH,I,J Quit:SubWk=LevWk ; Zelfde als vorige keer Quit:LevWk="" Set Soorten="KM;KZ;PR;BA;DV" Set Nodes="KOBFP" Kill ^HULP(%J,"S") Set VolgNr=0 For J=1:1:$L(Soorten,";") Do .Set Soort=$P(Soorten,";",J) .Set Rec=Soort .For I=1:1:$L(Nodes) Do ..Set Node=$E(Nodes,I) ..Set RecH=$G(^HADSTAT("O",LEVNr,LevWk,Node,Soort)) ..Quit:RecH="" ..Set $P(Rec,D,I*3)=$P(Rec,D,I*3)+$P(RecH,D,1) ..Set $P(Rec,D,I*3+1)=$P(Rec,D,I*3+1)+$P(RecH,D,3) .Set VolgNr=VolgNr+1 .Set ^HULP(%J,"S",VolgNr)=Rec Set SubWk=LevWk Do INIT^vhLIST("HADSTAT","SUB",.SLD) Do WRITE^vhLIST(.SLD) Quit SHOWOVZ Set DispMode="O" Do REFRESH Quit SHOWDTL(LevWk,Nodes,Soorten) New Rec,I,J,Soort,Node,RecH,SortNr,VolgNr Kill DLD Do INIT^vhLIST("HADSTAT","DTL",.DLD) Set DispMode="D" Kill ^HULP(%J,"D"),^HULP(%J,"DS") Set SortNr="" Set:$G(Soorten)="" Soorten="KM;KZ;PR;BA;DV" Set:$G(Nodes)="" Nodes="KOBFP" Set Rec="" For I=1:1:$L(Nodes) Do .Set Node=$E(Nodes,I) .Quit:'$D(^HADSTAT("D",LEVNr,LevWk,Node)) .Set VolgNr="" .For Set VolgNr=$O(^HADSTAT("D",LEVNr,LevWk,Node,VolgNr)) Quit:VolgNr="" Do ..Set RecH=$G(^HADSTAT("D",LEVNr,LevWk,Node,VolgNr)) ..Quit:Soorten'[$P(RecH,D) ..Set $P(RecH,D,11)=Node ..Set SortNr=SortNr+1 ..Set ^HULP(%J,"DS",$$SORTDTL(I,RecH,SortNr))=RecH Set Key="" Set SortNr="" For Set Key=$O(^HULP(%J,"DS",Key)) Quit:Key="" Do .Set SortNr=SortNr+1 .Set ^HULP(%J,"D",SortNr)=^HULP(%J,"DS",Key) Kill ^HULP(%J,"DS") Do REFRESH Quit SORTDTL(Node,RecH,SortNr) New Key Set Key=Node_$P(RecH,D,1)_$E($G(^KK1($P(RecH,D,2)),"*"),1,20)_SortNr Quit Key CBDTL(Select,Rec) ; Callback voor detail New KT,PRNr,KLNr,KLNm,Ref,RefNr Set sFL(2)="" Set PRNr=$P(Rec,D,3) Set KT=$P($G(^KPR(PRNr,0)),D,1) Set:KT="" KT=$P($G(^KPRO(PRNr,0)),D,1) Set KLNr=$P(Rec,D,2) Set KLNm=$P(^KKL(^KK1(KLNr),0),D,2) Set Ref="" Set RefNr=$P(Rec,D,4) Set:RefNr Ref=$P(Rec,D,11)_":"_$E(RefNr,1,3)_"."_$E(RefNr,4,6) If Ref="" Do ;Bon .Set RefNr=$P(Rec,D,5) .Set:RefNr Ref="B:"_$E(RefNr,1,3)_"."_$E(RefNr,4,6) If Ref="" Do ; Order .Set RefNr=$P(Rec,D,6) .Set:RefNr Ref=$P(Rec,D,11)_":"_$E(RefNr,1,3)_"."_$E(RefNr,4,6) Set sFL(2)=KLNm_D_KT_D_Ref Quit RPLKL New KLNr,Actie Quit:DispMode'="D" Quit:'DLD("SELECT") Set KLNr=$P($G(^HULP(%J,"D",DLD("SELECT"))),D,2) Set Actie=$$RAADPL^KLANT(KLNr,"O") Do REFRESH Quit RPLPR New PRNr,Actie Quit:DispMode'="D" Quit:'DLD("SELECT") Set PRNr=$P($G(^HULP(%J,"D",DLD("SELECT"))),D,3) Set Actie=$$RAADPL^PRODUKT(PRNr,"1") Do REFRESH Quit