cABVBP14 ;Einddefinitie: aanmaken grid ;cABVBP14 ; T1 ;Per ; T2 ;Wijkt af:; T3 ;Wijkt af maar wordt NIET gewijzigd:; T4 ;Aangemaakt.; T5 ;FOUT! ; T6 ;fout bij wijzigen; T7 ;fout bij openen; T8 ;fout bij verwijderen; T9 ;Verwijderd.; T10 ;Grid ; ; T1F ;Par ; ; T1D ;Per ; ; T1E ;By ; ; YZ Q ; DOTNET(SORTKEY) S $ZT="^dmERROR" ; ; Indien geen definitie ingevuld, gewoon opslaan DOTNET1 I '$L(..Definition) D ..%Save() G DOTNETZ ; ; Grid automatisch aanmaken DOTNET2 S UTILI=0 S Q=..Q,QT=..QT,QU=..QU,Q(49)=..Q49 ; Standaard variabelen S OVERWR(101)=..GridId S OVERWR(102)=..ClassId I $E(..GridId,1,5)'="UtIli" G DOTNET3 S UI1="UTILI.ZZZZZZZZ",NR=1000 S UI1=$O(^VBN(0,"GRID",UI1),-1) I $P(UI1,".")="UTILI" S NR=$P(UI1,".",2)+1 S OVERWR(101)="UTILI."_NR S KLASSE=..Definition.B103.B101 S KLASSE=KLASSE_$S($L(KLASSE):".",1:"")_..Definition.B101 S OVERWR(102)=KLASSE S UTILI=1 ; DOTNET3 S OVERWR(105)=..CaptionEnglish S OVERWR(106)=..CaptionDutch S OVERWR(107)=..CaptionFrench S OVERWR(108)=..CaptionGerman S OVERWR(111)=..NbrRecords S OVERWR(113)=..ButtonOutOfUse S OVERWR(115)=..ShowHeader ; S ^TEMP(boot,$J+.99)="dotNET" ; Switch opzetten (zie MKCOL) S K=$$MKGRID(..Definition.DPId,.OVERWR,$G(SORTKEY),UTILI) K ^TEMP(boot,$J+.99) ; Switch verwijderen ; DOTNETZ Q K ; ; MKGRID(DDP,OVERWR,SORTKEY,UTILI,UPD,REF) ; Aanmaken grid uit einddefinitie ; Input: DDP: Intern nummer einddef. klasse ; OVERWR: tabel met aanpassingen ; UPD: 0 of "" = nieuwe grid ; 1 = update ; 2 = update + nieuwe kolommen aanmaken ; 3 = verschillen uitlijsten ; 4 = vrije velden aanpassen + nieuwe ; ; -! OPGELET !- ; - indien UPD>0 moet OVERWR(101) het GridId bevatten ; - bij een update worden enkel de kolommen geupdated, ; nooit de grid of de tab(s) ; ; REF: global met kolommen die moeten geupdated worden ; Output: 1: OK ; 0: NOK N @$$INITVAR^cAFVBA01("DDP,OVERWR,SORTKEY,UTILI,UPD,REF") S $ZT="^dmERROR" ; S UPD=$G(UPD) I 'UPD G MKGRID1 ; Nieuwe grid I '$D(OVERWR(101)) S K="-" G MKGRIDZ ; GridId niet doorgegeven S $P(GRID(1),D)=OVERWR(101) G MKGRID6 ; ; Definities ophalen MKGRID1 S DEF(1)=$$SIGN^cAFA1("DP",DDP,0) I '$L(DEF(1)) G MKGRIDZ S DEF(2)=$$SIGN^cAFA1("DP",DDP,1) S DPT("N")=$$SIG^cAFA1("DP.TAAL",DDP_" N",104) S DPT("F")=$$SIG^cAFA1("DP.TAAL",DDP_" F",104) S DPT("D")=$$SIG^cAFA1("DP.TAAL",DDP_" D",104) S DPT("E")=$$SIG^cAFA1("DP.TAAL",DDP_" E",104) ; ; Node 0 MKGRID2 S KLASSE=$$SIG^cAFA1("CODE.9022",$P(DEF(1),D,3),101) S KLASSE=KLASSE_$S($L(KLASSE):".",1:"")_$P(DEF(1),D) S $P(GRID(1),D)=$$UC^cAFA1(KLASSE) ; Gridnaam S $P(GRID(1),D,2)=KLASSE ; Klassenaam S $P(GRID(1),D,5)=DPT("E") ; Omschrijving Engels S $P(GRID(1),D,6)=DPT("N") ; Omschrijving Nederlands S $P(GRID(1),D,7)=DPT("F") ; Omschrijving Frans S $P(GRID(1),D,8)=DPT("D") ; Omschrijving Duits S $P(GRID(1),D,10)=1 ; Inputwaarden bewaren S $P(GRID(1),D,11)="" ; Aantal op te halen records S $P(GRID(1),D,12)=1 ; Overschrijf-mode S $P(GRID(1),D,13)=1 ; Operationeel-menu S $P(GRID(1),D,15)=0 ; Hoofding S $P(GRID(1),D,21)=DDP ; Einddefinitie S $P(GRID(1),D,22)=1 ; Vrije velden ; ; Overschrijf defaults MKGRID3 I $D(OVERWR) S i="" F S i=$O(OVERWR(i)) Q:'$L(i) S $P(GRID(1),D,i-100)=OVERWR(i) ; ; Grid aanmaken MKGRID4 W !,!,$P($T(@("T10")),U,2)_$P(GRID(1),D) D P^cAN220("GRIDN","VB",$P(GRID(1),D),"GRID","") I $L(K) G MKGRIDZ ; ; Tab aanmaken MKGRID5 S K=$$MKTAB($P(GRID(1),D)_" "_0,DDP,$G(SORTKEY),$G(UTILI)) G MKGRIDZ ; ; Tabs updaten MKGRID6 I UPD W !,!,$P($T(@("T10")),U,2)_$P(GRID(1),D) D DMS^cAN000("UQC","USC","GRIDN.TAB",1) I '$L(UQC)!'$L(USC) S K="-" G MKGRIDZ S UREF=^DMC(UQC,USC,"DATA","REF") S UI1=$P(GRID(1),D) F S UI1=$O(@UREF) Q:$P(UI1," ")'=$P(GRID(1),D) D . S K=$$MKTAB(UI1,DDP,"","",UPD,$G(REF)) ; MKGRIDZ Q $S($L(K):"0",1:"1"_D_$P(GRID(1),D)) ; MKTAB(GRIDTAB,DDP,SORTKEY,UTILI,UPD,REF) N @$$INITVAR^cAFVBA01("GRIDTAB,DDP,SORTKEY,UTILI,UPD,REF") S $ZT="^dmERROR" ; ; Definities ophalen MKTAB1 D DMS^cAN000("UQC","USC","DP.PROP",1) I '$L(UQC)!'$L(USC) G MKTABZ S UREF=^DMC(UQC,USC,"DATA","REF") S K="",SORTB="" S:'$L($G(SORTKEY)) SORTKEY=1 ; S UPD=$G(UPD),REF=$G(REF) I UPD D G:$L(K) MKTABZ G MKTAB5 ; Update . D DMS^cAN000("UQC","USC","GRIDN.TAB.COL",1) I '$L(UQC)!'$L(USC) S K="-" . S CUREF=^DMC(UQC,USC,"DATA","REF") ; ; Node 0 MKTAB2 S $P(TAB(1),D)=$P(GRIDTAB," ") ; Grid S $P(TAB(1),D,2)=$P(GRIDTAB," ",2) S:'$L($P(TAB(1),D,2)) $P(TAB(1),D,2)=" " ; Initialen S $P(TAB(1),D,3)=$P(GRIDTAB," ",$L(GRIDTAB," ")) ; Volgnummer tab S $P(TAB(1),D,4)="1" ; Standaard I $G(UTILI) D G MKTAB2B . F i=5:1:8 S $P(TAB(1),D,i)="Listing" S UI1=DDP_" " F S UI1=$O(@UREF) Q:($P(UI1," ")'=DDP) S N0=^(UI1,0) I ($P(N0,D,30)'=2),($P(N0,D,13)=SORTKEY) S SORTB=$P(N0,D,10) Q ; B-index bijhouden I $L(SORTB) S UI1=DDP_" " F S UI1=$O(@UREF) Q:$P(UI1," ")'=DDP D . S N0=^(UI1,0) I $P(N0,D,30)=2 Q ; Verwijderd . I $P(N0,D,13)=SORTKEY Q ; Zoeksleutel . I $P(N0,D,10)'=SORTB Q . S DPT("N")=$$SIG^cAFA1("DP.PROP.TAAL",UI1_" N",211) . S DPT("F")=$$SIG^cAFA1("DP.PROP.TAAL",UI1_" F",211) . S DPT("D")=$$SIG^cAFA1("DP.PROP.TAAL",UI1_" D",211) . S DPT("E")=$$SIG^cAFA1("DP.PROP.TAAL",UI1_" E",211) . S i="" F S i=$O(DPT(i)) Q:'$L(i) I $L(DPT(i)),(i'="E"),$$LC^cAFA1($E(DPT(i),2,$L(DPT(i))))=$E(DPT(i),2,$L(DPT(i))) S DPT(i)=$$LC^cAFA1(DPT(i)) ; Enkel in het Engels initcap . S i="" F S i=$O(DPT(i)) Q:'$L(i) I $L(DPT(i)) S DPT(i)=$P($T(@("T1"_$S(i="N":"",1:i))),U,2)_DPT(i) . S $P(TAB(1),D,5)=DPT("E"),$P(TAB(1),D,6)=DPT("N"),$P(TAB(1),D,7)=DPT("F"),$P(TAB(1),D,8)=DPT("D") ; Omschrijvingen MKTAB2B S $P(TAB(1),D,9)="" ; Data-niveau S $P(TAB(1),D,10)=0 ; Visuele positie S $P(TAB(1),D,11)="" ; Originele tab S $P(TAB(1),D,12)="" ; Beschikbaar voor alle gebruikers (enkel voor usertabs) ; ; Node 1 MKTAB3 S $P(TAB(2),D)=1 ; Dynamische queries F i=2:1:5 S $P(TAB(2),D,i)="" ; Defaults en distinct ; ; Tab aanmaken MKTAB4 D P^cAN220("GRIDN.TAB","VB",GRIDTAB,"TAB","") I $L(K) G MKTABZ ; ; MKTAB5 ; Laat grid vrije velden toe? S VVOK=$$SIG^cAFA1("GRIDN",$P(GRIDTAB," "),122) ; Is er minstens één actief vrij veld? S ACTVV=0 I 'VVOK!'$L(DDP) G MKTAB55 S UI1=DDP_" " F S UI1=$O(@UREF) Q:$P(UI1," ")'=DDP D Q:ACTVV . S N0=^(UI1,0),N1=^(1) I $P(N0,D,30)=2 Q ; Verwijderd . I '$$ISVV^cABVBP17($P(N0,D,5),1) Q ; Geen vrij veld . ;S ACTVV=$$SIG^cAFA1($S($G(UPD)=5:"DC.PROP",1:"DP.PROP"),$P(N0,D,33),111) ; Actief vrij veld . S ACTVV=$P(N0,D,11) ; Actief vrij veld ; ; Kolommen (via grid) MKTAB55 I UPD S UI1=GRIDTAB_" " F S UI1=$O(@CUREF) Q:$P(UI1," ",1,4)'=GRIDTAB D Q:$L(K) . S N0=^(UI1,0) I $P(N0,D,30)=2 Q ; Verwijderd . I $L(REF),'$D(@REF@($P(GRIDTAB," "),UI1)) Q ; Komt niet voor in tabel . I UPD=4 I '$$ISVV^cABVBP17($P(N0,D,45)) Q ; Is geen vrij veld . I $$ISVV^cABVBP17($P(N0,D,45)) I 'ACTVV Q ; Er zijn geen actieve vrije velden = niet aanpassen (worden later verwijderd) . S K=$$MKCOL(GRIDTAB,$P(N0,D,47),"","",UI1,UPD) I $L(K) G MKTABZ ; ; Kolommen (via DDP) MKTAB6 I $L(DDP),((UPD'=1)),'$L(REF) S UI1=DDP_" " F S UI1=$O(@UREF) Q:$P(UI1," ")'=DDP D Q:$L(K) . S N0=^(UI1,0),N1=^(1) I $P(N0,D,30)=2 Q ; Verwijderd . ;GM 25.04.07 - Klasse- en grid-referentie uitblanken voor een subcript-property . I $P(N0,D,7) S $P(N1,D,12,13)=D . I UPD>1 I $L($$FNDCOL(GRIDTAB,$P(N0,D,3),$G(CUREF))) Q ; Bestaat reeds . I $L($P(N0,D,13)),($L($P(N0,D,3),"#")=1) Q ; Zoeksleutel (en niet Bxxx#Bxxx#...) . I UTILI I $P(N0,D,7)'=3 Q . ; Company wordt standaard niet mee opgenomen in de grid . I ($P(N0,D,3)="B149"),($P(N0,D,5)=10054) Q . ;I UPD=4 I '$$ISVV^cABVBP17($P(N0,D,5),1)!($P(N1,D,9)) Q ; Is geen actief vrij veld . ;I UPD'=4,$$ISVV^cABVBP17($P(N0,D,5),1) Q ; Is vrij veld (bij gewone update\nieuw niet meenemen) . S VV=$$ISVV^cABVBP17($P(N0,D,5),1) I VV,'ACTVV Q ; Geen enkel actief vrij veld of grid supporteert geen vrije velden . I UPD=4,('VV) Q ; Is geen vrij veld . ; Referenties: zoeksleutel 1 en 2 opzetten . I $L($P(N1,D,12)) D Q .. N UI1,ZN0,ZN1 .. S UI1=$P(N1,D,12)_" " F S UI1=$O(@UREF) Q:$P(UI1," ")'=$P(N1,D,12) D ... S ZN0=^(UI1,0),ZN1=^(1) I $P(ZN0,D,30)=2 Q ; Verwijderd ... I $L($P(ZN0,D,13)) S K=$$MKCOL(GRIDTAB,$P(N0,D)_" "_$P(N0,D,2)_"#"_UI1) . ; Checken of er geen berekend veld voor bestaat . I $E($P(N0,D,3))'="C",$L($$UI1^cAFA1("DP.PROP","M1",DDP,"C"_$E($P(N0,D,3),2,$L($P(N0,D,3))),"")) Q . S K=$$MKCOL(GRIDTAB,UI1,($P(N0,D,10)=SORTB)) I $L(K) G MKTABZ ; MKTAB7 ; Inactieve vrije velden verwijderen ;I UPD'=4 G MKTAB8 ;S UI1=GRIDTAB_" ",DEL="" F S UI1=$O(@CUREF) Q:$P(UI1," ",1,4)'=GRIDTAB D I DEL="X" S DEL="" Q ;. S N0=^(UI1,0) I $P(N0,D,30)=2 Q ; Verwijderd ;. I '$$ISVV^cABVBP17($P(N0,D,45)) Q ; Is geen vrij veld ;. I '$$SIG^cAFA1("DP.PROP",$P(N0,D,45),209) S DEL="X" Q ; Is actief ;. S DEL=DEL_UI1_D ;F i=1:1:$L(DEL,D) I $L($P(DEL,D,i)) D X^cAN220("GRIDN.TAB.COL","VB",$P(DEL,D,i)) I $L(K) Q ; I (UPD'=4)!$L(REF)!$G(ACTVV) G MKTAB8 S UI1=GRIDTAB_" ",DEL="" F S UI1=$O(@CUREF) Q:$P(UI1," ",1,4)'=GRIDTAB D Q:$L(K) . S N0=^(UI1,0) I $P(N0,D,30)=2 Q ; Verwijderd . I '$$ISVV^cABVBP17($P(N0,D,45)) Q ; Is geen vrij veld . D X^cAN220("GRIDN.TAB.COL","VB",UI1) I $L(K) Q . D WARN(UI1,"","","","","",8,1) ; ; Operationeel \ logging kolommen MKTAB8 I UPD G MKTABZ I $$SIG^cAFA1("GRIDN",$P(GRIDTAB," "),113)'=1 G MKTABZ D CREATOP^cABVB050(Q,QU,QT,GRIDTAB) ; MKTABZ Q $G(K) ; MKCOL(GRIDTAB,PROPIDS,SORT,OVERWR,COLID,UPD) N @$$INITVAR^cAFVBA01("GRIDTAB,PROPIDS,SORT,OVERWR,COLID,UPD") S $ZT="^dmERROR" ; ; Variabelen opzetten MKCOL1 S K="-",(LOCKUI1,ERR,DEL)="",UPD=$G(UPD) D DMS^cAN000("UQC","USC","GRIDN.TAB.COL",1) I '$L(UQC)!'$L(USC) G MKCOLZ S UREF=^DMC(UQC,USC,"DATA","REF") ; ; Definities ophalen MKCOL2 S PROPID=$P(PROPIDS,"#",$L(PROPIDS,"#")),PROPIDF=$P(PROPIDS,"#") S DEF(1)=$$SIGN^cAFA1("DP.PROP",PROPID,0) I '$L(DEF(1)) G MKCOLZ S DEF(2)=$$SIGN^cAFA1("DP.PROP",PROPID,1) S DPT("N")=$$SIGN^cAFA1("DP.PROP.TAAL",PROPID_" N",1) S DPT("F")=$$SIGN^cAFA1("DP.PROP.TAAL",PROPID_" F",1) S DPT("D")=$$SIGN^cAFA1("DP.PROP.TAAL",PROPID_" D",1) S DPT("E")=$$SIGN^cAFA1("DP.PROP.TAAL",PROPID_" E",1) I $L(PROPIDS,"#")>1 D . S DESC=$$OMS^cABVBA01(0,PROPIDS,.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) S DP(1)=$$SIGN^cAFA1("DP",$P(DEF(2),D,12),0),ISID=($P(DEF(1),D,7)=3) ; ; Node 1 MKCOL3 S $P(COL(1),D)=$P(GRIDTAB," ") ; Grid S $P(COL(1),D,2)=$P(GRIDTAB," ",2) S:'$L($P(COL(1),D,2)) $P(COL(1),D,2)=" " ; Initialen S $P(COL(1),D,3)=$P(GRIDTAB," ",$L(GRIDTAB," ")) ; Volgnummer tab S VNR=$$COLNR^cABVB01($P(COL(1),D),$P(COL(1),D,2),$P(COL(1),D,3),,1,$$ISVV^cABVBP17($P(PROPIDS,"#"))) I $L($G(COLID)) S VNR=$P(COLID," ",$L(COLID," ")) S $P(COL(1),D,4)=VNR ; Volgnummer kolom S $P(COL(1),D,5)=$S(ISID:"ID",1:$P(DPT("E"),D,11)) ; Engelse omschrijving S $P(COL(1),D,6)=$S(ISID:"ID",1:$P(DPT("N"),D,11)) ; Nederlandse omschrijving S $P(COL(1),D,7)=$S(ISID:"ID",1:$P(DPT("F"),D,11)) ; Franse omschrijving S $P(COL(1),D,8)=$S(ISID:"ID",1:$P(DPT("D"),D,11)) ; Duits omschrijving ;S LOMS=0,TXT="" F i=5:1:8 I $L($P(COL(1),D,i))>LOMS S LOMS=$L($P(COL(1),D,i)),TXT=$P(COL(1),D,i) S $P(COL(1),D,10)=0 ; Focus op deze kolom S $P(COL(1),D,11)=$$NEXTCNR^cABVB050(GRIDTAB,111) ; Visuele positie S DTYPE=$$SIG^cAFA1("CODE.9020",$P(DEF(2),D),101) ; Datatype S LINPUT=$P(DEF(2),D,3) I $P(DEF(1),D,6) S LINPUT=$P(DEF(2),D,6) ; Breedte (indien berekend : lengte output) S TWIP=$$TWIP^cABVB02(LINPUT,DTYPE) ; Aantal TWIPS ook laten berkenen door dotNET. ; Indien dit programma is aangeroepen via dotNET-programma, wordt de ^TEMP-global ; opgezet via het opvangen van de Caché-output. I $G(^TEMP(boot,$J+.99))="dotNET" D . K ^TEMP(boot,$J+.01) F i=5:1:8 W !,"COL "_VNR_":"_$P(COL(1),D,i)_":"_$G(SORT) . I $G(^TEMP(boot,$J+.01))>TWIP S TWIP=^TEMP(boot,$J+.01) . K ^TEMP(boot,$J+.01) S $P(COL(1),D,12)=TWIP ; Breedte S $P(COL(1),D,13)=1 ; Input mogelijk in QBE? S $P(COL(1),D,14)="" ; Default waarde in QBE S $P(COL(1),D,15)=($P(DEF(1),D,13)'=2)&('$L($P(DEF(1),D,7)))&('$$ISVV^cABVBP17($P(PROPIDS,"#"))) ; Zichtbaar (indien niet zoeksleutel 2 en geen ID (subscript)) en geen Vrij Veld S $P(COL(1),D,16)=ISID ; ID? S $P(COL(1),D,17)=0 ; Oplopend gesorteerd S $P(COL(1),D,18)=$G(SORT) ; Gesorteerd bij opstarten? S $P(COL(1),D,19)=$$NEXTCNR^cABVB050(GRIDTAB,119) ; Parameter S $P(COL(1),D,20)=$S(ISID:"",1:$P(DPT("E"),D,12)) ; Engelse tooltip S $P(COL(1),D,21)=$P(DEF(2),D,10) ; Uitlijning S $P(COL(1),D,22)=0 ; Bevat niveau S $P(COL(1),D,23)=DTYPE S $P(COL(1),D,24)=$S(ISID:"",1:$P(DPT("N"),D,12)) ; Nederlandse tooltip S $P(COL(1),D,25)=$S(ISID:"",1:$P(DPT("F"),D,12)) ; Franse tooltip S $P(COL(1),D,26)=$S(ISID:"",1:$P(DPT("D"),D,12)) ; Duitse tooltip S DEC=+$P(DEF(2),D,4) ; Decimalen S FORMAT=+$P(DEF(2),D,11) ; Formaat S $P(COL(1),D,27)=DEC_"#"_FORMAT_"#"_"0" ; Formaat S $P(COL(1),D,30)=$$NVT(PROPIDS) ; Niet van toepassing S $P(COL(1),D,31)=0 ; Wijzigbaar S $P(COL(1),D,32)=0 ; Verplicht F i=33:1:35 S $P(COL(1),D,i)="" ; Velden ivm wijzigbare kolom F i=36:1:37 S $P(COL(1),D,i)=0 ; Velden ivm wijzigbare kolom S $P(COL(1),D,38)='$P(COL(1),D,16) ; Beheerbaar I $$ISVV^cABVBP17($P(PROPIDS,"#")) S $P(COL(1),D,38)=$$SIG^cAFA1("DP.PROP",$P(PROPIDS,"#"),111) S $P(COL(1),D,39)=0 ; Vaste kolom S $P(COL(1),D,40)=0 ; Sorteervolgorde S $P(COL(1),D,41)=$P(DEF(2),D,13) ; Zoekgrid S KLASSE=$$SIG^cAFA1("CODE.9022",$P(DP(1),D,3),101) S KLASSE=KLASSE_$S($L(KLASSE):".",1:"")_$P(DP(1),D) S $P(COL(1),D,42)=KLASSE ; Zoekklasse F i=43:1:44 S $P(COL(1),D,i)=0 ; Velden ivm codecell S $P(COL(1),D,45)=$S(ISID:"",1:PROPIDF) ; Link met einddefinitie S $P(COL(1),D,46)=0 ; Overschrijf definitie S $P(COL(1),D,47)=PROPIDS ; Doorgeschakelde definities S $P(COL(1),D,48)="" ; Laatste definitie vd doorgeschakelde def. (wordt via tool opgezet) ; ; Node 1 MKCOL4 S $P(COL(2),D)=$S(ISID:"ID",1:$P($$SQLKOL^cABVBP5("DP",PROPIDS,PROPID),D,2)) ; SQL-kolom S $P(COL(2),D,2)=ISID!$P(COL(1),D,15) ; In select? S $P(COL(2),D,3)="" ; Gewicht in where-statement S DEFOP=$$DTYPPROP^cABVB050($P(DEF(2),D)) S $P(COL(2),D,4)=$P(DEFOP,D) ; Default operator S $P(COL(2),D,5)=$P(DEFOP,D,2) ; Default functie S $P(COL(2),D,11)=$P(DEFOP,D,3) ; Functie select S $P(COL(2),D,12)=$P(DEFOP,D,4) ; Functie where S $P(COL(2),D,13)=$P(DEFOP,D,5) ; Functie where parameters S $P(COL(2),D,14)=$P(DEFOP,D,6) ; Fucntie order by ; -- Speciaal geval: GridId (steeds zonder functie en '=' als default operator) -- I $$UC^cAFA1($P(COL(2),D))'="GRIDID" G MKCOL5 S $P(COL(2),D,4)="=" F i=5,11:1:14 S $P(COL(2),D,i)="" S $P(COL(1),D,38)=0 ; Niet beheerbaar ; -------------------------------------------------------------------------------- ; ; Node 2 MKCOL5 F i=1:1:6 S $P(COL(3),D,i)="" ; ; Overschrijf defaults MKCOL6 I $D(OVERWR) S i="" F S i=$O(OVERWR(i)) Q:'$L(i) S $P(COL($E(i)),D,i-($E(i)*100))=OVERWR(i) ; ; MKCOL7 ; ********************************************************************** ; Wijzigen I $L($G(COLID)) D I $G(SKIP) G MKCOLY . S COLO(1)=$$SIGN^cAFA1("GRIDN.TAB.COL",COLID,0),COLO(2)=$G(^(1)),COLO(3)=$G(^(2)) . I '$L(COLO(1)) S SKIP=1 Q . I $P(COLO(1),D,46) S SKIP=1 Q ; Niet overschrijven . ; Verwijderen? . I $L($P(COLO(2),D),"->")'=$L($P(COL(2),D),"->") S DEL="1" Q . I $L(PROPIDS,"#")>1 I '$L($$SIG^cAFA1("DP.PROP",$P(PROPIDS,"#"),212)) S DEL=1 Q . I $L(PROPIDS,"#")=1,$$ISVV^cABVBP17(PROPID),$L($$SIG^cAFA1("DP.PROP",PROPID,212)) S DEL="1" Q . ; Wordt gewijzigd . F i=105:1:108,120,121,123:1:127,201,138,130 D .. I i=138,'$$ISVV^cABVBP17($P(PROPIDS,"#")) Q .. S ND=i\100,BI=i#100 .. I $P(COLO(ND),D,BI)=$P(COL(ND),D,BI) Q .. I i=130 I +$P(COLO(ND),D,BI)=+$P(COL(ND),D,BI) Q ; "" = 0 .. D WARN(COLID,$P(COLO(ND),D,BI),$P(COL(ND),D,BI),i,.DMA,.WARN) .. S $P(COLO(ND),D,BI)=$P(COL(ND),D,BI) . ; Wordt niet gewijzigd . F i=204,205,211:1:216 D .. S ND=i\100,BI=i#100 .. I $P(COLO(ND),D,BI)=$P(COL(ND),D,BI) Q .. D WARN(COLID,$P(COLO(ND),D,BI),$P(COL(ND),D,BI),i,.DMA,.WARN,1) . ; Breedte (wordt niet gewijzigd) . I $P(COLO(1),D,12)>$P(COL(1),D,12) D .. D WARN(COLID,$P(COLO(1),D,12),$P(COL(1),D,12),112,.DMA,.WARN,1) . M COL=COLO ; ************************************************************************* ; ; ; Kolom aanmaken ;MKCOL8 S COLUI1=GRIDTAB_" "_VNR ;D P^cAN220("GRIDN.TAB.COL","VB",COLUI1,"COL","") ; MKCOL8 S UI1=$P(COL(1),D)_" "_$P(COL(1),D,2)_" "_$P(COL(1),D,3)_" "_$P(COL(1),D,4) S COLUI1=UI1 I UPD=3 S K="" G:'$D(@UREF) MKCOL89 G MKCOL9 ; Locken S OK=$$PLUS^cANLOCK("^VBN(0,""GRID.TAB.COL"","""_UI1_""")") I 'OK D ERR(2,UI1,$P(OK,D,2),.ERR) G MKCOLY S LOCKUI1=UI1 ; ; -- Verwijderen -- I DEL D G:'$L(K) MKCOL9 I $L(K) D ERR(2,UI1,8,.ERR) G MKCOLY . D X^cAN220("GRIDN.TAB.COL","VB",UI1) I $L(K) Q . D WARN(COLUI1,"","","","",.WARN,7) ; ----------------- ; ; -- Wijzigen -- I $D(@UREF) D D:$L(K) ERR(2,UI1,6,.ERR) G:$L(K) MKCOLY G MKCOL9 ; Wijzigen . K BCOL . F i=1:1:50 S BCOL(100+i)=$P(COL(1),D,i) ; Node 0 . F i=1:1:20 S BCOL(200+i)=$P(COL(2),D,i) ; Node 1 . F i=1:1:10 S BCOL(300+i)=$P(COL(3),D,i) ; Node 2 . D B^cAN220("GRIDN.TAB.COL","VB",UI1,"BCOL") ; -------------- ; ; -- Openen -- D P^cAN220("GRIDN.TAB.COL","VB",UI1,"COL","") I $L(K) D ERR(2,UI1,7,.ERR) G MKCOLY ; Openen ; ------------ ; MKCOL89 D WARN(COLUI1,"","","","",.WARN,2) ; ; Uitlijsten problemen MKCOL9 I $D(WARN) D . W !," " . W !," ","Kolom "_COLUI1_" ("_$P(COL(2),D)_" - "_$P($G(COL(1)),D,5)_")" . F TYPE=0,1,2,7 I $D(WARN(TYPE)) D .. W !," |-> ",$P($T(@("T"_(2+TYPE))),U,2) .. I TYPE<2 S i="" F S i=$O(WARN(TYPE,i)) Q:'$L(i) W !," - ",$P(WARN(TYPE,i),D) I $L($TR($P(WARN(TYPE,i),D,2,3),D,"")) W ": ",$P(WARN(TYPE,i),D,2)," -> ",$P(WARN(TYPE,i),D,3) ; ; Unlocken MKCOLY I $L(LOCKUI1) L -^VBN(0,"GRID.TAB.COL",LOCKUI1) ; MKCOLZ Q $S(ERR:0,1:"") ; NVT(PROPIDS) ; Is minstens één van de gelinkte properties niet van toepassing? N NVT ; F i=1:1:$L(PROPIDS,"#") D Q:$G(NVT) . I $$SIG^cAFA1("DP.PROP",$P(PROPIDS,"#",i),130)=1 S NVT=1 ; NVTZ Q +$G(NVT) ; FNDCOL(GRIDTAB,SQL,CUREF) N IVB,IVBO,COL,UI1 S $ZT="TRAP^cAN000" S COL="" ; I '$L($G(CUREF)) D . D DMS^cAN000("UQC","USC","GRIDN.TAB.COL",1) I '$L(UQC)!'$L(USC) Q . S CUREF=^DMC(UQC,USC,"DATA","REF") ; I '$L($G(CUREF)) G FNDCOLZ S UI1=GRIDTAB F S UI1=$O(@CUREF) Q:$P(UI1," ",1,4)'=GRIDTAB D Q:$L(COL) . I $P($P($G(^(UI1,1)),D),"->")=SQL S COL=UI1 ; FNDCOLZ Q COL ; ERR(TYPE,UI1,ERRNR,ERR) N ERRTXT S $ZT="TRAP^cAN000" F i="TYPE","UI1","ERRTXT","ERRNR" s @i=$G(@i) ; S ERR=1 S ERRTXT=ERRNR I +ERRNR=ERRNR S ERRTXT=$P($T(@("T"_ERRNR)),U,2) W !," " W !," ",$P($T(@("T5")),U,2),"kolom ",UI1,": ",ERRTXT ; ERRZ Q ; WARN(UI1,OW,NW,BIN,DMA,WARN,NUPD,SHOW) N TXT S $ZT="TRAP^cAN000" ; S TXT="",NUPD=+$G(NUPD) ; I NUPD=1 Q ; I $G(BIN),'$D(DMA) D DMA^cABVBP15("GRIDN.TAB.COL",.DMA) I $G(BIN) S TXT=$P($G(DMA(BIN)),D) S WARN=$G(WARN)+1,WARN(NUPD,WARN)=TXT_D_OW_D_NW I $G(SHOW) D . ;W !," ",$P($T(@("T5")),U,2)_UI1 . W !," |-> ",UI1,":",$P($T(@("T"_(1+NUPD))),U,2) WARNZ Q ; WIDTH(WIDTH) ; Opzetten van de kolombreedte aan de hand van de omschrijving N @$$INITVAR^cAFVBA01("WIDTH") S $ZT="^dmERROR" ; I $G(WIDTH)'>$G(^TEMP(boot,$J+.01)) G WIDTHZ S ^TEMP(boot,$J+.01)=$G(WIDTH) ; WIDTHZ Q 1 ; ZZ ; 29.08.07 - 10 u 22 * V8.09