cABVBP4 ;Aanmaken DMA vanuit DDP ;cABVBP4 ; T1 ;U heeft geen licentie voor dit bestand : ; T2 ;DMS niet ingevuld in ; T3 ;Geen data voor doorgegeven sleutel : ; T4 ;Definitie DMA niet in orde voor : ; T5 ;Geen UQA en USA voor DMS : ; ; YZ Q ; BUILD(Q,UI1C,TYPE,UQA,USA) ; UI1C = UI1 van DDP ; TYPE = 0 : DMA killen en initieel terug opzetten ; = 1 : DMA : properties aanpassen ; = 2 : DMA : properties aanpassen + wat teveel is er uit verwijderen S $ZT="TRAP^cAN000" N OK,DMSC,SW3,B,i,DMS,UQC,USC,PROP,DMA,I1,I2,REF,PROP,BIN,LIJNNR S DMSC="DP",OK=1 S DMS=$$SIG^cAFA1("DP",UI1C,201) I '$L(DMS) S OK="0\"_$P($T(@("T2"_QT)),U,2)_$g(class) G BUILDZ D DMS^cAN000("UQC","USC",DMS,1) I '$L(UQC)!'$L(USC) S OK="0\"_$P($T(@("T1"_QT)),U,2)_DMS G BUILDZ S SW3=$$SW3^cABVBP2(DMSC) I 'SW3 S OK="0\"_$P($T(@("T4"_QT)),U,2)_DMSC G BUILDZ S B(1)=$$SIGN^cAFA1(DMSC,UI1C,0) I '$L(B(1)) S OK="0\"_$P($T(@("T3"_QT)),U,2)_DMSC_" : "_UI1C G BUILDZ F i=2:1:SW3 S B(i)=$G(^(i-1)) I $G(UQA)="" D ; indien geen spec. UQA en USA doorgegeven : ophalen in ^DMS bij "W" . S UQA=$P($G(^DMS(Q,DMS,"DMA","W")),D),USA=$P($G(^("W")),D,2) . I UQA="",USA="" S UQA=$P($G(^DMS(0,DMS,"DMA","W")),D),USA=$P($G(^("W")),D,2) I '$L(UQA)!'$L(USA) S OK="0\"_$P($T(@("T5"_QT)),U,2)_DMS G BUILDZ ; BUILDA I '$G(TYPE)!($G(TYPE)&'$D(^DMA(UQA,USA))) D I 'OK G BUILDZ ; indien initieel opzetten . I '$D(^DMA(0,"VB.DUMMY")) S OK="0\"_$P($T(@("T4"_QT)),U,2)_" VB.DUMMY" Q . K ^DMA(UQA,USA) . M ^DMA(UQA,USA,0)=^DMA(0,"VB.DUMMY",0) ; initialiseren van de alg. gegevens . S ^DMA(UQA,USA,0,"DMS")=DMS ; DMS ; opstellen tabel per B-index met scherm en nummer 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 . I $G(^(I2,16)) S DMA(^(16))=I1_D_I2 . I $G(^(2))>$G(DMA(0,I1)) S DMA(0,I1)=^(2) ; hoogste lijnnr per scherm bepalen ; BUILDB ; ophalen overgeërfde properties ; KU : 12.10.05 Niet nodig omdat enkel Niveau zal opgezet worden in DMA ; K REF,PROP S OK=$$PARTAB^cABVBP3($$SUPER^cABVBP3(.B),1,.REF) I 'OK G BUILDZ ; ophalen properties van superklassen ; S i="" F S i=$O(REF(i)) Q:i="" I $P(REF(i),D,2) S PROP($P(REF(i),D,2))=i ; tabel per B-index opzetten ; K REF ; BUILDC ; ophalen properties S OK=$$PROP(UI1C,.PROP) I 'OK G BUILDZ I '$D(PROP(130)) D ; opzetten niveau . S i="" F S i=$o(^DMA(0,"VB.DUMMY",1,i)) Q:i="" I $G(^(i,16))=130 M PROP(130)=^DMA(0,"VB.DUMMY",1,i) Q ; BUILDD ; opzetten DMA S BIN="" BUILDE S BIN=$O(PROP(BIN)) G BUILDY:BIN="" I '$D(DMA(BIN)) G BUILDF ; propertie staat reeds in DMA S I1=$P(DMA(BIN),D),I2=$P(DMA(BIN),D,2) G BUILDH BUILDF ; propertie staat niet in DMA S I1=$O(DMA(0,""),-1) ; laatste scherm bepalen I 'I1 S I1=1 BUILDG S LIJNNR=$G(DMA(0,I1))+1 ; hoogste lijnnr per scherm ophalen I LIJNNR>18 S I1=I1+1 G BUILDG S DMA(0,I1)=LIJNNR S I2=$O(^DMA(UQA,USA,I1,""),-1)+1 S ^DMA(UQA,USA,I1,I2,2)=LIJNNR ; lijnnr S ^(3)=1 ; kolomnr rubriek S ^(6)=21 ; kolomnr output S ^(22)=1 ; nummer tonen S ^(23)=1 ; prompt tonen ; prompt, data type, xecute ivm output, lengte input, commentaar, inputcontrole, cond. niet wijzigbaar, BIN BUILDH F i=1,4,8,9,10,11,13,15,16 S ^DMA(UQA,USA,I1,I2,i)=$G(PROP(BIN,i)) K DMA(BIN),PROP(BIN) G BUILDE ; BUILDY I $G(TYPE)'=2 G BUILDZ ; opkuis DMA S BIN=0 F S BIN=$o(DMA(BIN)) Q:BIN="" D . K ^DMA(UQA,USA,$P(DMA(BIN),D),$P(DMA(BIN),D,2)) BUILDZ Q OK ; PROP(UI1C,PROP) ; samenstellen tabel met properties ; UI1C = interne nr van de klasse uit ^DDP ; PROP = in deze tabel zit de data opgeslagen voor de storage : doorgeven als referentie S $ZT="TRAP^cAN000" N DMSCP,UQC,USC,UREF,IREF,SW3,I1,OK,B,i,UI1,LOMS,BIN S DMSCP="DP.PROP" K PROP D DMS^cAN000("UQC","USC",DMSCP,1) I '$L(UQC)!'$L(USC) S OK="0\"_$P($T(@("T1"_QT)),U,2)_DMSCP G PROPZ S IREF=^DMC(UQC,USC,"DATA","INDEX"),UREF=^("REF") S SW3=$$SW3^cABVBP2(DMSCP) I 'SW3 S OK="0\"_$P($T(@("T4"_QT)),U,2)_DMSCP G PROPZ S I1=UI1C_" ",OK=1,LOMS="" PROPA S I1=$O(@IREF@(101,I1)) G PROPZ:$E(I1,1,$L(UI1C)+1)'=(UI1C_" ") S UI1=$P(^(I1),D) S B(1)=@UREF@(0) F i=2:1:SW3 S B(i)=$G(^(i-1)) I $P(B(1),D,30) G PROPA ; BG of verwijderd I $P(B(1),D,13) G PROPA ; zoeksleutel S BIN=$P(B(1),D,10) I 'BIN G PROPA ; geen B-index ; ophalen taalgebonden definities S OK=$$PROPT(DMSCP_".TAAL",UI1,.TAAL) S PROP(BIN,1)=$P(TAAL("N"),D)_D_$P(TAAL("F"),D)_D_$P(TAAL("D"),D)_D_$P(TAAL("E"),D) ; omschrijving I $L($P(TAAL("N"),D))>LOMS S LOMS=$L($P(TAAL("N"),D)) ; langste omschr. bepalen S PROP(BIN,4)=$$SIG^cAFA1("GRIDN.DATATYPE",$P(B(2),D),104) ; type S PROP(BIN,8)=$P(B(2),D,7) ; Xexcute ivm output S PROP(BIN,9)=$P(B(2),D,3) ; lengte input S PROP(BIN,10)=$P(TAAL("N"),D,2)_D_$P(TAAL("F"),D,2)_D_$P(TAAL("D"),D,2)_D_$P(TAAL("E"),D,2) ; commentaar S PROP(BIN,11)=$P(B(2),D,5) I $P(B(2),D,2),'$L(PROP(BIN,11)) S PROP(BIN,11)="$L(K)" S PROP(BIN,13)=$P(B(2),D,6) ; lengte output S PROP(BIN,15)=$P(B(2),D,8) ; cond. niet wijzigbaar S PROP(BIN,16)=BIN ; B-index G PROPA PROPZ Q OK ; PROPT(DMSPT,UI1P,TAAL) ; opzetten def. per taal ; DMSP = DP.PROP ; UI1P = UI1 van propertie DDP ; TAAL = tabel per taal : wordt doorgegeven als referentie ; S $ZT="TRAP^cAN000" N TKI1,TKB,UI1,OK,TK K TAAL S TKI1="" PROPTA S TKI1=$O(^DTEXT(0,"TEXT.9000",TKI1)) G PROPTY:TKI1="" ; aflopen taalcodes S TKB=^(TKI1,0) I $P(TKB,D,30) G PROPTA ; BG of verwijderd S TK=TKI1 ;$P(TKB,D) S UI1=UI1P_" "_TK S TAAL(TK)=$$SIG^cAFA1(DMSPT,UI1,231)_D_$P($G(^(1)),D,32) ; prompt DMA, commentaar in DMA I '$L($P(TAAL(TK),D)) S $P(TAAL(TK),D)=$P($G(^(1)),D,21) ; indien lege prompt DMA : label van rubriek in form G PROPTA PROPTY S OK=1 PROPTZ Q OK ; ZZ ; 29.08.07 - 10 u 22 * V8.09