KKOVEXP ; Potentieel export Quit Export New %SC,ProdGroep,LijstType,FromCust,ToCust Kill ^HULP($J) Set ProdGroep=$$GetAllProdGroep(),LijstType="V" Do EDIT^vhScherm("KKOVEXP") If %SC,$L(ProdGroep) Do . Set FromCust=$O(^KKL(0)),ToCust=$O(^KKL(""),-1) . ;Set FromCust="Z",ToCust="ZYDANTE 8608" . ;Set FromCust="VANRAEMDONCKCO 1523",ToCust="VANRAEMDONCKCO 1523" . Do Fetch(FromCust,ToCust,ProdGroep) . Do Output($NA(^HULP($J)),$TR($$ShowProdGroep(ProdGroep),";",","),LijstType) . Kill ^HULP($J) Quit ; Ophalen van sortkey van alle mogelijke productgroepen GetAllProdGroep() New I,AllProdGroep,HoofdGr Set AllProdGroep="CH;KB;GL;BX" For I=1:1 Quit:$P(AllProdGroep,";",I)="" Set AllProdGroep($$GETSORTKEY^KLASS($P(AllProdGroep,";",I)))="" Set (AllProdGroep,HoofdGr)="" For Set HoofdGr=$O(AllProdGroep(HoofdGr)) Quit:HoofdGr="" Set AllProdGroep=AllProdGroep_";"_HoofdGr Set $E(AllProdGroep)="" Quit AllProdGroep ; Selecteer een of meerdere productgroepen voor verwerking SelectProdGroep(ProdGroep,Pos) New R,zb,SelectProdGroep Set AllProdGroep=$$GetAllProdGroep() For I=1:1 Quit:$P(AllProdGroep,";",I)="" Set ProdGroep($P(AllProdGroep,";",I))=$P(AllProdGroep,";",I)_D_$P($$DISPLS^KLASS($P(AllProdGroep,";",I),1)," ",2) Set SelectProdGroep=$$WILD^vhPOPUP($G(Pos,"C;C"),"-1OM","Productgroep",.ProdGroep,$G(ProdGroep)) Set:zb="CANC" SelectProdGroep=ProdGroep Quit SelectProdGroep ; Vertalen van de productgroepen voor display op het scherm ShowProdGroep(ProdGroep) New I For I=1:1 Quit:$P(ProdGroep,";",I)="" Set $P(ProdGroep,";",I)=$$DISPLS^KLASS($P(ProdGroep,";",I)) Quit ProdGroep ; Verzamelen van de gegevens Fetch(FromCust,ToCust,ProdGroep) New Count,Potentieel,KlKey,KLNr,KlNaam,Regio,HoofdGr,ProdGrpAantal,ProdGrpOmzet,Verdeler,Fabrikant,VerdelerCode,FabrikantCode,FabrikantVerdelerCode,Aantal,Omzet Set KlKey=$O(^KKL(FromCust),-1),Count=0 For Set KlKey=$O(^KKL(KlKey)) Quit:KlKey="" Quit:KlKey]ToCust Do . Set KLNr=$P(^KKL(KlKey,0),D),KlNaam=$P(^KKL(KlKey,0),D,2),Regio=$P(^KKL(KlKey,0),D,20) . Set ^HULP($J,"V",KlKey)=KLNr_D_KlNaam_D_Regio . Set HoofdGr="" . For Set HoofdGr=$O(^KKOV(KLNr,HoofdGr)) Quit:HoofdGr="" Do . . Quit:";"_ProdGroep_";"'[(";"_HoofdGr_";") ; Hoofdgroep niet geselecteerd . . Set (ProdGrpAantal,ProdGrpOmzet,Groep)=0 . . For Set Groep=$O(^KKOV(KLNr,HoofdGr,Groep)) Quit:Groep="" Do . . . Set Verdeler=0 . . . For Set Verdeler=$O(^KKOV(KLNr,HoofdGr,Groep,Verdeler)) Quit:Verdeler="" Do . . . . Set VerdelerCode=$P(^KVER(^KVER1(Verdeler),0),D,10),Fabrikant=0 . . . . For Set Fabrikant=$O(^KKOV(KLNr,HoofdGr,Groep,Verdeler,Fabrikant)) Quit:Fabrikant="" Do . . . . . Set FabrikantCode=$P(^KFAB(^KFAB1(Fabrikant),0),D,10) . . . . . Set R=^KKOV(KLNr,HoofdGr,Groep,Verdeler,Fabrikant),Aantal=$P(R,D,3),Omzet=$P(R,D,16) . . . . . Set ProdGrpAantal=ProdGrpAantal+Aantal,ProdGrpOmzet=ProdGrpOmzet+Omzet . . . . . Set FabrikantVerdelerCode=FabrikantCode_"/"_VerdelerCode . . . . . Set R=$G(^HULP($J,"V",KlKey,HoofdGr,FabrikantVerdelerCode)),$P(R,D)=$P(R,D)+Aantal,$P(R,D,2)=$P(R,D,2)+Omzet . . . . . Set ^HULP($J,"V",KlKey,HoofdGr,FabrikantVerdelerCode)=R . . . . . Set R=$G(^HULP($J,"H",FabrikantVerdelerCode,KlKey,HoofdGr)),$P(R,D)=$P(R,D)+Aantal,$P(R,D,2)=$P(R,D,2)+Omzet . . . . . Set ^HULP($J,"H",FabrikantVerdelerCode,KlKey,HoofdGr)=R . . Set:$O(^HULP($J,"V",KlKey,HoofdGr,""))'="" ^HULP($J,"V",KlKey,HoofdGr)=ProdGrpAantal_D_ProdGrpOmzet . Kill:$O(^HULP($J,"V",KlKey,""))="" ^HULP($J,"V",KlKey) Quit ; Wegschrijven naar de shared map Output(Ref,Titel,LijstType) New R,ExpRec,Dev,KlKey,Klant,HoofdGr,ProdGroep,Fabrikant,Verdeler,FabrikantCode,VerdelerCode,FabrikantVerdeler,FabrikantVerdelerCode Set Titel="Productgroep("_Titel Do:$L(Titel)>25 . For Quit:$L(Titel)<22 Set Titel=$P(Titel,",",1,$L(Titel,",")-1) . Set Titel=Titel_"..." Set Titel=Titel_")" Set Dev=$$OPEN^vhDEV(,Titel_".TXT","W","A") Do:Dev'=0 . Use Dev . Set ExpRec="Klantnummer"_$C(9)_"Naam"_$C(9)_"Regio"_$C(9)_"Productgroep"_$C(9)_"Aantal/productgroep"_$C(9)_"Omzet/productgroep"_$C(9) . If LijstType="V" Set ExpRec=ExpRec_"Fabrikant/Verdeler"_$C(9)_"Aantal" . Else Do . . Set (R,FabrikantVerdeler,FabrikantVerdelerCode)="" . . For Set FabrikantVerdelerCode=$O(@Ref@("H",FabrikantVerdelerCode)) Quit:FabrikantVerdelerCode="" Do . . . Set R=R_$C(9)_FabrikantVerdelerCode . . . Set FabrikantVerdeler=FabrikantVerdeler_$LB(FabrikantVerdelerCode) . . Set $E(R)="",ExpRec=ExpRec_R . Write ExpRec,$C(13) . Set KlKey="" . For Set KlKey=$O(@Ref@("V",KlKey)) Quit:KlKey="" Do . . Set Klant=@Ref@("V",KlKey),HoofdGr="" . . For Set HoofdGr=$O(@Ref@("V",KlKey,HoofdGr)) Quit:HoofdGr="" Do . . . Set R=@Ref@("V",KlKey,HoofdGr),ProdGrpAantal=$P(R,D),ProdGrpOmzet=$P(R,D,2) . . . Set ProdGroep=$$DISPLS^KLASS(HoofdGr)_D_ProdGrpAantal_D_ProdGrpOmzet . . . Set ExpRec=Klant_D_ProdGroep . . . Set FabrikantVerdelerCode="" . . . For Set FabrikantVerdelerCode=$O(@Ref@("V",KlKey,HoofdGr,FabrikantVerdelerCode)) Quit:FabrikantVerdelerCode="" Do . . . . Set R=@Ref@("V",KlKey,HoofdGr,FabrikantVerdelerCode),ProdGrpAantal=$P(R,D) . . . . If LijstType="V" Set ExpRec=Klant_D_ProdGroep_D_FabrikantVerdelerCode_D_ProdGrpAantal . . . . Else Set $P(ExpRec,D,6+$LF(FabrikantVerdeler,FabrikantVerdelerCode))=ProdGrpAantal . . . . Do:LijstType="V" . . . . . Write $TR(ExpRec,D,$C(9)),$C(13) . . . . . For I=1:1:$L(Klant,D) Set $P(Klant,D,I)="" . . . . . For I=1:1:$L(ProdGroep,D) Set $P(ProdGroep,D,I)="" . . . Do:LijstType="H" . . . . Write $TR(ExpRec,D,$C(9)),$C(13) . . . . For I=1:1:$L(Klant,D) Set $P(Klant,D,I)="" . . . . For I=1:1:$L(ProdGroep,D) Set $P(ProdGroep,D,I)="" . Close Dev Quit ; Verzamelen van de gegevens oFetch(FromCust,ToCust,ProdGroep) New Count,Potentieel,KlKey,KLNr,KlNaam,Regio,HoofdGr,ProdGrpAantal,ProdGrpOmzet,Verdeler,Fabrikant,VerdelerCode,FabrikantCode,Aantal,Omzet Set KlKey=$O(^KKL(FromCust),-1),Count=0 For Set KlKey=$O(^KKL(KlKey)) Quit:KlKey="" Quit:KlKey]ToCust Do . Set KLNr=$P(^KKL(KlKey,0),D),KlNaam=$P(^KKL(KlKey,0),D,2),Regio=$P(^KKL(KlKey,0),D,20) . Set ^HULP($J,"V",KlKey)=KLNr_D_KlNaam_D_Regio . Set HoofdGr="" . For Set HoofdGr=$O(^KKOV(KLNr,HoofdGr)) Quit:HoofdGr="" Do . . Quit:";"_ProdGroep_";"'[(";"_HoofdGr_";") ; Hoofdgroep niet geselecteerd . . Set (ProdGrpAantal,ProdGrpOmzet,Groep)=0 . . For Set Groep=$O(^KKOV(KLNr,HoofdGr,Groep)) Quit:Groep="" Do . . . Set Verdeler=0 . . . For Set Verdeler=$O(^KKOV(KLNr,HoofdGr,Groep,Verdeler)) Quit:Verdeler="" Do . . . . Set VerdelerCode=$P(^KVER(^KVER1(Verdeler),0),D,10),Fabrikant=0 . . . . For Set Fabrikant=$O(^KKOV(KLNr,HoofdGr,Groep,Verdeler,Fabrikant)) Quit:Fabrikant="" Do . . . . . Set FabrikantCode=$P(^KFAB(^KFAB1(Fabrikant),0),D,10) . . . . . Set R=^KKOV(KLNr,HoofdGr,Groep,Verdeler,Fabrikant),Aantal=$P(R,D,3),Omzet=$P(R,D,16) . . . . . Set ProdGrpAantal=ProdGrpAantal+Aantal,ProdGrpOmzet=ProdGrpOmzet+Omzet . . . . . Set R=$G(^HULP($J,"V",KlKey,HoofdGr,Fabrikant,Verdeler)),$P(R,D)=$P(R,D)+Aantal,$P(R,D,2)=$P(R,D,2)+Omzet . . . . . Set ^HULP($J,"V",KlKey,HoofdGr,Fabrikant,Verdeler)=R . . . . . Set R=$G(^HULP($J,"H",FabrikantCode_"/"_VerdelerCode,KlKey,HoofdGr)),$P(R,D)=$P(R,D)+Aantal,$P(R,D,2)=$P(R,D,2)+Omzet . . . . . Set ^HULP($J,"H",FabrikantCode_"/"_VerdelerCode,KlKey,HoofdGr)=R . . Set:$O(^HULP($J,"V",KlKey,HoofdGr,""))'="" ^HULP($J,"V",KlKey,HoofdGr)=ProdGrpAantal_D_ProdGrpOmzet . Kill:$O(^HULP($J,"V",KlKey,""))="" ^HULP($J,"V",KlKey) Quit ; Wegschrijven naar de shared map oOutput(Ref,Titel,LijstType) New R,ExpRec,Dev,KlKey,Klant,HoofdGr,ProdGroep,Fabrikant,Verdeler,FabrikantCode,VerdelerCode,FabrikantVerdeler,FabrikantVerdelerCode Set Titel="Productgroep("_Titel Do:$L(Titel)>25 . For Quit:$L(Titel)<22 Set Titel=$P(Titel,",",1,$L(Titel,",")-1) . Set Titel=Titel_"..." Set Titel=Titel_")" Set Dev=$$OPEN^vhDEV(,Titel_".TXT","W","A") Do:Dev'=0 . Use Dev . Set ExpRec="Klantnummer"_$C(9)_"Naam"_$C(9)_"Regio"_$C(9)_"Productgroep"_$C(9)_"Aantal/productgroep"_$C(9)_"Omzet/productgroep"_$C(9) . If LijstType="V" Set ExpRec=ExpRec_"Fabrikant/Verdeler"_$C(9)_"Aantal" . Else Do . . Set (R,FabrikantVerdeler,FabrikantVerdelerCode)="" . . For Set FabrikantVerdelerCode=$O(@Ref@("H",FabrikantVerdelerCode)) Quit:FabrikantVerdelerCode="" Do . . . Set R=R_$C(9)_FabrikantVerdelerCode . . . Set FabrikantVerdeler=FabrikantVerdeler_$LB(FabrikantVerdelerCode) . . Set $E(R)="",ExpRec=ExpRec_R . Write ExpRec,$C(13) . Set KlKey="" . For Set KlKey=$O(@Ref@("V",KlKey)) Quit:KlKey="" Do . . Set Klant=@Ref@("V",KlKey),HoofdGr="" . . For Set HoofdGr=$O(@Ref@("V",KlKey,HoofdGr)) Quit:HoofdGr="" Do . . . Set R=@Ref@("V",KlKey,HoofdGr),ProdGrpAantal=$P(R,D),ProdGrpOmzet=$P(R,D,2) . . . Set ProdGroep=$$DISPLS^KLASS(HoofdGr)_D_ProdGrpAantal_D_ProdGrpOmzet . . . Set ExpRec=Klant_D_ProdGroep . . . Set Fabrikant="" . . . For Set Fabrikant=$O(@Ref@("V",KlKey,HoofdGr,Fabrikant)) Quit:Fabrikant="" Do . . . . Set FabrikantCode=$P(^KFAB(^KFAB1(Fabrikant),0),D,10),Verdeler="" . . . . For Set Verdeler=$O(@Ref@("V",KlKey,HoofdGr,Fabrikant,Verdeler)) Quit:Verdeler="" Do . . . . . Set VerdelerCode=$P(^KVER(^KVER1(Verdeler),0),D,10) . . . . . Set R=@Ref@("V",KlKey,HoofdGr,Fabrikant,Verdeler),ProdGrpAantal=$P(R,D) . . . . . If LijstType="V" Set ExpRec=Klant_D_ProdGroep_D_FabrikantCode_"/"_VerdelerCode_D_ProdGrpAantal . . . . . Else Set $P(ExpRec,D,6+$LF(FabrikantVerdeler,(FabrikantCode_"/"_VerdelerCode)))=ProdGrpAantal . . . . . Do:LijstType="V" . . . . . . Write $TR(ExpRec,D,$C(9)),$C(13) . . . . . . For I=1:1:$L(Klant,D) Set $P(Klant,D,I)="" . . . . . . For I=1:1:$L(ProdGroep,D) Set $P(ProdGroep,D,I)="" . . . Do:LijstType="H" . . . . Write $TR(ExpRec,D,$C(9)),$C(13) . . . . For I=1:1:$L(Klant,D) Set $P(Klant,D,I)="" . . . . For I=1:1:$L(ProdGroep,D) Set $P(ProdGroep,D,I)="" . Close Dev Quit