cABVB05 ;Functies ivm BeheerGrid.NET - controles grid ; G YZ ; T1 ;Onvoldoende parameters meegegeven; T2 ;Klasse ";" kon niet worden geopend; T3 ;Geen parameter dmDMS gevonden (nodig om naar DMA te verwijzen); T4 ;Geen DMA-verwijzing gevonden in DMS met 2e subscript ; T5 ;^DMA(;) bestaat niet; T6 ;Geen SQLMap "Data" gevonden in storage van klasse "; T7 ;Property ";" is niet gemapt in klasse "; T8 ;Rubriek met B-index ";" werd niet gevonden in ^DMA(; T9 ;Er zijn ; grids niet gecontroleerd omdat ze niet meer bestaan; T10 ;Alle controles zijn geslaagd; T11 ;Caché-klasse ";" bestaat niet; T12 ;Meestal heeft enkel de kolom met SQL-Property="ID" ipv ";" Bevat Uniek ID opstaan; T13 ;Meestal heeft de kolom met SQL-Property="ID" Bevat Uniek ID opstaan; T14 ;Enkel kolom met SQL-Property="LevelUsage" of "Niveau" mag Bevat Operationeel-Niveau opstaan hebben; T15 ;Kolom met SQL-Property="LevelUsage" of "Niveau" moet Bevat Operationeel-Niveau opstaan hebben; T16 ;DataType ";" verwacht Default Operator="" ipv "; T17 ;DataType ";" verwacht SQL-Default="%ALPHAUP(~col~)" ipv "; T18 ;DataType ";" verwacht SQL-Select="0" ipv "; T19 ;DataType ";" verwacht SQL-Where="" ipv "; T20 ;DataType ";" verwacht SQL-Where(params)="" ipv "; T21 ;DataType ";" verwacht SQL-Orderby="0" ipv "; T22 ;SQL-Property ";" verwacht Default Operator="" of "=" ipv "; T23 ;SQL-Property ";" verwacht SQL-Default="" ipv "; T24 ;SQL-Property ";" verwacht SQL-Select="" ipv "; T25 ;SQL-Property ";" verwacht SQL-Where="" ipv "; T26 ;SQL-Property ";" verwacht SQL-Where(params)="" ipv "; T27 ;SQL-Property ";" verwacht SQL-Orderby="" ipv "; T28 ;DataType ";" verwacht Default Operator="=" ipv "; T29 ;DataType ";" verwacht SQL-Default="+~col~" ipv "; T30 ;DataType ";" verwacht SQL-Select="0" ipv "; T31 ;DataType ";" verwacht SQL-Where="" ipv "; T32 ;DataType ";" verwacht SQL-Where(params)="" ipv "; T33 ;DataType ";" verwacht SQL-Orderby="" ipv "; T34 ;DataType ";" verwacht Default Operator="=" ipv "; T35 ;DataType ";" verwacht SQL-Default="" ipv "; T36 ;DataType ";" verwacht SQL-Where="" ipv "; T37 ;DataType ";" verwacht SQL-Where(params)="TO_DATE(~col~,~DateFM~)" ipv "; T38 ;DataType ";" verwacht SQL-Orderby="" ipv "; T39 ;SQL-Property ";" verwacht SQL-Where="+%INTERNAL(~col~)" ipv "; T40 ;SQL-Property ";" verwacht SQL-Where="%INTERNAL(~col~)" ipv "; T41 ;Breedte is 0 terwijl kolom zichtbaar is; T42 ;Breedte van een datum is meestal 68 ipv; T43 ;Uitlijning moet meestal rechts zijn als het datatype numeriek is (enkel als je ermee kan rekenen); T44 ;Aantal Decimalen moet ingevuld zijn als het datatype numeriek is; T45 ;Beheerbaar moet afstaan als Verplicht opstaat bij wijzigen in grid; T46 ;Beheerbaar wordt meestal wel aangezet bij zichtbare kolommen (tenzij gebruikt in .NET-broncode,e.a.); T47 ;Beheerbaar wordt meestal niet aangezet bij onzichtbare kolommen; T48 ;Beheerbaar moet afstaan als SQL-Property="; T49 ;Input mogelijk(QBE) staat op,als het hier om een tijd gaat mag dit niet, als het een datum is wel; T50 ;DataType kolom=";" , DataType DMA="; T51 ;Breedte kolom= ";" is kleiner dan Breedte DMA="; T52 ;SQL-InSelect mag enkel afstaan als de kolom onzichtbaar is; T53 ;Kolom met SQL-Property ";" moet onzichtbaar zijn; T54 ;Kolom met SQL-Property ";" moet zichtbaar zijn; T55 ;SQL-Property ";" is geen property van de klasse "; T56 ;Zichtbare positie ";" bestaat niet; T57 ;Zichtbare positie ";" komt ; keer voor; T58 ;Zichtbare positie ";" zou niet mogen voorkomen maar komt ; keer voor; T59 ;Parameter ";" bestaat niet; T60 ;Parameter ";" komt ; keer voor; T61 ;Parameter ";" zou niet mogen voorkomen maar komt ; keer voor; T62 ;Sortering bij opstarten komt niet voor; T63 ;Sorteervolgorde nr. ";" bestaat niet; T64 ;Sorteervolgorde nr. ";" komt ; keer voor; T65 ;Sorteervolgorde nr. ";" zou niet mogen voorkomen maar komt ; keer voor; T66 ;Hoofding Engels ";" komt ; keer voor; T67 ;Uniek ID komt niet voor; T68 ;Uniek ID mag maar 1 keer voorkomen maar komt ; keer voor; T69 ;Bevat Niveau komt niet voor hoewel Operationeel Menu wel opstaat in grid; T70 ;Bevat Niveau komt voor hoewel Operatieel Menu niet opstaat in grid; T71 ;Bevat Niveau mag maar 1 keer voorkomen maar komt ; keer voor; T72 ;Grid; T73 ;Klasse; T74 ;Kolom; T75 ;Bevat Uniek ID; T76 ;Bevat Operationeel-Niveau; T77 ;SQL-Default Operator; T78 ;SQL-Default; T79 ;SQL-Select; T80 ;SQL-Where; T81 ;SQL-Where(params); T82 ;SQL-Orderby; T83 ;Breedte; T84 ;Uitlijning; T85 ;Aantal Decimalen; T86 ;Beheerbaar; T87 ;Input mogelijk(QBE); T88 ;SQL-kolom; T89 ;DataType; T90 ;SQL-InSelect; T91 ;Visible; T92 ;SQL-Property; T93 ;Zichtbare positie; T94 ;Parameter; T95 ;Sortering bij opstarten; T96 ;Sorteervolgorde nr.; T97 ;Hoofding Engels; T98 ;Uniek ID; T99 ;Bevat Niveau; T100 ;Hoofding Nederlands ";" komt ; keer voor; T101 ;Hoofding Frans ";" komt ; keer voor; T102 ;Hoofding Duits ";" komt ; keer voor; T103 ;Tab bevat geen kolommen; T104 ;Grid bevat geen tabs; T105 ;Tab; T106 ;Tab bevat geen zichtbare kolommen; ; ; CLSEXST(GRIDID) ; Controleert of de klasse van de grid wel bestaat ; GRIDID: ID van grid ; Return: 1\Classnaam ; 0\Classnaam S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("GRIDID") S OUT="0",D="\" I '$L(GRIDID) G CLSEXSTZ CLSEXSTA ;Gridklasse bestaat ? S GRIDCLAS=$P(^VBN(0,"GRID",GRIDID,0),D,2) S EXISTOBJ=##class(%Dictionary.ClassDefinition).%New() I 'EXISTOBJ.%ExistsId(GRIDCLAS) S OUT="0"_D_GRIDCLAS G CLSEXSTY S OUT="1"_D_GRIDCLAS CLSEXSTY D EXISTOBJ.%Close() S EXISTOBJ="" CLSEXSTZ Q OUT ; PRPEXST(GRIDCLAS,SQLPROP) ; Controleert of de property in de klasse wel bestaat ; (gaat er van uit dat grid-klasse bestaat) ; GRIDCLAS: Klasse waarin property zou moeten zitten ; SQLPROP: Naam van SQLProperty ; Return: 1 ; 0\Foutboodschap S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("GRIDCLAS,SQLPROP") S OUT="0",D="\" I '$L(GRIDCLAS)!('$L(SQLPROP)) S OUT="0"_D_$P($T(@("T1"_QT)),U,2) G PRPEXSTZ PRPEXSTA ;Als property een referentie is: overslaan en geen foutboodschap tonen I SQLPROP["->" S OUT="1" G PRPEXSTZ PRPEXSTB S CLASSOBJ=##class(%Dictionary.CompiledClass).%OpenId(GRIDCLAS) ; Properties ophalen I '$L(CLASSOBJ) S OUT="0"_D_$P($T(@("T2"_QT)),U,2)_GRIDCLAS_$P($T(@("T2"_QT)),U,3) G PRPEXSTZ ;Invalid OREF-fout voorkomen F TEL=1:1:CLASSOBJ.Properties.Count() D Q:OUT . I CLASSOBJ.Properties.GetAt(TEL).SqlFieldName=SQLPROP S OUT="1" Q PRPEXSTY D CLASSOBJ.%Close() S CLASSOBJ="" PRPEXSTZ Q OUT ; DMACLAS(GRIDCLAS) ; Controleert of de klasse verwijst naar een DMA, zo ja haalt UQA en USA op ; (gaat er van uit dat grid-klasse bestaat) ; 1)Hoe UQA,USA van DMA vinden: ; Grid->Klasse->Parameter dmDMS->UQA,USA ; ; GRIDCLAS: Klasse waarin naar DMA-verwijzing moet gezocht worden ; Return: 1\UQA\USA ; 0\Foutboodschap S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("GRIDCLAS") S OUT="0",D="\",DMS="",UQA="",USA="" I '$L(GRIDCLAS) S OUT="0"_D_$P($T(@("T1"_QT)),U,2) G DMACLASZ DMACLASB S CLASSOBJ=##class(%Dictionary.ClassDefinition).%OpenId(GRIDCLAS) I '$L(CLASSOBJ) S OUT="0"_D_$P($T(@("T2"_QT)),U,2)_GRIDCLAS_$P($T(@("T2"_QT)),U,3) G DMACLASZ ;Invalid OREF-fout voorkomen ; UQA,USA ophalen via Parameter dmDMS in klasse F TEL=1:1:CLASSOBJ.Parameters.Count() D Q:$L(DMS) . I CLASSOBJ.Parameters.GetAt(TEL).Name="dmDMS" S DMS=CLASSOBJ.Parameters.GetAt(TEL).Default Q I '$L(DMS) S OUT="0"_D_$P($T(@("T3"_QT)),U,2) G DMACLASY ;DMS overlopen op zoek naar een met een verwijzing naar een DMA S iQ="" F S iQ=$O(^DMS(iQ)) Q:iQ=""!$L(UQA) D . I '$DATA(^DMS(iQ,DMS,"DMA","W")) Q . S UQA=$P(^DMS(iQ,DMS,"DMA","W"),D,1) . S USA=$P(^DMS(iQ,DMS,"DMA","W"),D,2) . I UQA["""" S UQA=$P(UQA,"""",2) ;aanhalingstekens trimmen (nodig voor als subscript te gebruiken) . I USA["""" S USA=$P(USA,"""",2) I '$L(UQA) S OUT="0"_D_$P($T(@("T4"_QT)),U,2)_DMS G DMACLASY I $L(UQA),$L(USA) I '$DATA(^DMA(UQA,USA)) S OUT="0"_D_$P($T(@("T5"_QT)),U,2)_UQA_","_USA_$P($T(@("T5"_QT)),U,3) G DMACLASY S OUT=1_D_UQA_D_USA DMACLASY D CLASSOBJ.%Close() S CLASSOBJ="" DMACLASZ Q OUT ; SQLP2BIN(GRIDCLAS,SQLPROP) ; Zoekt B-index van de opgegeven SQL-property in de storage van de klasse ; (gaat er van uit dat grid-klasse bestaat) ; Klasse->StorageData->SQLProperty->B-index ; GRIDCLAS: Klasse waarin naar DMA-verwijzing moet gezocht worden ; SQLPROP: Naam van SQL-property ; Return: 1\B-Index van SQL-property ; 0\Foutboodschap S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("GRIDCLAS,SQLPROP") S OUT="0",D="\",MAPOBJ="",PROPOBJ="" I '$L(GRIDCLAS)!'$L(SQLPROP) S OUT="0"_D_$P($T(@("T1"_QT)),U,2) G SQLP2BINZ ;Storage van klasse ophalen S CLASSOBJ=##class(%Dictionary.ClassDefinition).%OpenId(GRIDCLAS) I '$L(CLASSOBJ) S OUT="0"_D_$P($T(@("T2"_QT)),U,2)_GRIDCLAS_$P($T(@("T1"_QT)),U,3) G SQLP2BINZ ;Invalid OREF-fout voorkomen S STOROBJ=CLASSOBJ.Storages.GetAt(1) F TEL=1:1:STOROBJ.SQLMaps.Count() D Q:$L(MAPOBJ) . I STOROBJ.SQLMaps.GetAt(TEL).Name="Data" S MAPOBJ=STOROBJ.SQLMaps.GetAt(TEL) Q I '$L(MAPOBJ) S OUT="0"_D_$P($T(@("T6"_QT)),U,2)_GRIDCLAS_"""" G SQLP2BINY ;Properties van klasse doorlopen in storage om b-index van kolom op te halen F TEL=1:1:MAPOBJ.Data.Count() D Q:$L(PROPOBJ) . I MAPOBJ.Data.GetAt(TEL).Name=SQLPROP S PROPOBJ=MAPOBJ.Data.GetAt(TEL) Q I '$L(PROPOBJ) S OUT="0"_D_$P($T(@("T7"_QT)),U,2)_SQLPROP_$P($T(@("T7"_QT)),U,3)_GRIDCLAS_"""" G SQLP2BINY S BINCLASS=(PROPOBJ.Node+1)*100+PROPOBJ.Piece S OUT="1"_D_BINCLASS SQLP2BINY D CLASSOBJ.%Close() S CLASSOBJ="" SQLP2BINZ Q OUT ; DMAPROP(UQA,USA,RUBRBIN,PROPNRS) ; DMA-property's opvragen van de rubriek met BIndex=RUBRBIN ; DMA doorlopen tot je B-index vindt ; UQA,USA: 1e twee subscripts van DMA ; RUBRBIN: B-index van de rubriek waarvan ja dma-properties wil opvragen ; PROPNRS: subscript-nrs van de DMA-properties die je wil opvragen (gescheiden door ;) ; Return: 1\Waarde van DMABIN1\Waarde van DMABIN2\etc. ; 0\Foutboodschap S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("UQA,USA,RUBRBIN,PROPNRS") S OUT="0",D="\" I '$L(UQA)!'$L(USA)!'$L(RUBRBIN)!'$L(PROPNRS) S OUT="0"_D_$P($T(@("T1"_QT)),U,2) G DMAPROPZ ;DMA doorlopen op zoek naar juiste B-index S iPAGNR="" F S iPAGNR=$O(^DMA(UQA,USA,iPAGNR)) Q:iPAGNR=""!$P(OUT,D) D . S iVOLGNR="" F S iVOLGNR=$O(^DMA(UQA,USA,iPAGNR,iVOLGNR)) Q:iVOLGNR=""!$P(OUT,D) D .. I '$DATA(^DMA(UQA,USA,iPAGNR,iVOLGNR,16)) Q .. I RUBRBIN'=^DMA(UQA,USA,iPAGNR,iVOLGNR,16) Q ;Als we juiste rubriek gevonden hebben:DMABIN's opvragen .. S OUT=1 .. F TEL=1:1:$L(PROPNRS,";") D ... I '$DATA(^DMA(UQA,USA,iPAGNR,iVOLGNR,$P(PROPNRS,";",TEL))) S OUT=OUT_D Q ;als propnr niet bestaat:skippen ... S OUT=OUT_D_^DMA(UQA,USA,iPAGNR,iVOLGNR,$P(PROPNRS,";",TEL)) I '$P(OUT,D) S OUT="0"_D_$P($T(@("T8"_QT)),U,2)_RUBRBIN_$P($T(@("T8"_QT)),U,3)_UQA_","_USA_")" G DMAPROPZ DMAPROPZ Q OUT ; BTEMPCG(MGRIDID,GRIDIDS) ; Allerlei controles op grid en zijn kolommen ; MGRIDID: id van de mtemp ; GRIDID: ID van grid zelf ; OUTPUT=1\gridid van mtemp ; =0\foutboodschap S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("MGRIDID,GRIDIDS") S D="\",ERRNR=0,NDELETED=0 ; ;Mtemp initialiseren I '$L(MGRIDID) S MGRIDID=$$GRIDID^cAFVBF01() ; bepalen nieuw gridID indien niet doorgegeven K ^mtemp99(MGRIDID,"COMMON") ; ;Voor elke grid in gridids: controle grid uitvoeren en toevoegen aan mtemp F TEL=1:1:$L(GRIDIDS,";") D . S GRIDID=$P(GRIDIDS,";",TEL) . I '$DATA(^VBN(0,"GRID",GRIDID)) S NDELETED=NDELETED+1 Q . S ERRNR=$$CHECKGD(MGRIDID,GRIDID,ERRNR) I NDELETED S OUTPUT="0"_D_$P($T(@("T9"_QT)),U,2)_NDELETED_$P($T(@("T9"_QT)),U,3) G BTEMPCGZ I 'ERRNR S OUTPUT="0"_D_$P($T(@("T10"_QT)),U,2) G BTEMPCGZ S OUTPUT=1_D_MGRIDID BTEMPCGZ Q OUTPUT ; CHECKGD(MGRIDID,GRIDID,ERRNR) ; Allerlei controles op grid en zijn kolommen ; MGRIDID: id van de mtemp (die al opgezet is) ; GRIDID: ID van grid zelf N @$$INITVAR^cAFVBA01("MGRIDID,GRIDID,ERRNR") S D="\" CHECKGDA S DESCRGRD=$P(^VBN(0,"GRID",GRIDID,0),D,5,8) S OPERMENU=$P(^VBN(0,"GRID",GRIDID,0),D,13) S NTAB=0 ;Gridklasse bestaat ? S RES=$$CLSEXST(GRIDID) S CLASEXST=$P(RES,D),GRIDCLAS=$P(RES,D,2) I 'CLASEXST S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,GRIDID,$P($T(@("T72"_QT)),U,2),DESCRGRD,$P($T(@("T73"_QT)),U,2),$P($T(@("T11"_QT)),U,2)_GRIDCLAS_$P($T(@("T11"_QT)),U,3)) ;Klasse verwijst naar DMS die naar DMA verwijst? I CLASEXST D . S RES=$$DMACLAS(GRIDCLAS) . I $P(RES,D) S UQA=$P(RES,D,2) S USA=$P(RES,D,3) Q ;Ok dus foutboodschap overslaan . S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,GRIDID,$P($T(@("T72"_QT)),U,2),DESCRGRD,$P($T(@("T73"_QT)),U,2),$P($T(@("T11"_QT)),U,2)_GRIDCLAS_""": "_$P(RES,D,2)) ;TAB-info verzamelen (later pas controleren op fouten)--------------------------------------------------- CHECKGDB S iTAB=GRIDID_" " F S iTAB=$O(^VBN(0,"GRID.TAB",iTAB)) Q:$P(iTAB," ")'=GRIDID D . S iCOL=iTAB_" ",NCOL=0,NVIS=0,NSORT=0,POSMAX=-1,PARMAX=-1,SORTMAX=-1,NUNIEK=0,NBEVAT=0 . K POSFREQ,PARFREQ,SORTFREQ,CAPEFREQ,CAPNFREQ,CAPFFREQ,CAPDFREQ . S NTAB=NTAB+1 . F S iCOL=$O(^VBN(0,"GRID.TAB.COL",iCOL)) Q:$P(iCOL," ",1,4)'=iTAB D .. S N0=^VBN(0,"GRID.TAB.COL",iCOL,0) .. S N1=$G(^VBN(0,"GRID.TAB.COL",iCOL,1)) .. S NCOL=NCOL+1 .. S DESCRCOL=$P(N0,D,5,8) CHECKGDC .. ;Zichtbare positie: oplopend en aaneensluitend? .. S POSNR=+$P(N0,D,11) .. S POSFREQ(POSNR)=$G(POSFREQ(POSNR))+1 .. I POSNR>POSMAX S POSMAX=POSNR CHECKGDD .. ;Parameter: oplopend en aaneensluitend? .. S PARNR=+$P(N0,D,19) .. S PARFREQ(PARNR)=$G(PARFREQ(PARNR))+1 .. I PARNR>PARMAX S PARMAX=PARNR CHECKGDE .. ;SorteerVolgordeNr: oplopend en aaneensluitend? .. S SORTED=$P(N0,D,18) .. I SORTED D ... S SORTNR=+$P(N0,D,40) ... S SORTFREQ(SORTNR)=$G(SORTFREQ(SORTNR))+1 ... I SORTNR>SORTMAX S SORTMAX=SORTNR ... S NSORT=NSORT+1 .. ;Captions: uniek? (Zowel Engels,Nederlands,Frans als Duits) .. S CAPTION=$P(N0,D,5) ;Engels .. I $L(CAPTION) S CAPEFREQ(CAPTION)=$G(CAPEFREQ(CAPTION))+1 .. S CAPTION=$P(N0,D,6) ;Nederlands .. I $L(CAPTION) S CAPNFREQ(CAPTION)=$G(CAPNFREQ(CAPTION))+1 .. S CAPTION=$P(N0,D,7) ;Frans .. I $L(CAPTION) S CAPFFREQ(CAPTION)=$G(CAPFFREQ(CAPTION))+1 .. S CAPTION=$P(N0,D,8) ;Duits .. I $L(CAPTION) S CAPDFREQ(CAPTION)=$G(CAPDFREQ(CAPTION))+1 CHECKGDF .. ;Uniek id, bevat niveau: 1 maal voorkomend? .. I $P(N0,D,16) S NUNIEK=NUNIEK+1 .. I $P(N0,D,22) S NBEVAT=NBEVAT+1 CHECKGDG .. ;KOLOM-CONTROLES------------------------------------------------------------------------------- .. ;Uniek ID mag enkel opstaan bij kolom ID .. S SQLPROP=$P(N1,D) S UNIEKID=$P(N0,D,16) .. I UNIEKID,($$UC^cAFA1(SQLPROP)'="ID") S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T75"_QT)),U,2),$P($T(@("T12"_QT)),U,2)_SQLPROP_$P($T(@("T12"_QT)),U,3)) .. I 'UNIEKID,($$UC^cAFA1(SQLPROP)="ID") S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T75"_QT)),U,2),$P($T(@("T13"_QT)),U,2)) .. ;Bevat Operationeel-niveau mag enkel opstaan bij kolom LevelUsage/Niveau .. S OPERNIVO=$P(N0,D,22) .. I OPERNIVO,SQLPROP'="LevelUsage",SQLPROP'="Niveau" S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T76"_QT)),U,2),$P($T(@("T14"_QT)),U,2)) .. I 'OPERNIVO,(SQLPROP="LevelUsage"!SQLPROP="Niveau") S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T76"_QT)),U,2),$P($T(@("T15"_QT)),U,2)) .. ;DataType:zijn defaults wel gezet .. S DTYPE=$P(N0,D,23) .. S DTYPEDES=$$DATA^cAFVBO01("^VBN",0,"GRID.DATATYPE",DTYPE+1000,102) .. S DEFOP=$P(N1,D,4),FDEFAULT=$P(N1,D,5),FSELECT=$P(N1,D,11) .. S FWHERE=$P(N1,D,12),FWHEREP=$P(N1,D,13),FORDER=$P(N1,D,14) .. ;Tekst-datatype (LevelUsage,Niveau en ID gaan we hier niet testen want speciale gevallen) .. I (DTYPE=""!(DTYPE=0)),SQLPROP'="LevelUsage",SQLPROP'="Niveau",$$UC^cAFA1(SQLPROP)'="ID" D ... I DEFOP'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T77"_QT)),U,2),$P($T(@("T16"_QT)),U,2)_DTYPEDES_$P($T(@("T16"_QT)),U,3)_DEFOP_"""") ... I FDEFAULT'="%ALPHAUP(~col~)" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T78"_QT)),U,2),$P($T(@("T17"_QT)),U,2)_DTYPEDES_$P($T(@("T17"_QT)),U,3)_FDEFAULT_"""") ... I FSELECT'="0" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T79"_QT)),U,2),$P($T(@("T18"_QT)),U,2)_DTYPEDES_$P($T(@("T18"_QT)),U,3)_FSELECT_"""") ... I FWHERE'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T80"_QT)),U,2),$P($T(@("T19"_QT)),U,2)_DTYPEDES_$P($T(@("T19"_QT)),U,3)_FWHERE_"""") ... I FWHEREP'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T81"_QT)),U,2),$P($T(@("T20"_QT)),U,2)_DTYPEDES_$P($T(@("T20"_QT)),U,3)_FWHEREP_"""") ... I FORDER'="0" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T82"_QT)),U,2),$P($T(@("T21"_QT)),U,2)_DTYPEDES_$P($T(@("T21"_QT)),U,3)_FORDER_"""") .. ;LevelUsage/niveau heeft speciale voorwaarden ivm SQL-parameters .. I (DTYPE=""!(DTYPE=0)),(SQLPROP="LevelUsage"!(SQLPROP="Niveau")!($$UC^cAFA1(SQLPROP)="ID")) D ... I DEFOP'="",DEFOP'="=" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T77"_QT)),U,2),$P($T(@("T22"_QT)),U,2)_SQLPROP_$P($T(@("T22"_QT)),U,3)_DEFOP_"""") ... I FDEFAULT'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T78"_QT)),U,2),$P($T(@("T23"_QT)),U,2)_SQLPROP_$P($T(@("T23"_QT)),U,3)_FDEFAULT_"""") ... I FSELECT'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T79"_QT)),U,2),$P($T(@("T24"_QT)),U,2)_SQLPROP_$P($T(@("T24"_QT)),U,3)_FSELECT_"""") ... I FWHERE'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T80"_QT)),U,2),$P($T(@("T25"_QT)),U,2)_SQLPROP_$P($T(@("T25"_QT)),U,3)_FWHERE_"""") ... I FWHEREP'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T81"_QT)),U,2),$P($T(@("T26"_QT)),U,2)_SQLPROP_$P($T(@("T26"_QT)),U,3)_FWHEREP_"""") ... I FORDER'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T82"_QT)),U,2),$P($T(@("T27"_QT)),U,2)_SQLPROP_$P($T(@("T27"_QT)),U,3)_FORDER_"""") .. ;Numeriek-datatype .. I DTYPE=1 D ... I DEFOP'="=" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T77"_QT)),U,2),$P($T(@("T28"_QT)),U,2)_DTYPEDES_$P($T(@("T28"_QT)),U,3)_DEFOP_"""") ... I FDEFAULT'="+~col~" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T78"_QT)),U,2),$P($T(@("T29"_QT)),U,2)_DTYPEDES_$P($T(@("T29"_QT)),U,3)_FDEFAULT_"""") ... I FSELECT'="0" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T79"_QT)),U,2),$P($T(@("T30"_QT)),U,2)_DTYPEDES_$P($T(@("T30"_QT)),U,3)_FSELECT_"""") ... I FWHERE'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T80"_QT)),U,2),$P($T(@("T31"_QT)),U,2)_DTYPEDES_$P($T(@("T31"_QT)),U,3)_FWHERE_"""") ... I FWHEREP'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T81"_QT)),U,2),$P($T(@("T32"_QT)),U,2)_DTYPEDES_$P($T(@("T32"_QT)),U,3)_FWHEREP_"""") ... I FORDER'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T82"_QT)),U,2),$P($T(@("T33"_QT)),U,2)_DTYPEDES_$P($T(@("T33"_QT)),U,3)_FORDER_"""") .. ;Datum-datatypes .. I DTYPE=2!DTYPE=3 D ;Horolog datum en damlib datum hebben bijna zelfde eisen ... I DEFOP'="=" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T77"_QT)),U,2),$P($T(@("T34"_QT)),U,2)_DTYPEDES_$P($T(@("T34"_QT)),U,3)_DEFOP_"""") ... I FDEFAULT'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T78"_QT)),U,2),$P($T(@("T35"_QT)),U,2)_DTYPEDES_$P($T(@("T35"_QT)),U,3)_FDEFAULT_"""") ... I FWHERE'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T80"_QT)),U,2),$P($T(@("T36"_QT)),U,2)_DTYPEDES_$P($T(@("T36"_QT)),U,3)_FWHERE_"""") ... I FWHEREP'="TO_DATE(~col~,~DateFM~)" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T81"_QT)),U,2),$P($T(@("T37"_QT)),U,2)_DTYPEDES_$P($T(@("T37"_QT)),U,3)_FWHEREP_"""") ... I FORDER'="" S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T82"_QT)),U,2),$P($T(@("T38"_QT)),U,2)_DTYPEDES_$P($T(@("T38"_QT)),U,3)_FORDER_"""") .. ;Horolog datum heeft een plus nodig om de komma in datum,tijd af te scheiden .. I DTYPE=2,(FWHERE'="+%INTERNAL(~col~)") S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T79"_QT)),U,2),$P($T(@("T39"_QT)),U,2)_SQLPROP_$P($T(@("T39"_QT)),U,3)_FSELECT_"""") .. ;Damlib datum heeft geen plus nodig .. I DTYPE=3,(FWHERE'="%INTERNAL(~col~)") S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T79"_QT)),U,2),$P($T(@("T40"_QT)),U,2)_SQLPROP_$P($T(@("T40"_QT)),U,3)_FSELECT_"""") .. ;Visible kolommen tellen .. S VISIBLE=$P(N0,D,15) I VISIBLE S NVIS=NVIS+1 CHECKGDH .. ;Breedte:verplicht als Zichtbaar=true,datum=>breedte=68,komt overeen met DMA .. S WIDTH=$P(N0,D,12) .. I 'WIDTH,(VISIBLE) S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T83"_QT)),U,2),$P($T(@("T41"_QT)),U,2)) .. I (DTYPE=2!DTYPE=3),WIDTH'=68 S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T83"_QT)),U,2),$P($T(@("T42"_QT)),U,2)_WIDTH_"""") CHECKGDI .. ;Uitlijning: rechts als DataType=numeriek .. S ALIGN=$P(N0,D,21) .. I DTYPE=1,('ALIGN) S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T84"_QT)),U,2),$P($T(@("T43"_QT)),U,2)) CHECKGDJ .. ;Format: verplicht als Datatype=numeriek .. S FORMAT=$P(N0,D,27) .. I '$L(FORMAT),(DTYPE=1) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T85"_QT)),U,2),$P($T(@("T44"_QT)),U,2)) CHECKGDK .. ;Beheerbaar:default ja als zichtbaar,verplicht neen als wijzigbaar .. S BEHEERB=$P(N0,D,38) S CELMANDA=$P(N0,D,32) .. I BEHEERB,CELMANDA S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T86"_QT)),U,2),$P($T(@("T45"_QT)),U,2)) .. I 'BEHEERB,('CELMANDA),VISIBLE S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T86"_QT)),U,2),$P($T(@("T46"_QT)),U,2)) .. I BEHEERB,('VISIBLE) S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T86"_QT)),U,2),$P($T(@("T47"_QT)),U,2)) .. I BEHEERB,(SQLPROP="LevelUsage"!(SQLPROP="Niveau")!($$UC^cAFA1(SQLPROP)="ID")) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T86"_QT)),U,2),$P($T(@("T48"_QT)),U,2)_SQLPROP_"""") CHECKGDL .. ;Input mogelijk:disablen als het om tijd gaat want op tijd kunnen we niet zoeken .. S INPUTPOS=$P(N0,D,13) .. I INPUTPOS,(DTYPE=2!DTYPE=3) S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,"Input mogelijk(QBE)",$P($T(@("T49"_QT)),U,2)) CHECKGDM .. ;DMA-controles (apart gezet omwille van performantie-redenen) .. ;B-index van kolom ophalen uit klasse (via sql-property) .. I CLASEXST D ... S RES=$$SQLP2BIN(GRIDCLAS,SQLPROP) ... I '$P(RES,D) S RUBRBIN="" Q ;resetten variabele ... S RUBRBIN=$P(RES,D,2) Q CHECKGDN .. ;Properties datatype(4),lengte output(13) ophalen uit DMA via B-index van kolom .. I $L($G(RUBRBIN)),$L($G(UQA)),$L($G(USA)) D ... S RES=$$DMAPROP(UQA,USA,RUBRBIN,"4;13") ... ;Als er een probleem is met ophalen DMA-properties: verdere testen hiermee overslaan ... I '$P(RES,D) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T88"_QT)),U,2),$P(RES,D,2)) Q CHECKGDO ... ;Datatype ... S DMADTYPE=+$P(RES,D,2) ... I DMADTYPE'=3 S DMADTDES=$$DATA^cAFVBO01("^VBN",0,"GRID.DATATYPE",DMADTYPE+1000,102) ... I DMADTYPE=3 S DMADTDES="JA/NEEN-type" ... ;Als Datatypes ongelijk EN geen JN-type EN NIET(DMATYPE=Datum EN DataType=Datum(H)) ... I DMADTYPE'=DTYPE,(DMADTYPE'=3),(DMADTYPE'=2!DTYPE'=3) S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T89"_QT)),U,2),$P($T(@("T50"_QT)),U,2)_DTYPEDES_$P($T(@("T50"_QT)),U,3)_DMADTDES_"""") CHECKGDP ... ;Lengte output ... S DMAWIDTH=$P(RES,D,3) ... I '$L(DMAWIDTH) Q ;Als er geen DMA width is, moet je er ook geen controle op doen ... S DMAWIDTH=$$TWIP^cABVB02(DMAWIDTH,DTYPE) ... I WIDTH>=DMAWIDTH Q ;Ok dus foutboodschap overslaan ... S ERRNR=$$BLDROW(MGRIDID,ERRNR,1,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T83"_QT)),U,2),$P($T(@("T51"_QT)),U,2)_WIDTH_$P($T(@("T51"_QT)),U,3)_DMAWIDTH_"""") .. ;In Select: mag enkel neen zijn als onzichtbaar .. S INSEL=$P(N1,D,2) .. I 'INSEL,('VISIBLE) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T90"_QT)),U,2),$P($T(@("T52"_QT)),U,2)) .. ;Visible: LevelUsage/Niveau,ID moeten onzichtbaar zijn .. I VISIBLE,(SQLPROP="LevelUsage"!(SQLPROP="Niveau")!($$UC^cAFA1(SQLPROP)="ID")) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T91"_QT)),U,2),$P($T(@("T53"_QT)),U,2)_SQLPROP_$P($T(@("T53"_QT)),U,3)) .. I 'VISIBLE,(SQLPROP="Operational"!(SQLPROP="Operationeel")) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T91"_QT)),U,2),$P($T(@("T54"_QT)),U,2)_SQLPROP_$P($T(@("T54"_QT)),U,3)) .. ;SQL-Property: bestaat SQL-property in klasse van grid? (references worden genegeerd) .. I CLASEXST,$$UC^cAFA1(SQLPROP)'="ID" I '$$PRPEXST(GRIDCLAS,SQLPROP) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iCOL,$P($T(@("T74"_QT)),U,2),DESCRCOL,$P($T(@("T92"_QT)),U,2),$P($T(@("T55"_QT)),U,2)_SQLPROP_$P($T(@("T55"_QT)),U,3)_GRIDCLAS_"""") . ;TAB-CONTROLES------------------------------------------------------------------------------------- . S DESCRTAB=$P(^VBN(0,"GRID.TAB",iTAB,0),D,5,8) CHECKGDQ . ;Zichtbare positie . F TEL=0:1:NCOL-1 D .. I '$G(POSFREQ(TEL)) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T93"_QT)),U,2),$P($T(@("T56"_QT)),U,2)_TEL_$P($T(@("T56"_QT)),U,3)) .. I $G(POSFREQ(TEL))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T93"_QT)),U,2),$P($T(@("T57"_QT)),U,2)_TEL_$P($T(@("T57"_QT)),U,3)_POSFREQ(TEL)_$P($T(@("T57"_QT)),U,4)) . F TEL=NCOL:1:POSMAX D .. I $G(POSFREQ(TEL)) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T93"_QT)),U,2),$P($T(@("T58"_QT)),U,2)_TEL_$P($T(@("T58"_QT)),U,3)_POSFREQ(TEL)_$P($T(@("T58"_QT)),U,4)) CHECKGDR . ;Parameter . F TEL=0:1:NCOL-1 D .. I '$G(PARFREQ(TEL)) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T94"_QT)),U,2),$P($T(@("T59"_QT)),U,2)_TEL_$P($T(@("T59"_QT)),U,3)) .. I $G(PARFREQ(TEL))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T94"_QT)),U,2),$P($T(@("T60"_QT)),U,2)_TEL_$P($T(@("T60"_QT)),U,3)_PARFREQ(TEL)_$P($T(@("T60"_QT)),U,4)) . F TEL=NCOL:1:PARMAX D .. I $G(PARFREQ(TEL)) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T94"_QT)),U,2),$P($T(@("T61"_QT)),U,2)_TEL_$P($T(@("T61"_QT)),U,3)_PARFREQ(TEL)_$P($T(@("T61"_QT)),U,4)) CHECKGDS . ;Sortering bij opstarten . I 'NSORT S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T95"_QT)),U,2),$P($T(@("T62"_QT)),U,2)) CHECKGDT . ;SorteerVolgordeNr . F TEL=0:1:NSORT-1 D .. I '$G(SORTFREQ(TEL)) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T96"_QT)),U,2),$P($T(@("T63"_QT)),U,2)_TEL_$P($T(@("T63"_QT)),U,3)) .. I $G(SORTFREQ(TEL))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T96"_QT)),U,2),$P($T(@("T64"_QT)),U,2)_TEL_$P($T(@("T64"_QT)),U,3)_SORTFREQ(TEL)_$P($T(@("T64"_QT)),U,4)) . F TEL=NSORT:1:SORTMAX D .. I $G(SORTFREQ(TEL)) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T96"_QT)),U,2),$P($T(@("T65"_QT)),U,2)_TEL_$P($T(@("T65"_QT)),U,3)_SORTFREQ(TEL)_$P($T(@("T65"_QT)),U,4)) CHECKGDU . ;Captions . S iCAP="" F S iCAP=$O(CAPEFREQ(iCAP)) Q:iCAP="" D .. I $G(CAPEFREQ(iCAP))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T97"_QT)),U,2),$P($T(@("T66"_QT)),U,2)_iCAP_$P($T(@("T66"_QT)),U,3)_CAPEFREQ(iCAP)_$P($T(@("T66"_QT)),U,4)) . S iCAP="" F S iCAP=$O(CAPNFREQ(iCAP)) Q:iCAP="" D .. I $G(CAPNFREQ(iCAP))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T97"_QT)),U,2),$P($T(@("T100"_QT)),U,2)_iCAP_$P($T(@("T100"_QT)),U,3)_CAPNFREQ(iCAP)_$P($T(@("T100"_QT)),U,4)) . S iCAP="" F S iCAP=$O(CAPFFREQ(iCAP)) Q:iCAP="" D .. I $G(CAPFFREQ(iCAP))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T97"_QT)),U,2),$P($T(@("T101"_QT)),U,2)_iCAP_$P($T(@("T101"_QT)),U,3)_CAPFFREQ(iCAP)_$P($T(@("T101"_QT)),U,4)) . S iCAP="" F S iCAP=$O(CAPDFREQ(iCAP)) Q:iCAP="" D .. I $G(CAPDFREQ(iCAP))>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T97"_QT)),U,2),$P($T(@("T102"_QT)),U,2)_iCAP_$P($T(@("T102"_QT)),U,3)_CAPDFREQ(iCAP)_$P($T(@("T102"_QT)),U,4)) CHECKGDV . ;Uniek id, bevat niveau . I 'NUNIEK S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T98"_QT)),U,2),$P($T(@("T67"_QT)),U,2)) . I NUNIEK>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T98"_QT)),U,2),$P($T(@("T68"_QT)),U,2)_NUNIEK_$P($T(@("T68"_QT)),U,3)) . I OPERMENU,('NBEVAT) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T99"_QT)),U,2),$P($T(@("T69"_QT)),U,2)) . I 'OPERMENU,(NBEVAT) S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T99"_QT)),U,2),$P($T(@("T70"_QT)),U,2)) . I NBEVAT>1 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,$P($T(@("T99"_QT)),U,2),$P($T(@("T71"_QT)),U,2)_NBEVAT_$P($T(@("T71"_QT)),U,3)) . I NCOL=0 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,"",$P($T(@("T103"_QT)),U,2)) . I NVIS=0 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,iTAB,$P($T(@("T105"_QT)),U,2),DESCRTAB,"",$P($T(@("T106"_QT)),U,2)) I NTAB=0 S ERRNR=$$BLDROW(MGRIDID,ERRNR,0,GRIDID,$P($T(@("T72"_QT)),U,2),DESCRGRD,"",$P($T(@("T104"_QT)),U,2)) CHECKGDZ Q ERRNR ; BLDROW(MGRIDID,ERRNR,ERRTYPE,SUBSCR,NIVEAU,DESCR,PROP,ERRMSG) ; BuildRow: bouwt een rij in de mtemp99 voor CHECKGD ; MGRIDID: id van de mtemp (die al opgezet is) ; ERRNR: Foutnummer ; ERRTYPE: 0=Error of 1=Warning ; SUBSCR: 1e Subscript van de global die getest wordt ; NIVEAU: Waar bevindt de fout zich: Grid,Tab,Col ; DESCR: Omschrijving Niveau EN\Omschrijving Niveau NL\Omschrijving Niveau FR\Omschrijving Niveau D ; PROP: Naam van de property die fout staat ; ERRMSG: de foutboodschap ; S D="\" S ^mtemp99(MGRIDID,"COMMON",ERRNR,0)=$S(ERRTYPE:"Waarschuwing",1:"Fout") S $P(^(0),D,2)=SUBSCR S $P(^(0),D,3)=NIVEAU S $P(^(0),D,4,7)=DESCR S $P(^(0),D,8)=PROP S $P(^(0),D,9)=ERRMSG S ^(1)=ERRNR S ERRNR=ERRNR+1 BLDROWZ Q ERRNR ; YZ Q ; ZZ ; 29.08.07 - 10 u 22 * V8.09