cABVBP5 ; Update Forms en Grids via DDP ; cABVBP5 ; T1 ;U heeft geen licentie voor dit bestand : ; T2 ;Doorgegeven sleutel is leeg; T3 ;Geen data voor sleutel : ; T4 ;Groep is leeg of bestaat niet.; T5 ;Fout bij het wijzigen van : ; T6 ;Geen gegevens per taal gevonden; T7 ;Form; Form Item; Form Item Taal;OK; T8 ;Nieuw; Na te kijken en wordt niet gewijzigd : ; T9 ;Grid; Grid Tab + Kolom; ; YZ Q ; DDP(UI1C,TEST) ; update via DDP ; UI1C = UI1 van DDP ; TEST = 1 : enkel test en niets wijzigen S $ZT="TRAP^cAN000" N OK,I1,REFF,REFG,UI1CP,I2,UI1FITM,UI1GCOL,UI1F,UI1G S OK=1 ; ; FORMS ; Alle properties van de klasse overlopen en form.items per property ; bepalen en een TEMPC gesorteerd per form opbouwen DDPA S REFF="^TEMPC(boot,$j,""FORM"")" K @REFF ; forms S REFG="^TEMPC(boot,$j,""GRID"")" K @REFG ; grids S I1=UI1C_" " DDPB S I1=$O(^IDDP(0,"KLASSE.PROP",101,I1)) G DDPF:$E(I1,1,$L(UI1C)+1)'=(UI1C_" ") S UI1CP=$P(^(I1),D) ; forms S (UI1CP,I2)=$$DI^cAN000(UI1CP,"") DDPC S I2=$O(^IVB(0,"FORMN.ITEM",135,I2)) G DDPD:$E(I2,1,$L(UI1CP))'=UI1CP S UI1FITM=$P(^(I2),D) S UI1F=$$SIG^cAFA1("FORMN.ITEM",UI1FITM,101) S @REFF@(UI1F,UI1FITM)="" ; bestand opzetten per form en bijhorende items horend tot UI1CP G DDPC ; grids DDPD S BINDS=148_D_145 DDPD2 S I2=UI1CP,BIND=$P(BINDS,D),BINDS=$P(BINDS,D,2,99) I '$L(BIND) G DDPB DDPE S I2=$O(^IVB(0,"GRIDN.TAB.COL",BIND,I2)) G DDPD2:$E(I2,1,$L(UI1CP))'=UI1CP S UI1GCOL=$P(^(I2),D) S UI1G=$$SIG^cAFA1("GRIDN.TAB.COL",UI1GCOL,101) S @REFG@(UI1G,UI1GCOL)="" ; bestand opzetten per grid en bijhorende kolommen horend tot UI1CP G DDPE ; forms updaten DDPF S UI1F="" DDPG S UI1F=$O(@REFF@(UI1F)) G DDPH:UI1F="" ;S OK=$$FORM(UI1F,$G(TEST),UI1C,REFF) S OK=$$MKFORM^cABVBP15(UI1F,UI1C,"",$S($G(TEST):3,1:1),REFF) G DDPG ; GRIDS DDPH S UI1G="" DDPI S UI1G=$O(@REFG@(UI1G)) G DDPZ:UI1G="" ;S OK=$$GRID(UI1G,$G(TEST),UI1C,REFG) S OVERWR(101)=UI1G,OK=$$MKGRID^cABVBP14(UI1C,.OVERWR,"","",$S($G(TEST):3,1:1),REFG) G DDPI DDPZ Q OK ; FORM(UI1F,TEST,UI1C,REF) ; update 1 form ; UI1F = UI1 van FORMN ; TEST = 1 : enkel test en niets wijzigen ; UI1C = UI1 van DDP (enkel indien wijzigen vanuit DDP) ; REF = temp-bestand met items die moeten gewijzigd worden (enkel indien wijzigen vanuit DDP) S $ZT="TRAP^cAN000" N OK,DMSF,DMSP,NAAM,K,A,I1,TAB,DMA,WARN S DMSF="FORMN",DMSP="DP",OK=1 K WARN I '$L($G(UI1F)) S OK="0\"_$P($T(@("T2"_QT)),U,2) G FORMZ D LOG("") D LOG("") D LOG($P($T(@("T7"_QT)),U,2)_" : "_UI1F) S OK=1 I '$G(TEST) S OK=$$PLUS^cANLOCK("^VBN(0,""FORM"","""_UI1F_""")") I 'OK G FORMZ FORMA S A(1)=$$SIGN^cAFA1(DMSF,UI1F,0) ; indien een UI1 van DDP doorgegeven en UI1 zit niet in FORM I $L($G(UI1C)),UI1C'=$P(A(1),D,4) G FORMC S UI1C=$P(A(1),D,4) I '$L(UI1C) G FORMY S NAAM=$$NAAM(UI1C) I 'NAAM S OK=NAAM G FORMY S NAAM=$P(NAAM,D,2) FORMB I $P(A(1),D,3)'=NAAM S TAB(103)=NAAM S OK=$$UPD("W",DMSF,UI1F,.TAB,.A,.DMA,$G(TEST),.WARN) I 'OK G FORMY ; items FORMC S I1=UI1F_" " FORMD S I1=$O(^VBN(0,"FORM.ITEM",I1)) I $E(I1,1,$L(UI1F)+1)'=(UI1F_" ") G FORMY I $L($G(REF)),'$D(@REF@(UI1F,I1)) G FORMD ; indien niet in temp-bestand S OK=$$FORMITM(I1,$G(TEST)) I 'OK G FORMY G FORMD FORMY I '$G(TEST) L -^VBN(0,"FORM",UI1F) FORMZ D LOG($S('OK:$P(OK,D,2),1:$P($T(@("T7"_QT)),U,5))) Q OK ; FORMITM(UI1FITM,TEST) ; Update 1 item van een form ; UI1FITM = UI1 van FORMN.ITEM ; TEST = 1 : enkel test en niets wijzigen N DMSF,DMSP,K,TAB,WARN,A,HUI1CP,UI1CP,DP,PROPE,DTYPE,TYPEC,NAAM,LINPUT,OK,GRID,I2,DPT,DMAI,DMAIT,LINKED S $ZT="TRAP^cAN000" S DMSF="FORMN",DMSP="DP" FORMITMA S OK=1 I '$G(TEST) S OK=$$PLUS^cANLOCK("^VBN(0,""FORM.ITEM"","""_UI1FITM_""")") I 'OK G FORMITMZ FORMITMB S A(1)=$$SIGN^cAFA1(DMSF_".ITEM",UI1FITM,0) I '$L(A(1)) S OK="0\"_$P($T(@("T3"_QT)),U,2)_DMSF_".ITEM"_" : "_UI1FITEM G FORMITMZ I $P(A(1),D,30)=2 G FORMITMY I $P(A(1),D,23) G FORMITMY ; definitie is overschreven S (HUI1CP,UI1CP)=$P(A(1),D,33) ; is er doorgeschakeld ? ;I $L($P(A(1),D,34)) S UI1CP=$P(A(1),D,34),UI1CP=$P(UI1CP,"#",$L(UI1CP,"#")) S UI1CP=$P(A(1),D,35),LINKED=$P(A(1),D,34) I '$L(UI1CP) G FORMITMY ; geen link met DP.PROP S DP(1)=$$SIGN^cAFA1(DMSP_".PROP",UI1CP,0),DP(2)=^(1) I '$L(DP(1)) S OK="0\"_$P($T(@("T3"_QT)),U,2)_DMSP_" : "_UI1CP G FORMITMY ; FORMITMC I $P(A(1),D,3)'=$P(DP(1),D,12) D WARN(DMSF_".ITEM",UI1FITM,$P(A(1),D,3)_" -> "_$P(DP(1),D,12),103,.DMAI,.WARN) ; interne naam S PROPE=$$SQLKOL(DMSP,$P(A(1),D,34),$P(A(1),D,33)) I PROPE D WARN(DMSG_".ITEM",UI1FITM,$P(A(1),D,12)_" -> "_$P(PROPE,D,2),112,.DMAI,.WARN) ; property I 'PROPE,$P(A(1),D,12)'=$P(PROPE,D,2) S TAB(112)=$P(PROPE,D,2) S DTYPE=$P(A(1),D,4) I $P(A(1),D,4)'=$P(DP(2),D) S (DTYPE,TAB(104))=$P(DP(2),D) ; datatype S TYPEC=$$SIG^cAFA1("CODE.9020",DTYPE,106) ; type control S DTYPE=$$SIG^cAFA1("CODE.9020",DTYPE,101) I $P(A(1),D,20)'=TYPEC D WARN(DMSF_".ITEM",UI1FITM,$$SIG^cAFA1("CODE.9021",$P(A(1),D,20),101)_" -> "_$$SIG^cAFA1("CODE.9021",TYPEC,101),120,.DMAI,.WARN) ; type control I '$L($P(DP(2),D,12)) G FORMITMD ; geen referentieklasse I $$SIG^cAFA1("CODE.9021",$P(A(1),D,20),101)'=1 D WARN(DMSF_".ITEM",UI1FITM,$$SIG^cAFA1("CODE.9021",$P(A(1),D,20),101)_ " -> "_1,120,.DMAI,.WARN) ; type control moet eigenlijk codetextbox zijn S NAAM=$$NAAM($P(DP(2),D,12)) I 'NAAM D WARN(DMSF_".ITEM",UI1FITM,$P(A(1),D,14)_" -> "_"",212,.DMAI,.WARN) I NAAM,$P(A(1),D,14)'=$P(NAAM,D,2) S TAB(114)=$P(NAAM,D,2) ; referentieklasse I $P(A(1),D,13)'=$P(DP(2),D,13) S TAB(113)=$P(DP(2),D,13) ; selectiegrid S TAB(115)=$$TWIP^cABVB02($P(DP(2),D,6)-$P(DP(2),D,3)-1,DTYPE) ; labelbreedte FORMITMD S LINPUT=$P(DP(2),D,3) S:$$SIG^cAFA1("CODE.9021",$P(A(1),D,20),101)=3 LINPUT=$P(DP(2),D,6) I $P(A(1),D,5)'=LINPUT S TAB(105)=LINPUT,TAB(106)=$$TWIP^cABVB02(TAB(105),DTYPE) ; Lengte Input I $P(A(1),D,25)'=$P(DP(2),D,4) S TAB(125)=$P(DP(2),D,4) ; aantal decimalen ;GM 16.02.06 Verplicht zit nu op node 0 ;I $P(A(1),D,7)'=$P(DP(2),D,2) S TAB(107)=$P(DP(2),D,2) ; verplicht I $P(A(1),D,7)'=$P(DP(1),D,14) S TAB(107)=$P(DP(1),D,14) ; verplicht I +$P(A(1),D,24)'=+$P(DP(2),D,10) S TAB(124)=$P(DP(2),D,10) ; uitlijning I +$P(A(1),D,26)'=+$P(DP(2),D,11) S TAB(126)=$P(DP(2),D,11) ; formaat I '$D(TAB)&'$D(WARN) G FORMITMF D LOG(""),LOG($P($T(@("T7"_QT)),U,3)_" : "_$P(A(1),D,2)) FORMITME S OK=$$UPD("W",DMSF_".ITEM",UI1FITM,.TAB,.A,.DMAI,$G(TEST),.WARN) I 'OK G FORMITMY FORMITMF ; taalafhankelijke velden - GM 25.01.06 - Gegevens ophalen via LINKED (ivm doorschakelen) S GRID=$$BTEMPITM^cABVBF1("",UI1FITM,"",LINKED) I 'GRID D WARN(DMSF_".ITEM.TAAL",UI1FITM,$P($T(@("T6"_QT)),U,2),"","",.WARN) G FORMITMZ S I2="",OK=1 FORMITMG S I2=$O(^mtemp99(GRID,"COMMON",I2)) I I2="" K ^mtemp99(GRID) G FORMITMY S DPT=^(I2,0) K TAB,WARN I $D(^VBN(0,"FORM.ITEM.TAAL",I2,0)) G FORMITMH S TAB(1)=DPT I $D(TAB)!$D(WARN) D LOG($P($T(@("T7"_QT)),U,4)_" : "_$P($P(A(1),D)," ",2)_" "_$P(A(1),D,2)) S OK=$$UPD("O",DMSF_".ITEM.TAAL",I2,.TAB,.A,.DMAIT,$G(TEST),.WARN) I 'OK G FORMITMY G FORMITMG FORMITMH S A(1)=^(0) I $P(A(1),D,3)'=$P(DPT,D,3) S TAB(103)=$P(DPT,D,3) I $P(A(1),D,4)'=$P(DPT,D,4) S TAB(104)=$P(DPT,D,4) I $D(TAB)!$D(WARN) D LOG($P($T(@("T7"_QT)),U,4)_" : "_$P($P(A(1),D)," ",2)_" "_$P(A(1),D,2)) S OK=$$UPD("W",DMSF_".ITEM.TAAL",I2,.TAB,.A,.DMAIT,$G(TEST),.WARN) I 'OK G FORMITMY G FORMITMG FORMITMY I '$G(TEST) L -^VBN(0,"FORM.ITEM",UI1FITM) FORMITMZ Q OK ; ; GRID(UI1G,TEST,UI1C,REF) ; update 1 GRID ; UI1G = UI1 van GRIDN ; TEST = 1 : enkel test en niets wijzigen ; UI1C = UI1 van DDP (enkel indien wijzigen vanuit DDP) ; REF = temp-bestand met items die moeten gewijzigd worden (enkel indien wijzigen vanuit DDP) S $ZT="TRAP^cAN000" N OK,DMSG,DMSP,UI1C,NAAM,K,A,I1,TAB,DMA,WARN S DMSG="GRIDN",DMSP="DP",OK=1 I '$L($G(UI1G)) S OK="0\"_$P($T(@("T2"_QT)),U,2) G GRIDZ D LOG("") D LOG("") D LOG($P($T(@("T9"_QT)),U,2)_" : "_UI1G) I '$G(TEST) S OK=$$PLUS^cANLOCK("^VBN(0,""GRID"","""_UI1G_""")") I 'OK G GRIDZ GRIDA S A(1)=$$SIGN^cAFA1(DMSG,UI1G,0) ; indien een UI1 van DDP doorgegeven en UI1 zit niet in FORM I $L($G(UI1C)),UI1C'=$P(A(1),D,21) G GRIDC S UI1C=$P(A(1),D,21) I '$L(UI1C) G GRIDY S NAAM=$$NAAM(UI1C) I 'NAAM S OK=NAAM G GRIDY S NAAM=$P(NAAM,D,2) GRIDB I $P(A(1),D,2)'=NAAM S TAB(102)=NAAM S OK=$$UPD("W",DMSG,UI1G,.TAB,.A,.DMA,$G(TEST),.WARN) I 'OK G GRIDY ; kolommen GRIDC S I1=UI1G_" " GRIDD S I1=$O(^VBN(0,"GRID.TAB.COL",I1)) I $E(I1,1,$L(UI1G)+1)'=(UI1G_" ") G GRIDY I $L($G(REF)),'$D(@REF@(UI1G,I1)) G GRIDD ; indien niet in temp-bestand S OK=$$GRIDCOL(I1,$G(TEST)) I 'OK G GRIDY G GRIDD GRIDY I '$G(TEST) L -^VBN(0,"GRID",UI1G) GRIDZ D LOG($S('OK:$P(OK,D,2),1:$P($T(@("T7"_QT)),U,5))) Q OK ; GRIDCOL(UI1GCOL,TEST) ; wijzigen van 1 kolomgrid N DMSG,DMSP,K,TAB,WARN,A,HUI1CP,UI1CP,DP,DPT,LOMS,i,SQLKOLE,DTYPE,NAAM,OK,DMAC,TWIP,DEFOP,LINPUT,LINKED,DESC,PC S $ZT="TRAP^cAN000" S DMSG="GRIDN",DMSP="DP" S OK=1 I '$G(TEST) S OK=$$PLUS^cANLOCK("^VBN(0,""GRID.TAB.COL"","""_UI1GCOL_""")") I 'OK G GRIDCOLZ GRIDCOLA S A(1)=$$SIGN^cAFA1(DMSG_".TAB.COL",UI1GCOL,0) I '$L(A(1)) S OK="0\"_$P($T(@("T3"_QT)),U,2)_DMSG_".TAB.COL"_" : "_UI1GCOL G GRIDCOLY S A(2)=^(1) I $P(A(1),D,30)=2 G GRIDCOLY I $P(A(1),D,46) G GRIDCOLY ; definitie is overschreven S (HUI1CP,UI1CP)=$P(A(1),D,45) ; is er doorgeschakeld ? ; I $L($P(A(1),D,47)) S UI1CP=$P(A(1),D,47),UI1CP=$P(UI1CP,"#",$L(UI1CP,"#")),BIN=13 S UI1CP=$P(A(1),D,48) ;I UI1CP'=HUI1CP S BIN=13 I '$L(UI1CP) G GRIDCOLY ; geen link met DP.PROP S DP(1)=$$SIGN^cAFA1(DMSP_".PROP",UI1CP,0),DP(2)=$G(^(1)) I '$L(DP(1)) S OK="0\"_$P($T(@("T3"_QT)),U,2)_DMSP_" : "_UI1CP G GRIDCOLY ; ophalen taalgegevens GRIDCOLB S DPT("N")=$$SIGN^cAFA1(DMSP_".PROP.TAAL",UI1CP_" N",1) S DPT("F")=$$SIGN^cAFA1(DMSP_".PROP.TAAL",UI1CP_" F",1) S DPT("D")=$$SIGN^cAFA1(DMSP_".PROP.TAAL",UI1CP_" D",1) S DPT("E")=$$SIGN^cAFA1(DMSP_".PROP.TAAL",UI1CP_" E",1) ; GM 25.01.06 - Indien doorgeschakeld item, omschrijving via andere manier ophalen S LINKED=$P(A(1),D,47) I $L(LINKED,"#")>1 D . S DESC=$$OMS^cABVBA01(0,LINKED,.OMS) . S TK="" F S TK=$O(OMS(TK)) Q:'$L(TK) S $P(DPT(TK),D,11,12)=$G(OMS(TK,0))_D_$G(OMS(TK,1)) . ;F PC=1:1:$L(DESC,D) S $P(DPT($P($P(DESC,D,PC),"#")),D,11)=$P($P(DESC,D,PC),"#",2) ; GRIDCOLC S LOMS=0 F i=5:1:8 I $L($P(A(1),D,i))>LOMS S LOMS=$L($P(A(1),D,i)) ; bepalen langste omschrijving I $P(A(1),D,16) G GRIDCOLD ; GM 03.05.06 Niet controleren bij ID-kolom I $P(A(1),D,5)'=$P(DPT("E"),D,11) S TAB(105)=$P(DPT("E"),D,11) ; Omschrijving Engels I $P(A(1),D,6)'=$P(DPT("N"),D,11) S TAB(106)=$P(DPT("N"),D,11) ; Omschrijving Nederlands I $P(A(1),D,7)'=$P(DPT("F"),D,11) S TAB(107)=$P(DPT("F"),D,11) ; Omschrijving Frans I $P(A(1),D,8)'=$P(DPT("D"),D,11) S TAB(108)=$P(DPT("D"),D,11) ; Omschrijving Duits F i=105:1:108 I $L($G(TAB(i)))>LOMS S LOMS=$L(TAB(i)) ; bepalen langste omschrijving na update I $P(A(1),D,20)'=$P(DPT("E"),D,12) S TAB(120)=$P(DPT("E"),D,12) ; Tooltip Engels I $P(A(1),D,24)'=$P(DPT("N"),D,12) S TAB(124)=$P(DPT("N"),D,12) ; Tooltip Nederlands I $P(A(1),D,25)'=$P(DPT("F"),D,12) S TAB(125)=$P(DPT("F"),D,12) ; Tooltip Frans I $P(A(1),D,26)'=$P(DPT("D"),D,12) S TAB(126)=$P(DPT("D"),D,12) ; Tooltip Duits ; GRIDCOLD S DTYPE=$$SIG^cAFA1("CODE.9020",$P(DP(2),D),101) I $P(A(1),D,23)'=DTYPE S TAB(123)=DTYPE ; datatype ; terugsamenstellen SQL-kolom S SQLKOLE=$$SQLKOL(DMSP,$P(A(1),D,47),$P(A(1),D,45)) GRIDCOLE I SQLKOLE D WARN(DMSG_".TAB.COL",I1,$P(A(2),D)_" -> "_$P(SQLKOLE,D,2),201,.DMAC,.WARN) ; SQL-Kolom I 'SQLKOLE,$P(A(2),D)'=$P(SQLKOLE,D,2) I '$P(A(1),D,16) S TAB(201)=$P(SQLKOLE,D,2) ; GM 03.05.06 Verschil negeren bij ID-kolom S LINPUT=$P(DP(2),D,3) I $P(DP(1),D,6) S LINPUT=$P(DP(2),D,6) ; indien berekend : lengte output S TWIP=$$TWIP^cABVB02(LINPUT,DTYPE) I $P(A(1),D,12)=TWIP G GRIDCOLF I LINPUT' "_TWIP,112,.DMAC,.WARN) ; lengte input kleiner dan langste omschrijving GRIDCOLF I $G(TAB(112))=$P(A(1),D,12) K TAB(112) I "\1\6\7\"'[(D_DTYPE_D) G GRIDCOLG ; indien datatype numeriek, integer of float : aantal decimalen en formaat S TAB(127)=$P(A(1),D,27) I "\1\7\"[(D_DTYPE_D),+$P($P(A(1),D,27),"#")'=+$P(DP(2),D,4) S $P(TAB(127),"#")=$P(DP(2),D,4) ; decimalen I +$P($P(A(1),D,27),"#",2)'=+$P(DP(2),D,11) S $P(TAB(127),"#",2)=$P(DP(2),D,11) ; formaat I $L(TAB(127)) F i=1:1:3 S $P(TAB(127),"#",i)=+$P(TAB(127),"#",i) ; eventueel "" omvormen naar 0 I TAB(127)=$P(A(1),D,27) K TAB(127) GRIDCOLG I +$P(A(1),D,21)'=+$P(DP(2),D,10) S TAB(121)=$P(DP(2),D,10) ; uitlijning S DEFOP=$$DTYPPROP^cABVB050($P(DP(2),D)) I $P(DEFOP,D)'=$P(A(2),D,4) D WARN(DMSG_".TAB.COL",I1,$P(A(2),D,4)_" -> "_$P(DEFOP,D),204,.DMAC,.WARN) ; defaul operator I '$D(TAB)&'$D(WARN) G GRIDCOLY D LOG(""),LOG($P($T(@("T9"_QT)),U,3)_" : "_$P(A(1),D,3)_" "_$P(A(1),D,4)) GRIDCOLX S OK=$$UPD("W",DMSG_".TAB.COL",I1,.TAB,.A,.DMAC,$G(TEST),.WARN) I 'OK G GRIDCOLY GRIDCOLY I '$G(TEST) L -^VBN(0,"GRID.TAB.COL",UI1GCOL) GRIDCOLZ Q OK ; NAAM(UI1C) N NAAM,B,OK S B=$$SIGN^cAFA1("DP",UI1C,0) S NAAM=$$SIG^cAFA1("CODE.9022",$P(B,D,3),101) I '$L(NAAM) S OK="0\"_$P($T(@("T4"_QT)),U,2) G NAAMZ S NAAM=NAAM_$S($L(NAAM):".",1:"")_$P(B,D) S OK=1_D_NAAM NAAMZ Q OK ; DMA(DMS,DMA) N UQA,USA,I1,I2,BIN S $ZT="TRAP^cAN000" S UQA=$P($G(^DMS(0,DMS,"DMA","W")),D),USA=$P($G(^("W")),D,2) I '$L(UQA)!'$L(USA) G DMAZ K DMA S I1=0 F S I1=$O(^DMA(UQA,USA,I1)) Q:I1="" S I2="" F S I2=$O(^DMA(UQA,USA,I1,I2)) Q:I2="" D . S BIN=$G(^(I2,16)) I '$L(BIN) Q . S DMA(BIN)=$G(^(1)) DMAZ Q ; SQLKOL(DMSP,UI1CL,UI1C) N i,SQLKOL,SQLKOLE S $ZT="TRAP^cAN000" I '$L(UI1CL) S UI1CL=UI1C S SQLKOL="",SQLKOLE="" F i=1:1:$L(UI1CL,"#") S SQLKOL=SQLKOL_$S($L(SQLKOL):"->",1:"")_$$SIG^cAFA1(DMSP_".PROP",$P(UI1CL,"#",i),103) I $P(SQLKOL,"->",$L(SQLKOL,"->"))="" S SQLKOLE=1 SQLKOLZ Q SQLKOLE_D_SQLKOL ; LOG(TXT) ; opzetten logging W !,TXT LOGZ Q ; UPD(UFU,DMS,UI1,TAB,A,DMA,TEST,WARN) N OK,K,i S $ZT="TRAP^cAN000" S OK=1 I '$D(TAB)&'$D(WARN) G UPDZ I '$D(DMA) D DMA(DMS,.DMA) UPDA I UFU="W" S i="" F S i=$O(TAB(i)) Q:i="" D . D LOG(" "_$P($G(DMA(i)),D,QTU)_" : "_$P(A(i\100),D,i#100)_" -> "_TAB(i)) I UFU="O" S i="" F S i=$O(TAB(i)) Q:i="" D . D LOG(" "_$P($T(@("T8"_QT)),U,2)_" : "_(i-1)_" : "_TAB(i)) I '$D(WARN) G UPDB D LOG($P($T(@("T8"_QT)),U,3)) S i="" F S i=$O(WARN(i)) Q:i="" D LOG(WARN(i)) UPDB I $G(TEST) G UPDZ UPDC I UFU="W" D B^cAN220(DMS,"",UI1,"TAB") I K="-" S OK="0\"_$P($T(@("T5"_QT)),U,2)_DMS_" : "_UI1 G UPDZ I UFU="O" D P^cAN220(DMS,"",UI1,"TAB","") I K="-" S OK="0\"_$P($T(@("T5"_QT)),U,2)_DMS_" : "_UI1 G UPDZ UPDZ Q OK ; WARN(DMS,UI1,TXT,BIN,DMA,WARN) I $G(BIN),'$D(DMA) D DMA(DMS,.DMA) I $G(BIN) S TXT=$P($G(DMA(BIN)),D,QTU)_" : "_TXT S WARN=$O(WARN(""),-1)+1,WARN(WARN)=" "_TXT WARNZ Q ; ZZ ; 29.08.07 - 10 u 22 * V8.09