DCTBX ;AFDRUKKEN BESTELBON TBX [ 01/17/2002 4:18 PM ] #Include BL.Derde.Kennis ; ; Het afdrukken van een toelevering kan met volgende oproep ; --> Do PRINT^DCTOE(TOENr,,,,SelPrint) ; SelPrint = 0 of '$D (geen printerkeuze, printer reeds gedefinieerd) ; = 1 (met printerkeuze) ; = 2 (met automatische printerselectie "Bon") ; VERWERK(FromNr) New TOENr Do INIT Set TOENr=$S(FromNr:FromNr-1,1:FromNr) For Set TOENr=$O(^HULP($J,"P",TOENr)) Quit:TOENr="" Do PRINT(TOENr,1) Quit ; FN(Number,Fraction,Format) Quit $$FN^DCALG(Number,Fraction,$G(Format)) ; PASTEB(R,AddBlank) New NewPage Set NewPage="Do FOOTER^"_$ZN_",TITEL^"_$ZN_",HEADER^"_$ZN Do PASTEB^DCALG(R,NewPage,$G(AddBlank)) Quit ; BLOCK(R) Do BLOCK^DCALG(R) Quit ; CACHE(R) Do CACHE^DCALG(R) Quit ; PASTE(Page,Line,Text,BPos,EPos,Attr) Do PASTE^DCALG(Page,Line,Text,BPos,EPos,Attr) Quit ; ; Afdruk body BODY New B,R,BCount,SortKey,PRNr,Aantal,Type,Diepte,Breedte,Hoogte,Kleur,PrevPRNr Do SORT(TOENr) Set BCount=0,(SortKey,PrevPRNr)="" For Set SortKey=$O(^HULP($J,"SORT","T",TOENr,SortKey)) Quit:SortKey="" Do . Set R=^HULP($J,"SORT","T",TOENr,SortKey),PRNr=$P(R,D) . If PRNr'=PrevPRNr Do . . If PrevPRNr Do FillBody(PrevPRNr,Aantal,Type,Diepte,Breedte,Hoogte,Kleur,1) . . Set Aantal=$P(R,D,2),Type=$P(R,D,4),Diepte=$P(R,D,5),Breedte=$P(R,D,6),Hoogte=$P(R,D,7),Kleur=$P(R,D,8) . Else Set Aantal=Aantal+$P(R,D,2) . Set PrevPRNr=PRNr Do FillBody(PrevPRNr,Aantal,Type,Diepte,Breedte,Hoogte,Kleur) Kill ^HULP($J,"SORT","T",TOENr) Quit ; FillBody(PRNr,Aantal,Type,Diepte,Breedte,Hoogte,Kleur,AddBlank) New R Set R=$P(^KPR(PRNr,0),D)_"`2\"_$S(Type="I":"Intra",1:"")_"`30\"_$S(Diepte=500:"",1:Diepte)_"``41\"_Breedte_"``47\"_$S(Hoogte="M":"",1:Hoogte)_"`52\"_Aantal_"``60\"_$S(Kleur="WI":"",1:Kleur)_"`64" Do BLOCK(R) If $G(AddBlank),BCount,LCount+BCount+1'=MaxLines Do BLOCK($S(LCount+BCount+2=MaxLines:"",1:L("B","S")_"`0")) Do PASTEB(L("B","B")) Quit ; ; Afdruk hoofding HEADER New T If $D(VPerfoT) New VPerfo Set VPerfo=VPerfoT Do CACHE(L("B","F")) Do CACHE(L("B","B")) Set T=$$TXT("RitNr") Do PASTE(PCount,LCount,T,2,"","") Set T=$$TXT("KortTxt") Do PASTE(PCount,LCount,T,2,"","") Set T=$$TXT("Type") Do PASTE(PCount,LCount,T,30,"","") Set T=$$TXT("Diepte") Do PASTE(PCount,LCount,T,"",40,"") Set T=$$TXT("Breedte") Do PASTE(PCount,LCount,T,"",46,"") Set T=$$TXT("Hoogte") Do PASTE(PCount,LCount,T,51,"","") Set T=$$TXT("Aantal") Do PASTE(PCount,LCount,T,"",60,"") Set T=$$TXT("Kleur") Do PASTE(PCount,LCount,T,64,"","") Do CACHE(L("B","S")) Quit ; ; Afdruk titel (volgende blazijden) TITEL New OrdDat,LevInd,R,T,Blank,Titel,Allign,VPerfo New Aanspr,Naam,Woonpl,KLNr,LevAdr,ORDNr,OrdRef Do PPRINT Set PCount=PCount+1,LCount=0 Set R=^KTO(LEVNr,TOENr,1),OrdDat=$TR($P(R,D,2),".","-"),ORDNr=$P(R,D,7),KLNr=$P(R,D,8) Set (LevAdr,OrdRef)="" Set LevInd=^KL1(LEVNr),R=^KLE(LevInd,0) Set Naam=$P(R,D,2),Aanspr=$P(R,D,4),Woonpl=$P(R,D,7) Do VHPB^DCALG(PCount,.Blank,6) Set T=$$FIRMANM^DCALG("L",LEVNr) Do PASTE(PCount,Blank-1,T,40,"","") Do PASTE(PCount,Blank,Woonpl,40,"","") Set Titel=$$TXT("Toelev") Set Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank,T,2,"","") Do PASTE(PCount,Blank,OrdDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(TOENr,","),",",".") Set T=$E(T,1,35) Do PASTE(PCount,Blank-1,T,2,"","B") If PCount>1 Do .Set T=$$TXT("Vervg")_" ("_(PCount-1)_")" .Do PASTE(PCount,Blank,T,"",68,"") Quit ; ; Afdruk titel (eerste blad) FTITEL New OrdDat,R,T,Blank,Titel,Allign,VPerfo,ToeRef,LevInd,Aanspr,Naam,Woonpl,ORDNr,KLNr,KlTaal,DueOut,VerzW Do:PCount PPRINT Set PCount=PCount+1,LCount=0 Set R=^KTO(LEVNr,TOENr,1),OrdDat=$TR($P(R,D,2),".","-"),ToeRef=$P(R,D,3) Set ORDNr=$P(R,D,7),KLNr=$P(R,D,8),DueOut=$P(R,D,19) Set LevInd=^KL1(LEVNr),R=^KLE(LevInd,0) Set Naam=$P(R,D,2),Aanspr=$P(R,D,4),Woonpl=$P(R,D,7) Do VHPB^DCALG(PCount,.Blank,5) Set T=$$FIRMANM^DCALG("L",LEVNr) Do PASTE(PCount,Blank-2,T,40,"","") Do PASTE(PCount,Blank-1,Woonpl,40,"","") Set Titel=$$TXT("Toelev") Set Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank-1,T,2,"","") Do PASTE(PCount,Blank-1,OrdDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(TOENr,","),",",".") If PCount'>1,$E(ToeRef,1,6)="KOMM. " Do . Set R=^KKL(^KK1(KLNr),0),KlTaal=$P(R,D,9) . Set:KlTaal="" KlTaal="N" . Set T=T_"/"_$E(ToeRef,7,99),T=$E(T,1,33)_"/"_KlTaal Set T=$E(T,1,35) Do PASTE(PCount,Blank-2,T,2,"","B") Do:PCount>1 .Set T=$$TXT("Vervg")_" ("_(PCount-1)_")" .Do PASTE(PCount,Blank,T,"",79,"") Do:DueOut .If KLNr,ORDNr,$D(^KOD(KLNr,"F",ORDNr)) Set VerzW=$$SHOW^KLVERZW(,KLNr,ORDNr) .Set T=$$TXT("DueOut") .Do PASTE(PCount,Blank,T,2,"","") .Set T=$$FMTDT^vhLib.DataTypes(DueOut) .If $L($G(VerzW)),VerzW'["DI1" Set T=T_" "_VerzW .Do PASTE(PCount,Blank,T,Allign+4,"","") Quit ; ; Afdruk afsluiting (eerste bladzijden) FOOTER Set C(PCount,LCount)=C(PCount,LCount)_P("D",0) For I=LCount+1:1:MaxLines-1 Do CACHE(L("B","B")) Do CACHE(L("B","L")) Set T=" "_$$TXT("Vervt")_" " Do PASTE(PCount,LCount,T,"",68,"") Set C(PCount,LCount)=P("D",1)_C(PCount,LCount) Quit ; ; Afdruk afsluiting (laatste blad) LFOOTER Do CACHE(L("B","L")) Quit ; ORDREF(KLNr,ORDNr) New R,OrdRef Set R=$G(^KOD(KLNr,"F",ORDNr,1)),OrdRef=$P(R,D,3) Set:OrdRef?2N1"."2N1"."2N1" ".E OrdRef=$P(OrdRef," ",2,99) Quit OrdRef ; ; Afdrukken van een bladzijde PPRINT Do PPRINT^DCPRINT(PCount) Kill C(PCount) Quit ; ; Opbouwen local C en afdrukken van de toelevering PRINT(TOENr,Init,SelPrint) New LEVNr,LevInd,Taal,ToelTyp New C,PCount,LCount,KLNr Set SelPrint=$G(SelPrint) If 0'[SelPrint Do SELPRINT^DCPRINT(SelPrint) Quit:'$D(Print) If '$G(Init) Do INIT Set PCount=0,ToelTyp=1 Set R=^KTO1(TOENr),LEVNr=$P(R,D) If LEVNr=5005,$D(^BLBeri("Z",TOENr)) Set BLBeri=1 Set R=^KTO(LEVNr,TOENr,1),ToeMunt=$$MUNT^vhRtn1($P(R,D,18),1) Set LevInd=^KL1(LEVNr),R=^KLE(LevInd,0),Taal=$P(R,D,9) If Taal="" Set Taal="N" Do PRINT^LOG("TBX",TOENr,"P") Do FTITEL,HEADER,BODY,LFOOTER,PPRINT If 0'[SelPrint Do CLOSE^vhPRINTER Quit ; ; Initialisatie INIT If '$D(VH) Do VH^DCINIT If '$D(P) Do PINIT^DCINIT If '$D(L) Do LINIT^DCINIT("TBX") If '$D(PageLen)!'$D(V) Do FINIT^DCINIT("T") Write P("D",1) Quit ; ; Ophalen taalafhankelijke tekst TXT(Ref,Piece) If '$D(Piece) Set Piece=2 Quit $P($P($T(@("T"_Ref)),U,Piece),D,$F("NFDE",Taal)-1) ; SORT(TOENr) New R,LEVNr,TLNr,PRNr,Aantal,KLNr,ORDNr,OLNr,KlOLNr,SortKey,RitNummer,CB,LD,KL,LC Kill ^HULP($J,"SORT","T",TOENr) Set LEVNr=$P(^KTO1(TOENr),D),KLNr=$P(^KTO(LEVNr,TOENr,1),D,8),TLNr=100 For Set TLNr=$O(^KTO(LEVNr,TOENr,TLNr)) Quit:TLNr="" Do . Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,D,2),Aantal=$P(R,D,3),ORDNr=$P(R,D,27),OLNr=$P(R,D,28) . Quit:'PRNr . If KLNr,ORDNr,OLNr Set R=^KOD(KLNr,"F",ORDNr,OLNr),KlOLNr=$P(R,D,35),RitNummer=$P(R,D,45) . Else Set (KlOLNr,RitNummer)="" . Set $P(KlOLNr,".")=$J($P(KlOLNr,"."),3) . Set SortKey=KlOLNr_"~"_TLNr,R=PRNr_D_Aantal_D_RitNummer . Set CB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"CB")) ; corpusbreedte . Set LD=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) ; ladediepte . Set KL=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KL")) ; kleur lade . Set LC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LC")) ; ladecode . Set R=R_D_$E(LC)_D_LD_D_CB_D_$E(LC,$L(LC))_D_KL . Set ^HULP($J,"SORT","T",TOENr,SortKey)=R Quit ; TToelev ;BESTELBON TBX\BON DE COMMANDE TBX\AUFTRAG TBX\ORDER TBX TDate ;Datum\Date\Datum\Date TDueOut ;Dueout\Dueout\Dueout\Dueout TVervg ;vervolg\suite\fortsetzung\continue TVervt ;vervolgt\à suivre\fortgesetzt\t.b.continued TKortTxt ;Korttekst\Korttekst\Korttekst\Korttekst TType ;Type\Type\Type\Type TDiepte ;D\D\D\D TBreedte ;B\B\B\B THoogte ;Rug\Rug\Rug\Rug TKleur ;Kl\Kl\Kl\Kl TAantal ;Aant\Aant\Aant\Aant