cAN322(TIT,KEU,BR,KR0,NOMIN,%S3) ;Printerkeuze ;%AN322; [ 06/18/01 4:18 PM ] G 1 ; ; Ingang : ; TIT = titel : indien niet ingevuld : "Informatie" ; KEU = mogelijkheden (niet ingevuld = alles) ; vb : 1#3 = printer en fax ; mogelijke keuzes (del #) : 1 = printer ; 2 = scherm ; 3 = fax ; 4 = bestand ; 5 = naar bestand via Reflection ; 6 = PDF bestand ; 9 = later printen ; BR = breedte : niet ingevuld = 80 ; KR0 = 1 : keuze printer via R0-routine ; ; %S3 = een Xecute die kan uitgevoerd worden : zie beheer vaste ; printer ; ; Uitgang : ; PTS = "" = printer ; 1 = scherm ; 2 = fax ; 3 = bestand ; 4 = Naar bestand via Reflection ; . = later printen (ook K=".") ; %S99 en PTS(1) = intern nummer printer uit ^cPRINT ; PTS(2) = aanduiding ivm DUMMY-printer ; F70 en F71 : Xecute om te printen ; T1 ;bestemmingen; karakters; T2 ;Scherm; T3 ; Printer gestart, druk Ctrl-C om te stoppen ... ; T4 ; is in gebruik ; bestaat niet ; T5 ;Keuze printer; T6 ; Printer gestart, druk Ctrl-C om te stoppen ... ; T7 ;Bestandsnaam\"xxxxxxxx[] = naam"; ; T1F ;destinations; caractères; T2F ;L'écran; T3F ; Impression en cours, tapez 'Ctrl-C' pour interrompre ... ; T4F ; n'est pas disponible ; n'existe pas ; T5F ;Sélection de l'imprimante; T6F ; Impression en cours, tapez 'Ctrl-C' pour interrompre ... ; T7F ;Nom du fichier\"xxxxxxxx[] = nom"; ; T1E ;destination; characters; T2E ;Screen; T3E ; Printer started, press Ctrl-C to interrupt ... ; T4E ; is in use ; does not exist ; T5E ;Selection of printer; T6E ; Printer started, press Ctrl-C to interrupt ... ; T7E ;Filename\"xxxxxxxx[] = name"; ; T1D ;Bestimmung; Charaktere; T2D ;Schirm; T3D ; Printer gestart, druck Ctrl-C zu stoppen... ; T4D ; ist im Gebrauch ; besteht nicht ; T5D ;Wahl printer; T6D ; Printer gestart, druck Ctrl-C zu stoppen ... ; T7D ;Dossiername\"xxxxxxxx[] = Name"; ; ; start 1 D MASTER^cQ5 S $ZT="TRAP^cAN000" N B,IPP,IPA,ZC,FLT,I,INIT,UREF,UQC,USC,UFLT D DMS^cAN000("UQC","USC","SYS.PRINT") G YZ:'$L(UQC)!'$L(USC) S UREF=^DMC(UQC,USC,"DATA","REF") S io=$G(io,$$IO^cQ5) S KEU=$G(KEU),BR=$G(BR,80),KR0=$G(KR0) S:'$L($G(TIT)) TIT=$P($T(@("T1"_QT)),U,2) I $L(BR),BR'=80 S TIT=TIT_" ("_BR_$P($T(@("T1"_QT)),U,3)_")" ; opbouw filter aan de hand van de mogelijkheden S FLT="" I $L(KEU) D . S KEU=KEU_"#7" . S K=$TR($TR(KEU,"123456789"," 12345678")," ","") . S FLT="I ""#"_K_"#""[(""#""_$P(^(0),D,9)_""#"")" 17 B 1 K PTS I $G(KR0) S K=$$KR0(FLT) G 19 S K=$$^cANSYN("SYS.PRINT","","",KEU[2!'$L(KEU),"","",FLT,TIT,$P($T(@("T2"_QT)),U,2)) 19 W /WDSP B 0 I K="-" G 17:$G(NOMIN),YZ ; 2 I KEU[2!'$L(KEU),'$L(K) D G 17:'$L(K) ; via TAB naar "Scherm" . N UI1 . S UI1="" F S UI1=$O(@UREF) Q:UI1="" I $P(^(UI1,0),D,9,10)="1\80" S K=UI1 Q I '$L(K) G YZ ; 3 ; opbouw van F70 en F71 D BF70(K) I E G 17 I K="." G YZ ; 4 ; log printer usage I $G(^cLOG($ZU(5),"log","PrinterUsage")) D . S ^($O(^LOGGING($ZU(5),"PrinterUsage",""),-1)+1,0)=QU_D_DT_D_TD_D_$H_D_K,^("F70")=F70 ; 59 I $L($G(%S3)) X %S3 ; YZ K %S1,%S2 Q ; B(T) ; Begin printen B 0 I '$G(T) S T=3 ; $D(F60)&$D(F1) : dit is nodig, want vanuit VB bestaan deze variabelen niet I '$G(QW),$D(F60)&$D(F1) S FP=2201+F60 W @F,@F1,$P($T(@("T"_T_QT)),U,2) I $G(QW) D . I $ZV["MSM" D .. D X^cA612 W /CUP(22,1),@F1,$P($T(@("T"_T_QT)),U,2) .. I QP,F71'[" D W^cA612" S F71=F71_" W /CUP(22,1),/ED(0) D W^cA612 S F71=$P(F71,"" D W^cA612"")" . I $ZV'["MSM" D .. D O^cA612(22,1,3,80,0,0,0,0) W /CUP(1,1),@F1,$P($T(@("T"_T_QT)),U,2) .. I QP,F71'[" D C^cA612" S F71=F71_" D C^cA612 S F71=$P(F71,"" D C^cA612"")" BA B 1 BZ Q ; BE I $L($G(^cLOG(boot,"TERMINAL",$I))) X ^($I) BEZ Q ; BF70(PRINTID,JOB,IPPORT) ; Opzetten F70 en F71 voor Printer met UI1 PRINTID ; JOB = 1 : vanuit een Job-programma ; IPPORT = IP-port indien locale printer vanuit VB N B,INIT,I S $ZT="TRAP^cAN000" S K=PRINTID S B(1)=$$SIGN^cAFA1("SYS.PRINT",K,0) ; indien locale printer via VB : Ip-poort invullen I PRINTID'<900000,$L($G(IPPORT)) S $P(B(1),D,8)=IPPORT K PTS S (%S99,PTS(1))=K,E=0,FAX=0 ; driver + bladspiegel S %S1=$P(B(1),D,4),%LNMAX=$P(B(1),D,5),PTS=$P(B(1),D,9),INIT=1 I $L($P(B(1),D,13)) G BF70B ; locale printer ; ; centrale printers ; poortnr. BF70A S K=$P(B(1),D,3) ; dummy printer I K="$P" D G BF70C . S PTS(2)=1 . S F70="W:$L($G(F11))&$L($G(F1)) @F11,@F1 W !! D ^cA611,X^cA612 S LNMAX=50,FAX=0,F71=""W !!! H 2 D ^cA606,W^cA612,E^cAN322 K FAX""" . S INIT=0 ; printers I $P(B(1),D,9)="" D G BF70Z:E,BF70C . S $ZT="ERROR^"_$T(+0) . ; Mumps-printer . I $P(B(1),D,6)=1 D Q .. ; indien Caché .. I $ZV'["MSM" D Q ... S K=$TR(K,"/","\") ... O "|PRN|"_K::2 E D E1 Q ... C "|PRN|"_K ... I $ZV'[" 5.0.21" S F70="O ""|PRN|"_K_""" U ""|PRN|"_K_""":0",F71="H 1 C ""|PRN|"_K_"""" ... E S F70="O ""|PRN|"_K_""":(/DOCNAME=""Printjob on "_$ZU(110)_" from "_QU_""") U ""|PRN|"_K_""":0",F71="H 1 C ""|PRN|"_K_"""" .. ; Indien MSM .. O K::2 E D E1 Q .. C K .. S F70="O "_K_" U "_K_":0",F71="C "_K . ; Lat-printer . I $P(B(1),D,6)=2 D Q .. O K::2 E D E1 Q .. C K .. S F70="O "_K_" U "_K_":0",F71="H 2 C "_K . ; LPD-printing . I $P(B(1),D,6)=3 D U 0 Q .. S IPA=$P(B(1),D,7),IPP=$P(B(1),D,8) .. ; indien Caché .. I $ZV'["MSM" D Q ... C "|TCP|4" O "|TCP|4":(IPA:IPP):1 E D E1 Q ... U "|TCP|4" S ZC=$ZA I ZC=2!(ZC=4)!(ZC=256) C "|TCP|4" U $P D E1 Q ... C "|TCP|4" ... S F70="O ""|TCP|4"":("""_IPA_""":"_IPP_":""CS"") U ""|TCP|4""",F71="H 1 C ""|TCP|4""" .. ; Indien MSM .. C 56 O 56::2 E D E1 Q .. U 56:(:1+32):"TCP" W /SOCKET(IPA,IPP) S ZC=$ZC I ZC C 56 U $P D E1 Q .. C 56 .. S F70="C 56 O 56 U 56:(:1+32):""TCP"" W /SOCKET("""_IPA_""","""_IPP_""")",F71="H 1 C 56" . ; printerbestand . I $P(B(1),D,6)=4 D Q .. S K=$P(B(1),D,3),K=$TR(K,"/","\") .. ; indien Caché .. I $ZV'["MSM" D Q ... O K:"WNS":2 E D E1 Q ... C K ... S F70="O """_K_""":""WNS"" U """_K_"""",F71="C """_K_"""" .. ; indien MSM .. I $ZV["MSM" D Q ... O 53:(K:"W"):2 E D E1 Q ... C 53 ... S F70="O 53(:"""_K_"""):""W"") U 53:("""_K_""")",F71="H 1 C 53:("""_K_""")" ; schermen I $P(B(1),D,9)=1 D G BF70Z:E,BF70C . S F70="D ^cA611,B^cA612:$G(QW) W:$G(QW) /WWR(1) S F71=""D ^cA606,C^cA612:$G(QW),E^cAN322""" ; faxen I $P(B(1),D,9)=2 D G BF70Z:E,BF70Z . N %S3 . I $$SIG^cAFA1("SYS.SCR",K,101)'="AA" S E=1 Q . S FAX=K D ^cA3220 I K="-" S E=1 Q . S F70="D B^cAN322(6) "_F70,F71=F71_" D E^cAN322" ; bestanden I $P(B(1),D,9)=3 D G BF70Z:E,BF70C . S F70="",F71="D E^cAN322" . D PRINT^cA701 I K="-" S E=1 Q ; Naar bestand via reflection I $P(B(1),D,9)=4 D G BF70Z:E,BF70C . S %S2=$P($G(^cLOG(boot,"DEV",io)," V"),D) I $G(QW) S %S2="ZW" I $ZV'["MSM" S %S2="ZC" . S F70="F70",F71="F71" . S F70=$$SIGN^cAFA1("DEV.VID",%S2,F70),F71=^(F71) . S F70="D B^cAN322(3) S PTS(""PR2FON"")=$$PR2FON^cANR11() "_F70 . S F71=F71_" S PTS(""PR2FOFF"")=$$PR2FOFF^cANR11()" . I '$L($P(B(1),D,24)),'$L($P(B(1),D,25)) S PTS="" ; indien geen xecutes -> beschouwen als gewone printer . I PTS S F71=F71_" D E^cAN322" ; PDF bestand I $P(B(1),D,9)=6 D G E:E,BF70C . S K=$$INFO^cQ14,K=$TR(K,"/","\"),PTS="" K F71("PDF") . ; indien Caché . I $ZV'["MSM" D I E Q .. O K:"WNS":2 E D E1 Q .. C K .. S F70="O """_K_""":""WNS"" U """_K_"""",F71="C """_K_"""" . ; indien MSM . I $ZV["MSM" D I E Q .. O 53:(K:"W"):2 E D E1 Q .. C 53 .. S F70="O 53(:"""_K_"""):""W"") U 53:("""_K_""")",F71="H 1 C 53:("""_K_""")" . ; vraag bestand . S F71=F71_" S ER=$$JW^cA710("""_$E($$INFO^cQ14)_":\DataM\Batch\pcl2pdf.exe -S -A4 """""_K_""""" """"" . S K=$$PDF() I K="-" S E=3 Q . S F71=F71_K_""""""")",F71("PDF")=K ; later printen I $P(B(1),D,9)=8 S (PTS,K)="." G BF70Z G BF70C ; ; printers aan het scherm ; driver scherm BF70B S %S2=$$SIG^cAFA1("SYS.SCR",$P(B(1),D,3),101) I $ZV'["MSM" S %S2="ZC" S F70="F70",F71="F71" ; aansluiting S K=$P(B(1),D,13)-1 I K<1 S K="" S F70=F70_K,F71=F71_K S F70=$$SIGN^cAFA1("DEV.VID",%S2,F70),F71=^(F71) ; BF70C ; aanvullen F70 en F71 I '$L($P(B(1),D,9)),'$L($P(B(1),D,13)) D . I '$G(QU(1)) Q . S UI1CP=$$UI1^cAFA1("SYS.CP",101,$P(B(1),D)) . I '$D(^DATA(0,"USR_SYS.CP",QU(1)_" "_UI1CP,0)) Q . S $P(^(0),D,4)=$H S K=$P(B(1),D,24) I $L(K) S F70=F70_" "_K ; xecute na initialisatie S EXT="" F I=41,43,44 S K=$P(B(1),D,I) I $L(K) S EXT=EXT_" W "_K S K=$P(B(1),D,42) I $L(K) S K=$P($$SIGN^cAFA1("CODE.1015",K,0),D,3) I $L(K) S EXT=EXT_" W "_K S F70R=+$P(B(1),D,45) I 'F70R S F70R=100 I %LNMAX S F70=F70_" S %LNMAX="_%LNMAX K %LNMAX S F70=F70_" S %S1="_$S($D(%S3):""""_%S1_"""",1:%S99) I 'PTS,INIT S F70=F70_" D ^cA605" I $L(EXT) S F70=F70_" S F80=F80_"""_$$DQ(EXT)_"""" S F71=F71 I 'PTS,INIT S F70="D B^cAN322(3) "_F70_" D BE^cAN322",F71=F71_" K F70R D E^cAN322" S K=$P(B(1),D,25) I $L(K) S F71=F71_" "_K ; xecute bij afsluiten printer I PTS=4 S F71=F71_" K PTS,NOSEP S PTS=4,PTS(4)=""""" BF70Z Q ; E ; einde printen D ^cA606 I $G(QP) S F70="D ^cA322",F71="D:'$D(F) ^cA606" K PTS(2) B 0 Q ; E1 S K=$P(B(1),D)_"-"_$P(B(1),D,$G(QTU,1)*10-8)_$P($T(@("T4"_QT)),U,2) D F1 S E=1 Q ; E2 S K=$P(B(1),D)_"-"_$P(B(1),D,$G(QTU,1)*10-8)_$P($T(@("T4"_QT)),U,3) D F1 S E=2 Q ; ERROR I $ZE[""!($ZE["") D E2 Q S E=9 Q ; F1 N R S R=250 F2 I '$G(JOB) D TXT^cAFA1(R) FZ K R Q ; KR0(FLT) ; N UQC,USC,UREF,UI1,B,S1,C,I1,I,L,RR S K="-",FLT=$G(FLT) D DMS^cAN000("UQC","USC","SYS.PRINT") I '$L(UQC)!'$L(USC) G KR0Z S IREF=^DMC(UQC,USC,"DATA","INDEX") S I1="" K L F S I1=$O(@IREF@(101,I1)) Q:I1="" D . S UI1=^(I1),B(1)=$$SIGN^cAFA1("SYS.PRINT",UI1,0) . I $P(B(1),D,30) Q . S S1=1 I $L(FLT) X FLT S S1=$T . I 'S1 Q . S RR($P(B(1),D))=UI1_D_$P(B(1),D,QTU*10-8) . I $P(B(1),D,13) S L(1)=$G(L(1))_$P(B(1),D)_D . E S L(2)=$G(L(2))_$P(B(1),D)_D S (I,C)="" F i=1,2 F Q:'$L($G(L(i))) D . N K . S K=$P(L(i),D)_"[] = "_$P(RR($P(L(i),D)),D,2) . I (I>0*2+I+$L(K))>78 S C=C_""",!?2,""",I=0 . S C=C_$S(I>0:" ",1:"")_K,I=I>0*2+I+$L(K) . S L(i)=$P(L(i),D,2,$L(L(i),D)) S R="K\22\3\"_$P($T(@("T5"_QT)),U,2)_"\"""_C_"""\6\\$S(K=""-"":1,'$L(K):0,1:$D(RR(K)))",$P(R,D,11)=1 D R0 I K="-" G KR0Z S K=$P(RR(K),D) KR0Z Q K ; PDF() N B,K,KR PDFA S K=$$^cANSYN("SYS.LOC") I K="-" S B="-" G PDFZ S B=$$SIG^cAFA1("SYS.LOC",K,104) I $L(B),$E(B,$L(B))'="/" S B=B_"/" S R="KR\22\3\"_$P($T(@("T7"_QT)),U,2)_"\30\\$L(K)\\\\\1" D R0 I K="-" G PDFA S B=$TR(B,"/","\")_KR_".pdf" PDFZ Q B ; R0 S $P(R,D,12)=$T(+0) D ^cAN1000 Q ; v12 23.01.95 ; DQ(X) ;Double quotes in string N Y S Y=0 F S Y=$F(X,"""",Y) Q:'Y S X=$E(X,0,Y-1)_""""_$E(X,Y,$L(X)),Y=Y+1 DQZ Q X ; ZZ ; 22.06.04 - 16 u 32 * V8