; Do ##class(Kenm.Basis.MetaDefinitie).BuildMeta(Groep) BuildMeta(Groep) New GrpObj Set Groep=$G(Groep,"TBR") ; Default groep = "TBR" - TandemBox Restricties Do DeleteMetaGroep(Groep) Set GrpObj=$$CreateMetaGroep(Groep) Do AddMetaDefs(GrpObj) Do GrpObj.%Close() w "BuildMeta is afgewerkt.",! Quit InitMDdata(MDdata,Groep) ; MDdata als .local doorgeven ; Struct. ListBuild: $LB(Kenmerk, VolgNr, Format, Multiple, MultipleDisplay) ; MD Defaults: (, i , "T" , 1 , 1 ) #define iINC $INCREMENT(i) New i Set i=0 If Groep="TBR" Do . Kill MDdata(Groep) . Set MDdata(Groep,$$$iINC)=$LB("TemplateCode") . Set MDdata(Groep,$$$iINC)=$LB("TBDesign") . Set MDdata(Groep,$$$iINC)=$LB("TBKlasse") . Set MDdata(Groep,$$$iINC)=$LB("TBLadeType") . Set MDdata(Groep,$$$iINC)=$LB("TBZijwand") . Set MDdata(Groep,$$$iINC)=$LB("TBRugHoogte") . Set MDdata(Groep,$$$iINC)=$LB("TBLadeDiepte") . Set MDdata(Groep,$$$iINC)=$LB("TBDraagKracht") . Set MDdata(Groep,$$$iINC)=$LB("TBGlijderType") . Set MDdata(Groep,$$$iINC)=$LB("VerpakLA") . Set MDdata(Groep,$$$iINC)=$LB("VerpakCP") . Set MDdata(Groep,$$$iINC)=$LB("VerpakRUG") . Set MDdata(Groep,$$$iINC)=$LB("VerpakAK") . Set MDdata(Groep,$$$iINC)=$LB("VerpakFS") . Set MDdata(Groep,$$$iINC)=$LB("VerpakRL") . Set MDdata(Groep,$$$iINC)=$LB("RelInkort") Quit DeleteMetaGroep(Groep) // Verwijdert de MetaGroep en al zijn kinderen (=MetaDefinities) Quit:('##class(Kenm.Basis.MetaGroep).%ExistsId(Groep)) w "Verwijderen van de MetaGroep "_Groep_" en al zijn MetaDefinities ...",! Do ##class(Kenm.Basis.MetaGroep).%DeleteId(Groep) w "De Meta's van "_Groep_" zijn verwijderd",! Quit CreateMetaGroep(Groep) New GrpObj w "Aanmaken MetaGroep: Code="_Groep,! Set GrpObj=##class(Kenm.Basis.MetaGroep).%New() Set GrpObj.Code=Groep Set GrpObj.Omschrijving="Oms. "_Groep Quit GrpObj AddMetaDefs(GrpObj) Quit:('GrpObj)||(GrpObj.Code="") New MDdata,i,Groep w "Aanmaken MetaDefinities voor de groep "_GrpObj.Code_" ...",! Set Groep=GrpObj.Code Do InitMDdata(.MDdata,Groep) Set i="" For Set i=$O(MDdata(Groep,i)) Quit:(i="") Do CreateMetaDef($LB()_MDdata(Groep,i),i,GrpObj) Quit CreateMetaDef(lbData,i,GrpObj) New MDef Set MDef=##class(Kenm.Basis.MetaDefinitie).%New() Set MDef.Groep=$G(GrpObj) ; $LI(lbData,1) Set MDef.Kenmerk=$LG(lbData,2) Set MDef.VolgNr=$LG(lbData,3,i) Set MDef.Format=$LG(lbData,4,"T") Set MDef.Multiple=$LG(lbData,5,1) Set MDef.MultipleDisplay=$LG(lbData,6,1) Set Ok=MDef.%Save() If Ok Do . W "Voor groep "_$S(MDef.Groep:MDef.Groep.Code, 1:"?")_" : Kenmerk "_MDef.Kenmerk_" aangemaakt",! Else Do . W "Fout "_$$ParseStatus^vhLib(Ok),! Do MDef.%Close() Quit ; ===================================================================================================== ; DATA ; ===================================================================================================== KMWaardenList() ; (UnID,Groep) New lbData,KMNaam,KMWaarde Set lbData="" &sql(DECLARE crsDW CURSOR FOR SELECT Kenmerk->Kenmerk,Waarden INTO :KMNaam,:KMWaarde FROM Kenm_Basis.DataDefinitie WHERE (UnID=:UnID) And (Kenmerk->Groep = :Groep)) &sql(OPEN crsDW) For &sql(FETCH crsDW) Quit:SQLCODE Set lbData=lbData_$LB($LB(KMNaam,KMWaarde)) &sql(CLOSE crsDW) Quit lbData NewObjectViaList() ; Parameters: Params #define TRIM(%v) $ZSTRIP(%v, "<>W") #define D "\" ; Params="Groep\Kenmerk\UnID\lstWaarde" Quit:($G(Params)="") "" New DDef,lstWaarde,i,MDefID,SaveOK Set MDefID=$P(Params,$$$D,1)_"||"_$P(Params,$$$D,2) Quit:('##class(Kenm.Basis.MetaDefinitie).%ExistsId(MDefID)) "" Set DDef=##class(Kenm.Basis.DataDefinitie).%New() Set DDef.UnID=$P(Params,$$$D,3) Do DDef.KenmerkSetObjectId(MDefID) Set lstWaarde=$P(Params,$$$D,4) For i=1:1:$L(lstWaarde,";") Do:($L($$$TRIM($P(lstWaarde,";",i)))) . Do DDef.Waarden.Insert($$$TRIM($P(lstWaarde,";",i))) Set SaveOK=DDef.%Save() Do DDef.%Close() Quit $S('SaveOK:"0:"_$$ParseStatus^vhLib(SaveOK) ,1:1) DeleteDataDef(Groep) If $G(Groep)="" Do Quit . ;Do ##class(Kenm.Basis.DataDefinitie).%DeleteExtent() ; Else New DDefID w "Begin Delete",! &sql(DECLARE crsDD CURSOR FOR SELECT ID INTO :DDefID FROM Kenm_Basis.DataDefinitie WHERE (Kenmerk LIKE :Groep || "||%")) &sql(OPEN crsDD) For &sql(FETCH crsDD) Quit:SQLCODE Do ##class(Kenm.Basis.DataDefinitie).%DeleteId(DDefID) &sql(CLOSE crsDD) Quit