cAN325(QU,CPLP,DEV,WDRIVER,IPADR,IPPORT) ;Opbouw %PRINT voor een gebruiker ;%AN325 [ 02/07/02 10:10 AM ] ; ; QU = initialen ; DEV = poortnummer ($$IO^cQ5) (niet verplicht) ; CPLP = 1 : enkel centrale printers ; CPLP = 2 : enkel locale printers ; ; WDRIVER : windows-driver : meegegeven indien opgeroepen vanuit VB (zie BPRINT^dmTOOL) ; IPADR : IP-adres client "" ; IPPORT : IP-port client "" ; 1 N OK,UI1,UQC,USC,UQCUCP,USCUCP,UQCCP,USCCP,UQCLP,USCLP,UI1USR,UREF,IREF,UREFUCP,UREFCP,UREFLP,IREFLP,UFU,SW3,SW2,I,A,B,UI1P,EIGC,UCI S $ZT="TRAP^cAN000" I $ZV["MSM" S UCI=$ZU(5) I $P(UCI,",")'="TST" D IN^cQMSMSW("TST") S OK=0 I $L($G(^DPAR(0,"PAR","%PRINT",0))) X ^(0) G YZ:OK=1 ; 11 D DMS^cAN000("UQC","USC","SYS.PRINT",1) I '$L(UQC)!'$L(USC) G YZ D DMS^cAN000("UQCUCP","USCUCP","USR_SYS.CP",1) I '$L(UQCUCP)!'$L(USCUCP) G YZ D DMS^cAN000("UQCULP","USCULP","USR_SYS.LP",1) I '$L(UQCULP)!'$L(USCULP) G YZ D DMS^cAN000("UQCCP","USCCP","SYS.CP",1) I '$L(UQCCP)!'$L(USCCP) G YZ D DMS^cAN000("UQCLP","USCLP","SYS.LP",1) I '$L(UQCLP)!'$L(USCLP) G YZ ; ; verwijderen ^cPRINT(boot,$j) en ^cIPRINT(boot,$J) 2 S UREF=^DMC(UQC,USC,"DATA","REF"),IREF=^("INDEX") I '$G(CPLP) K @($P(UREF,",UI1")_")"),@IREF G 21 I $G(CPLP) D . S UFU="V",(SW3,SW2)=1 . N UI1 S UI1="" . F S UI1=$O(@UREF) Q:UI1="" I $S(CPLP=1:'$L($P(@UREF@(0),D,13)),CPLP=2:$L($P(@UREF@(0),D,13)),1:0) D .. S (A(1),B(1))=@UREF@(0) .. D B^cAN000(130,2) ; set niveau = 2 .. D U^cAN000,K^cAN000 ; effectief verwijderen ; ; ophalen intern nr gebruiker 21 S UI1USR="" I $G(QU)?1.UN S UI1USR=$$UR^cAFA1("USR",101,QU) S UREFUCP=^DMC(UQCUCP,USCUCP,"DATA","REF") S UREFUCP=$P(UREFUCP,",UI1")_",UI1UCP"_$P(UREFUCP,",UI1",2,99) S UREFULP=^DMC(UQCULP,USCULP,"DATA","REF") S UREFULP=$P(UREFULP,",UI1")_",UI1ULP"_$P(UREFULP,",UI1",2,99) S UREFCP=^DMC(UQCCP,USCCP,"DATA","REF") S UREFCP=$P(UREFCP,",UI1")_",UI1P"_$P(UREFCP,",UI1",2,99) S UREFLP=^DMC(UQCLP,USCLP,"DATA","REF"),IREFLP=^("INDEX") S UREFLP=$P(UREFLP,",UI1")_",UI1P"_$P(UREFLP,",UI1",2,99) ; 3 S UFU="O",(SW3,SW2)=1 ; 4 ; centrale printers per gebruiker S UI1="",UI1=$O(@UREF,-1) S:'UI1 UI1=1000 I $G(CPLP)=2!'$L(UI1USR) G 5 S UI1UCP=UI1USR_" " F S UI1UCP=$O(@UREFUCP) Q:$P(UI1UCP," ")'=UI1USR!'$L(UI1UCP) D . I $P(@UREFUCP@(0),D,30) Q . S UI1P=$P(@UREFUCP@(0),D,2),EIGC=$P(^(0),D,3) . S B(1)=$G(@UREFCP@(0)) I '$L(B(1)) Q . I $P(B(1),D,30) Q . I $L($P(B(1),D,9)) Q . S $P(B(1),D,11)=EIGC . S UI1=UI1P . D U^cAN000 ; 5 ; locale printers (per poort) I $G(CPLP)=1 G 6 I '$G(DEV) S DEV=$$IO^cQ5 S I=DEV_" " F S I=$O(@IREFLP@(103,I)) Q:$P(I," ")'=DEV D . S UI1P=$P(@IREFLP@(103,I),D) . S B(1)=$G(@UREFLP@(0)) I '$L(B(1)) Q . I $P(B(1),D,30) Q . S EIGC=$P(B(1),D,11) . S UI1ULP=UI1USR_" "_UI1P . I $D(@UREFULP@(0)) S EIGC=$P(^(0),D,3) . S $P(B(1),D,11)=EIGC . S UI1=500000+UI1P . D U^cAN000 I $G(CPLP) G YZ ; 6 ; spec. centrale printers S UI1P="" F S UI1P=$O(@UREFCP) Q:'$L(UI1P) D . S B(1)=$G(@UREFCP@(0)) I '$L(B(1)) Q . I $P(B(1),D,30) Q . I '$L($P(B(1),D,9)) Q . S EIGC=$P(B(1),D,11) . I '$L(EIGC) S EIGC=$P(B(1),D) . S $P(B(1),D,11)=EIGC . S UI1=UI1P . D U^cAN000 ; 7 ; eventueel opzetten 'dummy' centrale printers voor loc. printer via VB I $L($G(WDRIVER)) D WLOCP(WDRIVER,$G(IPADR),$G(IPPORT)) ; YZ I $L($G(^DPAR(0,"PAR","%PRINT",1))) X ^(1) I $ZV["MSM" I $D(UCI),$P(UCI,",")'="TST" D IN^cQMSMSW($P(UCI,",")) Q ; WLOCP(WDRIVER,IPADR,IPPORT) ; opbouw dummy centrale printers voor lokale printers in windows ; WDRIVER = windowsdriver van de printer ; IPADR = IP-adres ; IPPORT = IP-Port (niet verplicht) N I1,EMU,UI1,A,UI1EMU,tel,j,i,DRIV,B,UI1 S $ZT="TRAP^cAN000" S I1=$$DI^cAN000(WDRIVER,"") ; ophalen gegevens windows-driver + emulatie F S I1=$O(^INDEX(0,"PRT.DRV",103,I1)) Q:I1="" D I $D(EMU) Q . S UI1=^(I1) . S A=$G(^DATA(0,"PRT.DRV",UI1,0)) . I '$L(A) Q . I $P(A,D,30) Q ; BG of verwijderd . S UI1EMU=$P(A,D,4) . S EMU(1)=$G(^DATA(0,"PRT.EMU",UI1EMU,0)) . I '$L($G(EMU(1))) K EMU Q . I $P(EMU(1),D,30) K EMU Q ; BG of verwijderd . F i=1:1:6 I $D(^(i)) S EMU(i+1)=^(i) I $D(EMU) G WLOCPA ; ophalen default I $D(^DATA(0,"PRT.EMU",9999,0)) F i=1:1:6 I $D(^(i)) S EMU(i+1)=^(i) I $D(EMU) G WLOCPA ; aanmaken default S EMU(1)="PCL\" f i=2,12,22,32 S $P(EMU(1),D,i)="PCL" S EMU(2)="P1\P2",$P(EMU(2),D,11,12)="Pln1\Plc1" S EMU(3)="",EMU(4)="" WLOCPA S tel=0,UI1=900000 F j=2:1:7 I $D(EMU(j)) F i=1:1:20 I $L($P(EMU(j),D,i)) D . S DRIV=$P(EMU(j),D,i) . S $P(B(1),D)="0"_tel,tel=tel+1 ; code . S $P(B(1),D,2)=$$DESCR(j*100+i,"N") ; omschrijving N . S $P(B(1),D,3)="" ; poort . S $P(B(1),D,4)=DRIV ; Caché driver . S $P(B(1),D,5)=i<11*20+50 ; bladsprong . S $P(B(1),D,6)=3 ; type = LPD . S $P(B(1),D,7)=$G(IPADR) ; IP-adres . S $P(B(1),D,8)=$G(IPPORT) ; IP-port . S $P(B(1),D,9)="" ; printer . S $P(B(1),D,11)=$P(B(1),D) ; eigen code . S $P(B(1),D,13)="" ; centrale printer . S $P(B(1),D,12)=$$DESCR(j*100+i,"F") ; omschrijving F . S $P(B(1),D,22)=$$DESCR(j*100+i,"D") ; omschrijving D . S $P(B(1),D,32)=$$DESCR(j*100+i,"E") ; omschrijving E . S UI1=UI1+1 . D U^cAN000 WLOCPZ Q ; DESCR(R,TL) ; ophalen description uit ^DATA(0,"PRT.DESCR" ; R = B-index van de driver ; TL = taalcode : N,F,D,E N i S i=$P($G(^DATA(0,"PRT.DESCR",0,R\100-1)),D,R#100) S R=$P(i,"#",$S($L(TL):$F("FDE",TL),1:1)) I '$L(R) S R=$P(i,"#") DESCRZ Q R ; ZZ ; 18.05.04 - 15 u 48 * V8