cABVB11 ;Print-out logging in dotNET ;cABVB11 ; [ 04/01/07 14:00 PM ] ; T0 ;Print-out logging ; T1 ;'Tot datum' moet groter of gelijk zijn aan 'Van datum'.; ; T0F ;Impression logging ; T1F ;'Date finale' doit être plus grande ou égal à 'Date initiale'.; ; T0E ;Print-out logging ; T1E ;'Till Date' has to be greater than or equal to 'From Date'.; ; BTEMP(GRIDID,KLASSE,D1,D2,SW,KEUID) ; Input: GRIDID: GridId van ^mtemp99, indien "" wordt er een nieuw nr bepaald ; Klasse: Naam van de klasse ; D1: Van datum ; D2: Tot datum ; SW: Gegevens switch ; 0 = Alles ; 1 = Wijzigingen ; 2 = Creaties ; 3 = Verwijderingen ; KEUID: Ofwel: GridId van de ^mtemp99 met geselecteerde UI1's ; Ofwel: Geselecteerd ID (begint met $$) ; ; Output: 0\Foutboodschap ; of ; GRIDID S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,KLASSE,D1,D2,SW,KEUID") D QT^cAFVBO01 ; ; Ophalen GridId BTEMP1 I '$L($G(GRIDID)) S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID,"COMMON") S R=GRIDID I '$L($G(KEUID)) G BTEMPZ ; ; Gegevens ivm klasse ophalen BTEMP2 S DPID=$$KLASSE^cAFVBA02($G(KLASSE)) I '$L(DPID) G BTEMPZ S DP(1)=$$SIGN^cAFA1("DP",DPID,1) I '$L(DP(1)) G BTEMPZ S DMS=$P(DP(1),D) I '$L(DMS) G BTEMPZ D SK(DPID,.LSK) ; Definities ivm zoeksleutels ; ; Variabelen opzetten BTEMP3 D DMS^cAN000("UQC","USC",DMS) G BTEMPZ:UQC="",BTEMPZ:USC="",BTEMPZ:'$D(^DMC(UQC,USC,"LOGGING")) S DLOGREF=^("LOGGING"),UDD=^("DATA"),UOM=$P(^("TAAL",$E(QT_"N")),D,2),UREF=^DMC(UQC,USC,"DATA","REF") ; ; Controle parameters F i="D1","D2","SW","KEUID" S @i=$G(@i) I D1'?2N1"."2N1"."2N S D1=$$HD^cAFD1(D1) I D2'?2N1"."2N1"."2N S D2=$$HD^cAFD1(D2) S DD1=$$DC^cAFA1(D1),DD2=$$DC^cAFA1(D2)+.999999 I $E(KEUID,1,2)="$$" S UI1=$P(KEUID,"$$",2) G BTEMP42 I $P($G(^mtemp99(KEUID,"COMMON.PAR",0)),D) S KEUID="" ; Alle records ;I $L(KEUID),'$D(^mtemp99(KEUID,"COMMON")) S KEUID="" ; ; Logging aflopen BTEMP4 S UI1=0 BTEMP41 I $L(KEUID) S UI1=$O(^mtemp99(KEUID,"COMMON",UI1)) G:UI1="" BTEMPZ G BTEMP42 S UI1=$O(@DLOGREF@(UI1)) I UI1="" G BTEMPZ ; ; Zoeksleutels opzetten BTEMP42 S (i,c)=0,(KEY1,KEY2,KEY3,KEY4,KEY5,KEY6)="" F S i=$O(LSK(i)) Q:'$L(i) D . S c=c+1,SKUI1=UI1,r="" F S r=$O(LSK(i,"REF",r)) Q:'$L(r) D .. I $L(SKUI1) X "S SKUI1="_LSK(i,"REF",r) . S @("KEY"_c)=SKUI1 ; ; Detail logging S I3=DD1 BTEMP43 S I3=$O(@DLOGREF@(UI1,I3)) I I3=""!(I3>DD2) G BTEMP41 S B(1)=^(I3) ; ; Controles BTEMP45 I $P(B(1),D,14)=1 G BTEMP43 ; Niet tonen in logging I SW=1,($P(B(1),D)'="W") G BTEMP43 ; Enkel gewijzigde I SW=2,($P(B(1),D)'="O") G BTEMP43 ; Enkel geopende I SW=3,($P(B(1),D)'="V") G BTEMP43 ; Enkel verwijderde ; ; Temp-UI1 bepalen (gesorteerd volgens zoeksleutel 1 en datum) BTEMP46 I '$L($G(VNR)) S VNR=1000 S TUI1=$$DI^cAN000(KEY1,100000000.0000-I3)_UI1 ; ; Gegevens bepalen BTEMP47 S $P(LOG,D,1)=$G(KEY1) ; Zoeksleutel 1 S $P(LOG,D,2)=$G(KEY2) ; Zoeksleutel 2 S $P(LOG,D,3)=$P(B(1),D,5) ; Datum S $P(LOG,D,4)=$P(B(1),D,6) ; Tijd S $P(LOG,D,5)=$P(B(1),D,7) ; Initialen S $P(LOG,D,6)=$P($P(B(1),D,8),"~",QTU) ; Rubriek S $P(LOG,D,7)=$P(B(1),D,9) ; Oude waarde S $P(LOG,D,8)=$P(B(1),D,10) ; Nieuwe waarde S $P(LOG,D,10)=$G(KEY3) ; Zoeksleutel 3 S $P(LOG,D,11)=$G(KEY4) ; Zoeksleutel 4 S $P(LOG,D,12)=$G(KEY5) ; Zoeksleutel 5 S $P(LOG,D,13)=$G(KEY6) ; Zoeksleutel 6 ; ; Mtemp99-node opzetten BTEMP48 S ^mtemp99(GRIDID,"COMMON",TUI1,0)=LOG,VNR=VNR+1 ; BTEMP49 G BTEMP43 ; BTEMPZ Q R ; SK(DPID,LSK,NR,BSK,LINK) ; Zoeksleutels ; Input: DPID: Intern nummer klasse ; LSK: Tabel met zoeksleutels (initieel leeg) ; Doorgeven als referentie ; ; Volgende parameters worden enkel doorgegeven indien opgeroepen via ; SK zelf (recursie): ; NR: Zoeksleutelnummer ; BSK: Bron-tabel ; Doorgeven als referentie ; LINK: Gelinkt property-id ; ; Volgende tabel (LSK) wordt opgebouwd: ; ; LSK(x) = B-index zoeksleutel ; LSK(x,"REF",x)= UREF (bv: "$P(^DPR("EA","PR_LE.A",SKUI1,0),D,1)") ; LSK(x,"SHOW")= Prompt \ Breedte ; S $ZT="TRAP^cAN000" N UREF,L1,L2,DP,DMS,SK,TSK,BIND,N0,UI1,N2,UI1,REF ; ; Controle parameters SK1 I '$L($G(DPID)) G SKZ ; ; Opzoeken zoeksleutels SK2 S DP(1)=$$SIGN^cAFA1("DP",DPID,1) I '$L(DP(1)) G SKZ ; Geen einddefinitie S DMS=$P(DP(1),D) I '$L(DMS) G SKZ ; Geen DMS D SEARCHK^cAFVBI01(.SK,$P(DP(1),D,6),$P(DP(1),D,7),QTU) G:'$D(SK(1)) SKZ G:'$L(SK(1)) SKZ ; Geen zoeksleutels ; ; Prompt en breedte ophalen SK3 S KEYS=$$KEYINF(DPID,$G(LINK)) I $D(SK(1)),($P(KEYS,D,1,2)'=D) S SK(1,"SHOW")=$P(KEYS,D,1,2) I $D(SK(2)),($P(KEYS,D,3,4)'=D) S SK(2,"SHOW")=$P(KEYS,D,3,4) ; ; Referentie invullen SK4 S UREF=$$REPL^cAFA10($P($$REF^cAFA10(.Q,DMS),D),"UI1","SKUI1") F i=1:1:2 I $D(SK(i)) D . I $L($G(NR)) I $D(BSK(NR,"REF")) M SK(i,"REF")=BSK(NR,"REF") . S REF="$P("_$P(UREF,")",1,$L(UREF,")")-1) . S REF=REF_","_(SK(i)\100-1)_"),D,"_(SK(i)#100)_")" . S SK(i,"REF",$O(SK(i,"REF",""),-1)+1)=REF ; ; Doorlinken? S (L1,L2)="",UI1=DPID_" ",DPUREF=$P($$REF^cAFA10(.Q,"DP.PROP"),D) I '$L(DPUREF) G SKY SK5 S UI1=$O(@DPUREF) I $P(UI1," ")'=DPID G SKY S N0=@DPUREF@(0),N1=^(1),BIND=$P(N0,D,10) I '$L(BIND) G SK9 I $L($P(N0,D,13)) G SK9 ; Zoeksleutel S TSK=0 S:BIND=$G(SK(1)) TSK=1 S:BIND=$G(SK(2)) TSK=2 I 'TSK G SK9 I '$L($P(N1,D,12)) G SK9 ; Geen link D SK($P(N1,D,12),.LSK,TSK,.SK,$S($L($G(LINK)):LINK_"#"_UI1,1:UI1)) S:TSK=1 L1=1 S:TSK=2 L2=1 SK9 G SK5 ; ; LSK-tabel opzetten SKY I 'L1,$D(SK(1)),$L(SK(1)) M LSK($S($L($G(NR)):NR+.1,1:1))=SK(1) I 'L2,$D(SK(2)),$L(SK(2)) M LSK($S($L($G(NR)):NR+.2,1:2))=SK(2) ; SKZ Q ; CHKDT(VDT,TDT) ; Checkt van\tot datum S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("VDT,TDT") ; S R="1" I '$L($G(VDT))!'$L($G(TDT)) G CHKDTZ ; ; Conversie I VDT?2N1"."2N1"."2N S VDT=$$DH^cAFD1(VDT) I TDT?2N1"."2N1"."2N S TDT=$$DH^cAFD1(TDT) ; ; Check I VDT>TDT S R=0_D_$P($T(@("T1"_QT)),U,2) ; CHKDTZ Q R ; ; Default Van-datum -> vandaag twee jaar terug DEFV() ;Q "01"_$E($$HD^cAFD1($H),3,8) N HD,JR S HD=$$HD^cAFD1($H) S JR=$P(HD,".",3)-2 I JR<0 S JR=JR+100 S JR=$TR($J(JR,"2")," ",0) I $P(HD,".",1,2)="29.08" S $P(HD,".",1,2)="28.08" ; schrikkeldag Q $P(HD,".",1,2)_"."_JR ; ; Default Tot-datum (huidige dag) DEFT() Q $$HD^cAFD1($H) ; KEYS(KLASSE) ; Definitie zoeksleutels ; Input: KLASSE: Naam klasse ; Output: gescheiden door "\" ; 1. Kolomnaam Key 1 ; 2. Breedte Key 1 ; 3. ... ; 4. ... S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("KLASSE") ; ; Intern nummer klasse bepalen KEYS1 S R="",DPID=$$KLASSE^cAFVBA02($G(KLASSE)) I '$L(DPID) G KEYSZ ; ; Definities ophalen KEYS2 D SK(DPID,.LSK) ; ; Output samenstellen KEYS3 S i="",PC=1 F S i=$O(LSK(i)) Q:'$L(i) D . I '$D(LSK(i,"SHOW")) Q . S $P(R,D,PC)=$P(LSK(i,"SHOW"),D) . S $P(R,D,PC+1)=$P(LSK(i,"SHOW"),D,2) . S PC=PC+2 ; KEYSZ Q R ; KEYINF(DP,LINK) ; Haalt de definities van de zoeksleutels op ; Input: DPID: Intern nummer klasse ; LINK: Doorgeschakeld(e) id('s) ; Output: gescheiden door "\" ; 1. Kolomnaam Key 1 ; 2. Breedte Key 1 ; 3. Kolomnaam Key 2 ; 4. Breedte Key 2 S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("DP,LINK") ; ; Controle parameters KEYINF1 S R="" I '$L($G(DP)) G KEYINFZ S PROPIDS=(DP_" "_101)_D_(DP_" "_102),PC=0 I '$L($G(LINK)) S LINK=$P(PROPIDS,D) ; ; Definities van de twee zoeksleutels ophalen KEYINF2 S PC=PC+1 S PROPID=$P(PROPIDS,D,PC) I '$L(PROPID) G KEYINFZ S PROP(0)=$$SIGN^cAFA1("DP.PROP",PROPID,0),PROP(1)=$G(^(1)) I '$L(PROP(0)) G KEYINF2 ; ; Titel bepalen KEYINF3 S TL=$S($L(QT):QT,1:"N") ;I '$L($G(LINK)) S TTL=$$SIG^cAFA1("DP.PROP.TAAL",PROPID_" "_TL,211) G KEYINF4 ; Doorschakeling S TTL=$P($$OMS^cABVBA01("0~"_TL,LINK_"#"_PROPID),D) ; ; Breedte bepalen KEYINF4 S DTYPE=$$SIG^cAFA1("CODE.9020",$P(PROP(1),D),101) ; Datatype S LINPUT=$P(PROP(1),D,3) I $P(PROP(0),D,6) S LINPUT=$P(PROP(1),D,6) ; Breedte (indien berekend : lengte output) S PIX=$$TWIP^cABVB02(LINPUT,DTYPE) ; ; Definities opzetten KEYINF5 S $P(R,D,1+(PC-1*2))=TTL S $P(R,D,2+(PC-1*2))=PIX G KEYINF2 ; KEYINFZ Q R ; ZZ ; 29.08.07 - 10 u 22 * V8.09