cABVBK9 ; Klasse-functies ivm beheertool automatisch creatie codebestanden ; T1 ;Codes;Teksten; T2 ;DMC,DMA en DMS kunnen niet aangemaakt worden voor dit codebestand: ;Het nummer komt niet overeen met het nummer in de DMS: ; T3 ;Aanmaken klassedefinitie; T4 ;Aanmaken default properties klassedefinitie; T5 ;Ophalen REF uit de DMC; T6 ;Properties aanmaken voor klassedefinitie:; T7 ;Talen invoegen voor klassedefinitie; T8 ;Beheer-applicatie aanmaken voor de klasse; T9 ;Aanmaken taalafhankelijke gegevens voor beheer-applicatie; T10 ;Aanmaken DMC,DMA,DMS en DMQ voor het codebestand;DMC,DMA,DMS en/of DMQ aangemaakt of bestaan reeds; T11 ;Er is geen DMC/DMA/DMS gevonden!; T12 ;Aanmaken einddefinitie; T13 ;Update referentieklasse en -grid in DD; T14 ;Aanmaken en compileren klasse; T15 ;Aanmaken grid; T16 ;Aanmaken form; T17 ;Het codebestand ; bestaat reeds. Gelieve opnieuw te proberen.; T18 ;Nummer ; voor codebestand ; T19 ;Opgelet DMQ moet nog opgezet worden!; ; T1F ;Codes;Textes; T2F ;DMC,DMA en DMS kunnen niet aangemaakt worden voor dit codebestand: ;Het nummer komt niet overeen met het nummer in de DMS: ; T3F ;Aanmaken klassedefinitie; T4F ;Aanmaken default properties klassedefinitie; T5F ;Ophalen REF uit de DMC; T6F ;Properties aanmaken voor klassedefinitie:; T7F ;Talen invoegen voor klassedefinitie; T8F ;Beheer-applicatie aanmaken voor de klasse; T9F ;Aanmaken taalafhankelijke gegevens voor beheer-applicatie; T10F ;Aanmaken DMC,DMA,DMS en DMQ voor het codebestand;DMC,DMA,DMS en/of DMQ aangemaakt of bestaan reeds; T11F ;Er is geen DMC/DMA/DMS gevonden!; T12F ;Aanmaken einddefinitie; T13F ;Update referentieklasse en -grid in DD; T14F ;Aanmaken en compileren klasse; T15F ;Aanmaken grid; T16F ;Aanmaken form; T17F ;Het codebestand ; bestaat reeds. Gelieve opnieuw te proberen.; T18F ;Nummer ; voor codebestand ; T19F ;Opgelet DMQ moet nog opgezet worden!; ; T1D ;Codes;Texten; T2D ;DMC,DMA en DMS kunnen niet aangemaakt worden voor dit codebestand: ;Het nummer komt niet overeen met het nummer in de DMS: ; T3D ;Aanmaken klassedefinitie; T4D ;Aanmaken default properties klassedefinitie; T5D ;Ophalen REF uit de DMC; T6D ;Properties aanmaken voor klassedefinitie:; T7D ;Talen invoegen voor klassedefinitie; T8D ;Beheer-applicatie aanmaken voor de klasse; T9D ;Aanmaken taalafhankelijke gegevens voor beheer-applicatie; T10D ;Aanmaken DMC,DMA,DMS en DMQ voor het codebestand;DMC,DMA,DMS en/of DMQ aangemaakt of bestaan reeds; T11D ;Er is geen DMC/DMA/DMS gevonden!; T12D ;Aanmaken einddefinitie; T13D ;Update referentieklasse en -grid in DD; T14D ;Aanmaken en compileren klasse; T15D ;Aanmaken grid; T16D ;Aanmaken form; T17D ;Het codebestand ; bestaat reeds. Gelieve opnieuw te proberen.; T18D ;Nummer ; voor codebestand ; T19D ;Opgelet DMQ moet nog opgezet worden!; ; T1E ;Codes;Texts; T2E ;DMC,DMA en DMS kunnen niet aangemaakt worden voor dit codebestand: ;Het nummer komt niet overeen met het nummer in de DMS: ; T3E ;Aanmaken klassedefinitie; T4E ;Aanmaken default properties klassedefinitie; T5E ;Ophalen REF uit de DMC; T6E ;Properties aanmaken voor klassedefinitie:; T7E ;Talen invoegen voor klassedefinitie; T8E ;Beheer-applicatie aanmaken voor de klasse; T9E ;Aanmaken taalafhankelijke gegevens voor beheer-applicatie; T10E ;Aanmaken DMC,DMA,DMS en DMQ voor het codebestand;DMC,DMA,DMS en/of DMQ aangemaakt of bestaan reeds; T11E ;Er is geen DMC/DMA/DMS gevonden!; T12E ;Aanmaken einddefinitie; T13E ;Update referentieklasse en -grid in DD; T14E ;Aanmaken en compileren klasse; T15E ;Aanmaken grid; T16E ;Aanmaken form; T17E ;Het codebestand ; bestaat reeds. Gelieve opnieuw te proberen.; T18E ;Nummer ; voor codebestand ; T19E ;Opgelet DMQ moet nog opgezet worden!; ; YZ Q ; SAVEKL(DDID,SWNIEUW,DMS,MVNED,MVFRA,MVDUI,MVENG,QVALUE,CREATEDDP,CREATEKL,CREATEGRID,CREATEFORM,PROPTAB,CODEBES,GROEP) ; Opslaan gegevens voor de klassedefinitie ; Input: ; DDID : Data dict. van de primary key ; SWNIEUW : Nieuw codebestand? 1=ja,0=neen ; DMS : DMS van het codebestand ; MVNED : omschrijving Nederlands meervoud ; MVFRA : omschrijving Frans meervoud ; MVDUI : omschrijving Duits meervoud ; MVENG : omschrijving Engels meervoud ; QVALUE ; ingegeven Q-waarde ; CREATEDDP : Einddef aanmaken? 1=ja,0=neen ; CREATEKL : Klasse aanmaken en compileren? 1=ja,0=neen ; CREATEGRID : Grid aanmaken? 1=ja,0=neen ; CREATEFORM : Form aanmaken? 1=ja,0=neen ; PROPTAB : tabel met de properties van de klasse ; CODEBES : type codebestand of tekstbestand ; GROEP ; intern nummer groep ; S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("DDID,SWNIEUW,DMS,MVNED,MVFRA,MVDUI,MVENG,QVALUE,CREATEDDP,CREATEKL,CREATEGRID,CREATEFORM,PROPTAB,CODEBES,GROEP") ; S OK=1 ; W !,$P($T(@("T3"_QT)),U,2) ; Klassenaam = DMS zonder punten en enkel de 1e letter een hoofdletter SAVEKLA S KLNAAM=$$DP^cABVBD1($$LC^cAFA1(DMS)) S $P(TAB(1),D,1)=KLNAAM ; Interne naam klasse S $P(TAB(1),D,2)=MVNED_$C(13,10)_$$UREF(DMS) ; Interne commentaar S $P(TAB(1),D,3)=GROEP ; Groep (intern nummer CODE.9022) S $P(TAB(1),D,7)=0 ; Type klasse (default 0) ; S $P(TAB(2),D,1)=DMS ; dmDMS S $P(TAB(2),D,2)=KLNAAM_"Id" ; dmUI1 I 'CODEBES S $P(TAB(2),D,6)="102#112#122#132" ; SearchKey1 bij tekstbestand I 'CODEBES S $P(TAB(2),D,7)="101" ; SearchKey2 bij tekstbestand S $P(TAB(2),D,9)=1 ; dmQ49 ; D P^cAN220("DC","","","TAB","") I K="-" X "STOP" S KLUI1=NUI1 ; W !,$P($T(@("T4"_QT)),U,2) SAVEKLB D CREDEF^cABVBK1(KLUI1,DDID) ; S TAALTAB("N")=MVNED,TAALTAB("F")=MVFRA,TAALTAB("D")=MVDUI,TAALTAB("E")=MVENG ; per taal een DDC-item aanmaken voor DC.TAAL S OK=$$TAAL(.TAALTAB,KLUI1,GROEP) ; ; opzetten van de standaard properties voor codebestanden S OK=$$PROPS(KLUI1,.PROPTAB) ; ; opzetten applicatie voor codebestanden (enkel voor codebestanden) I CODEBES S OK=$$APPL(KLUI1,.TAALTAB) ; SAVEKLC I 'CREATEDDP G SAVEKLZ ; aanmaken einddefinitie W !,$P($T(@("T12"_QT)),U,2) S OK=$$BUILD^cABVBP2(KLUI1,"") I 'OK G SAVEKLZ ; SAVEKLD I 'CREATEKL G SAVEKLZ ; aanmaken klasse W !,$P($T(@("T14"_QT)),U,2) S OK=$$BUILD^cABVBP3(QVALUE,KLUI1,1) I 'OK G SAVEKLZ ; SAVEKLE I 'CREATEGRID G SAVEKLY ; aanmaken grid W !,$P($T(@("T15"_QT)),U,2) ; tabel met aanpassingen meegeven : omschrijvingen van de grid anders verkeerd S OVERWR(105)=MVENG S OVERWR(106)=MVNED S OVERWR(107)=MVFRA S OVERWR(108)=MVDUI ; S OK=$$MKGRID^cABVBP14(KLUI1,.OVERWR,"","") I 'OK G SAVEKLZ ; ; link leggen met referentieklasse en -grid SAVEKLY S OK=$$REFKLGR(DDID,KLUI1,DMS,CREATEGRID,GROEP) I 'OK G SAVEKLZ ; ; aanmaken form I 'CREATEFORM G SAVEKLZ W !,$P($T(@("T16"_QT)),U,2) S OK=$$MKFORM^cABVBP15("",KLUI1) ; ; waarschuwing tonen ivm DMQ I 'SWNIEUW W !,$P($T(@("T19"_QT)),U,2) ; SAVEKLZ Q OK ; UREF(DMS,SWTST) ; ophalen Ref uit de DMC op basis van de DMS N OUT,UQC,USC S $ZT="TRAP^cAN000" S OUT="" I '$G(SWTST) W !,$P($T(@("T5"_QT)),U,2) ; als er geen UQC of USC bestaat (dus geen DMC), dan kan er geen klassedef worden aangemaakt D DMS^cAN000("UQC","USC",DMS,1) I '$L(UQC)!'$L(USC) G UREFZ S OUT=^DMC(UQC,USC,"DATA","REF") I '$G(SWTST) W !,"Ref = "_OUT UREFZ Q OUT ; TAAL(TAALTAB,UI1,GROEP) ; per taal een DDC-item aanmaken voor DC.TAAL ; Input: ; TAALTAB : tabel met 4 beschrijvingen ; UI1 : UI1 van de items ; GROEP : intern nummer groep N L,TAB,K,OK S $ZT="TRAP^cAN000" W !,$P($T(@("T7"_QT)),U,2) S L="" TAALA F S L=$O(TAALTAB(L)) Q:'$L(L) D . S $P(TAB(1),D,1)=UI1 ; UI1 van de klasse . S $P(TAB(1),D,2)=L ; Taalcode . S BIN=$F("NFDE",L)-2*10+102 . S $P(TAB(1),D,3)=L_"."_$$DP^cABVBD1($$SIG^cAFA1("CODE.9022",GROEP,BIN)) ; Externe naam klasse . S $P(TAB(1),D,4)=$$DP^cABVBD1(TAALTAB(L)) ; Omschrijving klasse . D P^cAN220("DC.TAAL","",UI1_" "_L,"TAB","") I K="-" X "STOP" S OK=1 TAALZ Q OK ; PROPS(UI1,PROPTAB) ; opzetten van de standaard properties voor codebestanden ; Input: ; UI1 : UI1 van de klasse in DDC ; PROPTAB : tabel met alle properties N P,TAB,K,VNR,OK S $ZT="TRAP^cAN000" W !,$P($T(@("T6"_QT)),U,2) S P="" PROPSA F S P=$O(PROPTAB(P)) Q:'$L(P) D . W !,"B"_P . ; het volgnummer ophalen . S VNR=$P($$NR^cABVBK10(Q,"DC.PROP",UI1,"")," ",2) . S $P(TAB(1),D,1)=UI1 ; UI1 van de klasse . S $P(TAB(1),D,2)=VNR ; volgnummer . S $P(TAB(1),D,3)="B"_P ; Interne naam (B-index) . S $P(TAB(1),D,5)=$P(PROPTAB(P),D,1) ; UI1 van DDD . S $P(TAB(1),D,6)=0 ; Berekend . S $P(TAB(1),D,9)=0 ; Transient . S $P(TAB(1),D,10)=P ; B-index . S $P(TAB(1),D,11)=0 ; Overschrijf DD . S $P(TAB(1),D,14)=$P(PROPTAB(P),D,2) ; Verplicht . D P^cAN220("DC.PROP","",UI1_" "_VNR,"TAB","") I K="-" X "STOP" S OK=1 PROPSZ Q OK ; APPL(UI1,TAALTAB) ; opzetten applicatie voor codebestanden ; Input: ; UI1 : UI1 van de klasse in DDC ; TAALTAB : tabel met 4 beschrijvingen (meervoud) N TAB,K,VNR,L,APPLUI1,OK S $ZT="TRAP^cAN000" W !,$P($T(@("T8"_QT)),U,2) ; ophalen volgnummer APPLA S VNR=$P($$NR^cABVBK10(Q,"DC.APPL",UI1,"")," ",2) S $P(TAB(1),D,1)=UI1 ; UI1 van de klasse S $P(TAB(1),D,2)=VNR ; volgnummer S $P(TAB(1),D,3)=0 ; interne naam S $P(TAB(1),D,5)="C:/program files/DataM.NET/Bin/" ; Map DLL S $P(TAB(1),D,6)="DMCODES0001" ; Naam DLL S $P(TAB(1),D,7)="CodeForm" ; Naam form S $P(TAB(1),D,8)="C:/program files/DataM.NET/Bin/" ; Map EXE S $P(TAB(1),D,9)="DMCODES0001E.exe" ; Naam EXE S $P(TAB(1),D,10)=1 ; RMK beschikbaar ; APPLB S $P(TAB(2),D,1)="R" ; Type : vast R S $P(TAB(2),D,6)=0 ; S $P(TAB(3),D,1)="W" ; Type : vast W S $P(TAB(3),D,6)=0 ; S $P(TAB(4),D,1)="O" ; Type : vast O S $P(TAB(4),D,6)=0 ; S $P(TAB(5),D,1)="V" ; Type : vast V S $P(TAB(5),D,6)=0 ; S $P(TAB(6),D,1)="Z" ; Type : vast Z S $P(TAB(6),D,2)="C:/program files/DataM.NET/Bin/" ; Map DLL S $P(TAB(6),D,3)="DMCODES0001" ; Naam DLL S $P(TAB(6),D,4)="CodeGrid" ; Naam form S $P(TAB(6),D,5)=1 ; RMK beschikbaar S $P(TAB(6),D,6)=1 ; Overschrijf default uit node 0 ; APPLC D P^cAN220("DC.APPL","",UI1_" "_VNR,"TAB","") I K="-" X "STOP" ; S OK=$$TAPPL(UI1,VNR,.TAALTAB) ; S OK=1 APPLZ Q OK ; TAPPL(UI1,VNR,TAALTAB) ; per taal een DDC-item aanmaken voor DC.APPL.TAAL ; Input: ; TAALTAB : tabel met 4 beschrijvingen ; UI1 : UI1 van de items ; VNR : volgnummer N L,TAB,K,OK S $ZT="TRAP^cAN000" W !,$P($T(@("T9"_QT)),U,2) S L="" S APPLUI1=UI1_" "_VNR TAPPLA F S L=$O(TAALTAB(L)) Q:'$L(L) D . S $P(TAB(1),D,1)=APPLUI1 ; UI1 . S $P(TAB(1),D,2)=L ; Taalcode . S $P(TAB(1),D,3)=TAALTAB(L) ; Titel applicatie . D P^cAN220("DC.APPL.TAAL","",APPLUI1_" "_L,"TAB","") I K="-" X "STOP" S OK=1 TAPPLZ Q OK ; SAVEDMX(SWNIEUW,DMS,BEHEER,NUMMER,LENCODE,LENOMS,CODEUNIEK,MVNED,MVFRA,MVDUI,MVENG) ; aanmaken DMS,DMC en DMA voor nieuw codebestand ; Input: ; SWNIEUW : Nieuw codebestand? 1=ja,0=neen ; DMS : DMS van de klasse ; BEHEER : type bestand ; NUMMER : nummer bestand ; LENCODE : lengte van de code ; LENOMS : lengte van de omschrijving ; CODEUNIEK : code al dan niet uniek ; MVNED : omschrijving Nederlands meervoud ; MVFRA : omschrijving Frans meervoud ; MVDUI : omschrijving Duits meervoud ; MVENG : omschrijving Engels meervoud N TAB,K,OK,UREF S $ZT="TRAP^cAN000" S OK=1 ; ; DMS moet van de vorm CODE.XXXX zijn en XXXX moet gelijk zijn aan het NUMMER SAVEDMXA I $P($G(DMS),".",1)'="CODE",$P($G(DMS),".",1)'="TEXT" W !,$P($T(@("T2"_QT)),U,2)_DMS G SAVEDMXY ; voor een bestaand codebestand I 'SWNIEUW G SAVEDMXY ; voor een nieuw codebestand moet het nummer overeenkomen met die in de DMS I $P($G(DMS),".",2)'=NUMMER W !,$P($T(@("T2"_QT)),U,2)_DMS,!,$P($T(@("T2"_QT)),U,3)_DMS G SAVEDMXY ; het codebestand bestaat reeds I $L($$SIGN^cAFA1($P(DMS,".")_".VV",NUMMER,0)) S OK=0_D_$P($T(@("T17"_QT)),U,2)_DMS_$P($T(@("T17"_QT)),U,3) W !,$P(OK,D,2) G SAVEDMXZ ; locken van het nummer S UREF=$NA(@$zr,3) S OK=$$PLUS^cANLOCK(UREF,1,$P($T(@("T18"_QT)),U,2)_NUMMER_$P($T(@("T18"_QT)),U,3)_DMS,0,2) I 'OK W !,$P(OK,D,2) G SAVEDMXZ ; W !,$P($T(@("T10"_QT)),U,2) ; SAVEDMXB S $P(TAB(1),D,1)=NUMMER ; Nummer codebestand S $P(TAB(1),D,2)=MVNED ; Omschrijving Nederlands S $P(TAB(1),D,3)=LENCODE ; Lengte code S $P(TAB(1),D,4)=LENOMS ; Lengte omschrijving S $P(TAB(1),D,6)=CODEUNIEK ; Code uniek S $P(TAB(1),D,7)=BEHEER ; Type bestand S $P(TAB(1),D,12)=MVFRA ; Omschrijving Frans S $P(TAB(1),D,22)=MVDUI ; Omschrijving Duits S $P(TAB(1),D,32)=MVENG ; Omschrijving Engels ; SAVEDMXE D P^cAN220($P(DMS,".")_".VV","","","TAB","") I K="-" X "STOP" ; ; unlocken van het nummer L -@UREF ; als er geen UQC of USC bestaat (dus geen DMC), dan kan er geen klassedef worden aangemaakt SAVEDMXY I '$L($$UREF(DMS,1)) S OK=0_D_$P($T(@("T11"_QT)),U,2) W !,$P(OK,D,2) ; I OK W !,$P($T(@("T10"_QT)),U,3) ; SAVEDMXZ Q OK ; REFKLGR(KEYUI1,KLUI1,DMS,CREATEGRID,GROEP) ; referentieklasse en -grid invullen voor het codebestand ; Input: ; KEYUI1 : UI1 uit de DD van de sleutel van het codebestand ; KLUI1 : UI1 van de aangemaakte klasse ; DMS : DMS van het codebestand ; CREATEGRID : grid aangemaakt of niet ; GROEP : intern nummer groep ; W !,$P($T(@("T13"_QT)),U,2) S OK=1 ; referentieklasse ingeven S TAB(212)=KLUI1 ; referentiegrid ingeven ; ophalen groepscode en omzetten naar hoofdletters I CREATEGRID S TAB(213)=$$UC^cAFA1($$SIG^cAFA1("CODE.9022",GROEP,101))_"."_$TR(DMS,".","") ; D B^cAN220("DD","",KEYUI1,"TAB") I K="-" X "STOP" REFKLGRZ Q OK ; ZZ ; 29.08.07 - 10 u 22 * V8.09