cAN000 ;Standaardfuncties ;%AN000 ; [ 01/04/01 7:59 AM ] ; T0 ;Standaardfuncties ; T1 ;Pag. ; T2 ;U heeft geen licentie voor dit bestand : ; T3 ;Verwijderd~Annulé~Annuliert~Deleted; T4 ;Opening~Création~Kreation~Creation; ; T0F ;Fonctions standardisés ; T1F ;Page ; T2F ;Vous n'avez pas de license pour ce fichier : ; T3F ;Verwijderd~Annulé~Annuliert~Deleted; T4F ;Opening~Création~Kreation~Creation; ; T0E ;Standard functions ; T1E ;Page ; T2E ;You have no license for this file : ; T3E ;Verwijderd~Annulé~Annuliert~Removed; T4E ;Opening~Création~Kreation~Creation; ; ; set B() B(U7,K) I U7>100,U7<(SW3+1*100) S $P(B(U7\100),D,U7#100)=K D . S $P(B(1),D,28)=$H,$P(B(1),D,29)=$G(QU) ; std. log . I UFU="W" S $P(ULOG(U7),D)=$TR(U2(1),D,"~"),ULOG(128)="" ; uitgebr. BZ Q ; ; set B() vanuit andere rubriek met correcte Logging (zelfde pagina) BL(U7,K) I UFU="W",$G(U2(16))'=U7 N U1,U2 D . S U1="" F S U1=$O(C(U1)) Q:U1="" D M(U1) I U2(16)=U7 Q I $G(U2(16))=U7!(UFU="O") D B(U7,K),S3^cAN2201(K):UFU="W" BLZ Q ; ; conversie Data voor Indexbestand DI(R,NR) I R?2N1"."2N1"."2N S R=$$DC^cAFA1(R) DIA I R'?.N S R=$$UC^cAFA1(R) DIB I R?.E1P.E S R=$$DP^cAFA1(R) DIZ Q R_" "_NR ; ; Merge rubriek M(R) N S1 MA K U2 S U2(1)=^DMA(UQA,USA,SW2,C(R),1) F S1=2:1:25 S U2(S1)=$G(^(S1)) MZ Q ; ; opladen pagina S1(R) N S1,S2 S1A W /WSCROFF,/CUP($P(UTIT,D,2)+1,1),/WCMD S1B I SW4>1 W /CUP(1,$P(QW(QW),D,4)-11),$P($T(@("T1"_QT)),U,2),R,"/",SW4,/WCML S1C S S1=0 F S2=1:1 S S1=$O(^DMA(UQA,USA,R,S1)) Q:S1="" S C(S2)=S1 S1Z Q ; ; tonen nummer + omschrijving rubriek S2(R) D M(R) S2A I SW5,U2(22) W /CUP(U2(2),U2(3)),$J(R,2) S2B I SW5,U2(23) W /CUP(U2(2),U2(3)+3),/SGR(4),$P(U2(1),D,QTU),/SGR(0),/CUP(U2(2),U2(6)-2),":" S2C W /CUP(U2(2),U2(6)),$J("",U2(13)) S2Z Q ; ; tonen output S3(U3) I $L(U2(8)) X U2(8) S3A W /CUP(U2(2),U2(6)),$E(U3_$J("",U2(13)),1,U2(13)) S3B I $G(U7),$D(ULOG(U7)) S $P(ULOG(U7),D,3)=$E(U3,1,U2(13)) D . N K,U3 S (K,U3)=$P(A(U7\100),D,U7#100) I $L(U2(8)) X U2(8) . S $P(ULOG(U7),D,2)=$E(U3,1,U2(13)) S3Z Q ; ; licentie/synoniemen DMS(UQ,US,Q1,NOM) N R DMSA S R="" I $L(Q),$L(Q1) S R=$G(^DMS(Q,Q1)) I $L(R),$P($G(^(Q1,0)),D,30) S R=D I '$L(R),$L(Q1) S R=$G(^DMS(0,Q1)) I $L(R),$P($G(^(Q1,0)),D,30) S R=D DMSB S @UQ=$P(R,D),@US=$P(R,D,2) DMSC I @UQ=""!(@US=""),'$G(NOM) D ER($P($T(@("T2"_QT)),U,2)_Q1) DMSZ Q ; ; opbouw Logger met Data LD(R,REF,DATA) I $G(NOLOGTAB) Q LDA S LOG($$LOG)=R_" "_REF I R="S" D . I DATA["""" S DATA=$$DBLQ^cAFA1(DATA) . S LOG(LOG)=LOG(LOG)_"="""_DATA_"""" LDZ Q ; ; volgnummer logger LOG() S LOG=$O(LOG(""),-1)+1 LOGZ Q LOG ; ; Nieuw nummeR + index1 NR() N LOGTAB,Q2,S1,S2,UI1,UREF,X,Y NRA S LOGTAB=$G(^DMC(UQC,USC,"LOGTAB")) I $L(LOGTAB) S LOGTAB=$NA(@LOGTAB) NRB S S1=^DMC(UQC,USC,"DATA"),S2=^("DIN"),UREF=^("DATA","REF"),(X,Y)="" NRC I S1=1 D . S Q2=^("OUD"),UI1=$P(B(1),D) I $L(UI1),$D(@Q2@(UI1)) S UI1="" . I UI1="" F D Q:'$D(@Q2@(UI1)) .. L +@S2 S UI1=$G(@S2,1000),@S2=UI1+1,X=$ZR,Y=UI1+1 L -@S2 . S $P(B(1),D)=UI1,UI1=$$DI($P(B(1),D,2),UI1) NRD I S1=2 D . S UI1=$P(B(1),D)_" " NRE I S1=3!(S1=4) D . F D Q:'$D(@UREF) .. L +@S2 S UI1=$G(@S2,1000),@S2=UI1+1,X=$ZR,Y=UI1+1 L -@S2 NRF I S1=5 X S2 NRG I $L(X),$L(LOGTAB) D LD("S",X,Y) NRZ Q UI1 ; ; Indexen killen / setten I(R) S S4=0 F S S4=$O(^DMC(UQC,USC,"INDEX",S4)) Q:S4="" D . S S0=^(S4),S2=$P(S0,D),S0=$P(S0,D,2) . I $P(UFU,D)="I"!($P(UFU,D)="C"),$P(UFU,D,2),S2'=$P(UFU,D,2) Q . I R="K" S S3=$P(A(S2\100),D,S2#100) D .. D I2 .. I $L(S3) K @IREF@(S2,$$DI(S3,S5)) I $L(LOGTAB) D LD("K",$ZR) . I R="S" S S3=$P(B(S2\100),D,S2#100) D .. D I2 .. I $L(S3) S @IREF@(S2,$$DI(S3,S5))=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) . I R="C" S S3=$P(B(S2\100),D,S2#100) D .. D I2 .. I $L(S3) S S9=$$DI(S3,S5) I $G(@IREF@(S2,S9))'=UI1 S @LOG@(UI1,S2)=S9_D_$G(@IREF@(S2,S9)) ; VJ-17.08.00 S S4=0 F S S4=$O(^DMC(UQC,USC,"INDEX2",S4)) Q:S4="" D . S S0=^(S4),S2=$P(S0,D),S0=$P(S0,D,2) . I $P(UFU,D)="I"!($P(UFU,D)="C"),$P(UFU,D,2),S2'=$P(UFU,D,2) Q . I R="K" S S3=$P(A(S2\100),D,S2#100) D .. D I2 I $L(S3) S S3=$P($$DI(S3,S5)," ") D I2 .. I $L(S3) K @IREF2@(S2,S3,S5) I $L(LOGTAB) D LD("K",$ZR) . I R="S" S S3=$P(B(S2\100),D,S2#100) D .. D I2 I $L(S3) S S3=$P($$DI(S3,S5)," ") D I2 .. I $L(S3) S @IREF2@(S2,S3,S5)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) . I R="C" S S3=$P(B(S2\100),D,S2#100) D .. D I2 I $L(S3) S S3=$P($$DI(S3,S5)," ") D I2 .. I $L(S3) I $G(@IREF2@(S2,S3,S5))'=UI1 S @LOG@(UI1,S2_"/2")=S3_D_$G(@IREF2@(S2,S3,S5)) ; indien barcodes D IBAR(R) IZ Q ; ; lege string omzetten naar "0" of " " I2 I S0,S3="" S S3=$TR(S0,"12","0 ") Q I3 I S0,S6="" S S6=$TR(S0,"12","0 ") Q ; IBAR(R) ; opzetten indexen barcodes I '$L($G(^DMC(UQC,USC,"DATA","BAR"))) G IBARZ S S4=^DMC(UQC,USC,"DATA","BAR"),S8="BAR" F S7=1:1:$L(S4,D) S S2=$P(S4,D,S7) I $L(S2) D . I $P(UFU,D)="I"!($P(UFU,D)="C"),$P(UFU,D,2),S2'=$P(UFU,D,2) Q . I R="K" S S3=$P(A(S2\100),D,S2#100) I $L(S3) D .. K @IREF@(S8,$$DI(S3,S5)) I $L(LOGTAB) D LD("K",$ZR) .. I $L(IREF2) S S3=$P(S3," ") I $L(S3) K @IREF2@(S8,S3,S5) I $L(LOGTAB) D LD("K",$ZR) . I R="S" S S3=$P(B(S2\100),D,S2#100) I $L(S3) D .. S @IREF@(S8,$$DI(S3,S5))=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) .. I $L(IREF2) S S3=$P(S3," ") I $L(S3) S @IREF2@(S8,S3,S5)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) . I R="C" S S3=$P(B(S2\100),D,S2#100) I $L(S3) D .. S S9=$$DI(S3,S5) I $G(@IREF@(S8,S9))'=UI1 S @LOG@(UI1,S8)=S9_D_$G(@IREF@(S8,S9)) .. I $L(IREF2) S S9=$P(S9," ") I $L(S9) I $G(@IREF2@(S8,S9,S5))'=UI1 S @LOG@(UI1,S8_"/2")=S9_D_$G(@IREF2@(S8,S9,S5)) IBARZ Q ; ; MULTI Indexen killen / setten ; opm : alle gebruikte velden dienen data te bevatten IM(R) N BI,I,M,M4,MAX,MI,MID,MW,MREF S $ZT="TRAP^cAN000" IMA S M4=0 F S M4=$O(^DMC(UQC,USC,"MULTI",M4)) Q:M4="" D . K MI M MI=^(M4) S MAX=$O(MI(""),-1),MW=0 . I "K"[R D ; verwijderen .. I UFU="W" S MW=1 F I=1:1:MAX I $D(ULOG(MI(I))) S MW=0 .. I MW Q .. K MID S M=1 F I=1:1:MAX D I MID(I)="" S M=0 Q ... S BI=MI(I),MID(I)=$P($$DI($P(A(BI\100),D,BI#100),"")," ") .. I M D ... S MID(MAX)=MID(MAX)_" "_UI1,MREF=$NA(@IREF@(M4)) F I=1:1:MAX S MREF=$NA(@MREF@(MID(I))) ... K @MREF I $L(LOGTAB) D LD("K",$ZR) . I "SC"[R D ; opbouwen .. I MW Q .. I $P(UFU,D)="I"!($P(UFU,D)="C"),$P(UFU,D,2) S M=1 D I M Q ... F I=1:1:MAX S BI=MI(I) I BI=$P(UFU,D,2) S M=0 .. K MID S M=1 F I=1:1:MAX D I MID(I)="" S M=0 Q ... S BI=MI(I),MID(I)=$P($$DI($P(B(BI\100),D,BI#100),"")," ") .. I M D ... S MID(MAX)=MID(MAX)_" "_UI1,MREF=$NA(@IREF@(M4)) F I=1:1:MAX S MREF=$NA(@MREF@(MID(I))) ... I "S"[R S @MREF=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) Q ... I R="C",$G(@MREF)'=UI1 S @LOG@(UI1,M4)=$P($P(MREF,","""_M4_""",",2,99),")")_D_$G(@MREF) IMZ Q ; ; Update data op schijf U N IREF,IREF2,UREF,LOGREF,LOGTAB,Q2,S0,S1,S2,S3,S4,S5,S6,S7,S8,S9 S $ZT="TRAP^cAN000" UA S @%Q1=0,LOGREF=$G(^DMC(UQC,USC,"LOGGING")),LOGTAB=$G(^("LOGTAB")) I $L(LOGTAB) S LOGTAB=$NA(@LOGTAB) UB S S1=^DMC(UQC,USC,"DATA"),IREF=^("DATA","INDEX"),IREF2=$G(^("INDEX2")) S UREF=^("REF"),Q2=$G(^("OUD")),S5=$S(S1<3:$P(B(1),D),1:UI1) UC I $P(UFU,D)="I" D ; controle indexen . I $P(B(1),D,30)=2 Q . I S1<5 D I("S"),IM("S") . I S1=1,'$D(@Q2@(S5)) S @Q2@(S5)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) . I S1=2 S S3=$P(B(1),D,2) I $L(S3) S @Q2@($$DI(S3,UI1))=S3 I $L(LOGTAB) D LD("S",$ZR,S3) I $P(UFU,D)="C" D ; contr.integriteit . I $P(B(1),D,30)=2 Q . I S1<5 D I("C"),IM("C") . I S1=1,$G(@Q2@(S5))'=UI1 S @LOG@(UI1,$TR($P(Q2,"_Q_",2),""")"))=S5_D_$G(@Q2@(S5)) . I S1=2 S S3=$P(B(1),D,2) I $L(S3) S S9=$$DI(S3,UI1) I $G(@Q2@(S9))'=S3 S @LOG@(UI1,$TR($P(Q2,"_Q_",2),""")"))=S9_D_$G(@Q2@(S9)) UD I UFU="O" D ; openen (SW2=pagina) . I S1<5 F S4=1:1:SW3 S @UREF@(S4-1)=B(S4) I $L(LOGTAB) D LD("S",$ZR,B(S4)) . I S1=5 S @UREF=B(1) I $L(LOGTAB) D LD("S",$ZR,B(1)) . I S1<5 D I("K"):$D(A(SW3)),I("S"),IM("K"):$D(A(SW3)),IM("S") I S1<3,SW2=1 D .. I S1=1 S @Q2@(S5)=UI1,S4=UI1 .. I S1=2 S S3=$P(B(1),D,2) I $L(S3) S @Q2@($$DI(S3,UI1))=S3,S4=S3 .. I $L(LOGTAB) D LD("S",$ZR,S4) . I SW2=1,$L(LOGREF) S ULOG(1)=$P($T(@("T4"_QT)),U,2) D ULOG(UFU,1,"","") UE I UFU="W" D ; wijzigen via ULOG() . I S1<5 D .. S S2=0 F S S2=$O(ULOG(S2)) Q:S2="" D ... I $P(A(S2\100),D,S2#100)=$P(B(S2\100),D,S2#100) K ULOG(S2) .. I $O(ULOG(0))=128,$O(ULOG(128))="" K ULOG(128) .. S S2=0 F S S2=$O(ULOG(S2\100+1*100)) Q:S2="" D ... S @UREF@(S2\100-1)=B(S2\100) I $L(LOGTAB) D LD("S",$ZR,B(S2\100)) .. I S1=1,$D(ULOG(102)) S S3=$$DI($P(B(1),D,2),S5) I S3'=UI1 D ... S S2=$NA(@UREF,1) D M @S4=@S2 K @S2 .... N UI1 S UI1=S3 S S4=$NA(@UREF,1) ... I $L(LOGTAB) S LOG($$LOG)="M "_S4_"="_S2_" K "_S2 ... D IM("K") ... S UI1=S3 D I("S") S @Q2@(S5)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) .. S S4=0 F S S4=$O(^DMC(UQC,USC,"INDEX",S4)) Q:S4="" D ; indexen ... S S0=^(S4),S2=$P(S0,D),S0=$P(S0,D,2) I '$D(ULOG(S2)) Q ... S S3=$P(A(S2\100),D,S2#100) D I2 I $L(S3) S S3=$$DI(S3,S5) ... S S6=$P(B(S2\100),D,S2#100) D I3 I $L(S6) S S6=$$DI(S6,S5) ... I S3=S6 Q ... I $L(S3) K @IREF@(S2,S3) I $L(LOGTAB) D LD("K",$ZR) ... I $L(S6) S @IREF@(S2,S6)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) .. S S4=0 F S S4=$O(^DMC(UQC,USC,"INDEX2",S4)) Q:S4="" D ; 17.08.00 ... S S0=^(S4),S2=$P(S0,D),S0=$P(S0,D,2) I '$D(ULOG(S2)) Q ... S S3=$P(A(S2\100),D,S2#100) D I2 S S3=$P($$DI(S3,S5)," ") D I2 ... S S6=$P(B(S2\100),D,S2#100) D I3 S S6=$P($$DI(S6,S5)," ") D I3 ... I S3=S6 Q ... I $L(S3) K @IREF2@(S2,S3,S5) I $L(LOGTAB) D LD("K",$ZR) ... I $L(S6) S @IREF2@(S2,S6,S5)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) .. S S4=$G(^DMC(UQC,USC,"DATA","BAR")) I $L(S4) D ; barcodes ... F S7=1:1:$L(S4,D) S S2=$P(S4,D,S7) I $L(S2),$D(ULOG(S2)) D .... S S3=$P(A(S2\100),D,S2#100) I $L(S3) S S3=$$DI(S3,S5) .... S S6=$P(B(S2\100),D,S2#100) I $L(S6) S S6=$$DI(S6,S5) .... I S3=S6 Q .... I $L(S3) K @IREF@("BAR",S3) I $L(LOGTAB) D LD("K",$ZR) .... I $L(S6) S @IREF@("BAR",S6)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) .... I $L(IREF2) S S3=$P(S3," ") I $L(S3) K @IREF2@("BAR",S3,S5) I $L(LOGTAB) D LD("K",$ZR) .... I $L(IREF2) S S6=$P(S6," ") I $L(S6) S @IREF2@("BAR",S6,S5)=UI1 I $L(LOGTAB) D LD("S",$ZR,UI1) .. D IM("") . I S1=5 S @UREF=B(1) I $L(LOGTAB) D LD("S",$ZR,B(1)) . I $L(LOGREF) S S2=0 F S S2=$O(ULOG(S2)) Q:S2="" I S2'=128 D .. S S3=$P(A(S2\100),D,S2#100),S4=$P(B(S2\100),D,S2#100) .. D ULOG(UFU,S2,S3,S4) UF I UFU="V" D ; verwijderen (niv.2) . I S1<5 S @UREF@(0)=B(1) I $L(LOGTAB) D LD("S",$ZR,B(1)) . I S1=5 S @UREF=B(1) I $L(LOGTAB) D LD("S",$ZR,B(1)) . I S1<5 D I("K"),IM("K") . I S1=2 S S3=$P(B(1),D,2) I $L(S3) K @Q2@($$DI(S3,UI1)) I $L(LOGTAB) D LD("K",$ZR) . I $L(LOGREF) D .. S ULOG(130)=$P($T(@("T3"_QT)),U,2) .. D ULOG(UFU,130,$P(A(1),D,30),$P(B(1),D,30)) UG I $P(UFU,D)'="C",$L(LOGTAB) D OPB^cANLOG(LOGTAB) UZ S @%Q1=1,OK=1 K ULOG Q ; ; Uitgebreide Logging ULOG(UFU,BI,OW,NW) Q:BI=128!(BI=129) ULOGA N R,R0 S R0=DJ_DM_DD,R=$O(@LOGREF@(S5,R0+1),-1)+.0001 I R\1'=R0!(UFU="O") S R=R0+.0001 ULOGB S ^(R)=UFU_D_BI_D_$E(OW,1,80)_D_$E(NW,1,80)_D_DT_D_$$HT^cAFA1($H)_D_$G(QU)_D_$G(ULOG(BI)) ULOGC S $P(^(R),D,11)=boot I $L(LOGTAB) D LD("S",$ZR,^(R)) ULOGZ Q ; ; data lezen van schijf R N S1,S2,UREF S $ZT="TRAP^cAN000" RA S S1=^DMC(UQC,USC,"DATA"),UREF=^("DATA","REF") RB I S1<5 D . S B(1)=@UREF@(0) F S2=2:1:SW3 S B(S2)=$G(^(S2-1),$G(USL,D)) RC I S1=5 D . S B(1)=@UREF RZ Q ; ; Kill data K N UREF,LOGREF,LOGTAB,Q2,S1,S5 S $ZT="TRAP^cAN000" KA S LOGREF=$G(^DMC(UQC,USC,"LOGGING")),LOGTAB=$G(^("LOGTAB")) I $L(LOGTAB) S LOGTAB=$NA(@LOGTAB) KB S S1=^DMC(UQC,USC,"DATA"),UREF=^("DATA","REF"),Q2=$G(^("OUD")),S5=$S(S1<3:$P(B(1),D),1:UI1) KC S @%Q1=0 K @UREF I $L(LOGTAB) D LD("K",$ZR) KD I $L(LOGREF) K @LOGREF@(S5) I $L(LOGTAB) D LD("K",$ZR) KE I S1=1 K @Q2@(S5) I $L(LOGTAB) D LD("K",$ZR) KF I $L(LOGTAB) D OPB^cANLOG(LOGTAB) KZ S @%Q1=1,OK=1 Q ; ; tonen foutboodschap ER(M) S K=$P(M,"[] = ok")_$P(M,"[] = ok",2) D TXT^cAFA1(250) Q ; ; error Trap TRAP S %=$ZE,%ZR=$ZR,%UCI=$ZU(5) I $ZV'["MSM" S %ZTRAP="TRAP^"_$T(+0) TRAPA I $ZV["MSM",%'["",%'["",%'["",%'["",%'["" D ^cA400 TRAPB I $ZV'["MSM",%'["",%'["",%'["",%'["",%'["" D ^cA400 TRAPX I $ZV["MSM" ZQ TRAPY I $ZV'["MSM" ZQ 1 I $ZT'="" G @$ZT TRAPZ Q ; ZZ ; 05.02.01 - 16 u 23 * V7.84