#include PRGACNTs XMLWrite ; Parameters: DevObj,Taal,Opties,XSLURL #define HTML(%v) $ZCVT(%v,"O","HTML") #define Attrib(%n,%v) $$PARAMFILL^XMLWRITE(%n,$$$HTML(%v)) New MetaCode,Key,DItem,Oms,TypeAttr Set MetaCode=..MetaStruct.Code ; = "TBX" / "GRP" / "TLM" Kill %arInvers("DItem") Do WRITE^XMLWRITE(DevObj,"") If $L($G(XSLURL)) Do . Do WRITE^XMLWRITE(DevObj,"") . Do WRITELN^XMLWRITE(DevObj) If $L($G(XSLURL))||($IsObject($G(%request))&&($G(%request.Data("NOXSL",1))=1)) Do . Do WRITE^XMLWRITE(DevObj," ]>") . Do WRITELN^XMLWRITE(DevObj) If $G(Opties)["GAF" Do . Do BEGINTAG^XMLWRITE(DevObj,"PRODUCTEN") . Do xmlwLangEnKortTxt Do WRITELN^XMLWRITE(DevObj) Do xmlwSpecialOms ; bepaalt variables Oms en TypeAttr Do BEGINTAG^XMLWRITE(DevObj,"GAPROD",$S($G(Opties)["GAO":$$$Attrib("OMS",Oms) ,1:""),$$$Attrib("TYPE",TypeAttr) ) Do WRITELN^XMLWRITE(DevObj) Do:(..%Id()) TAGWRITE^XMLWRITE(DevObj,"PRODID",..%Id()) Do BEGINTAG^XMLWRITE(DevObj,"METASTRUCT") Do TAGWRITE^XMLWRITE(DevObj,"CODE",..MetaStruct.Code) Do TAGWRITE^XMLWRITE(DevObj,"VERSIE",..MetaStruct.Version) Do ENDTAG^XMLWRITE(DevObj,"METASTRUCT",1) Do TAGWRITE^XMLWRITE(DevObj,"TEMPLATECODE",%this.TemplateCode) If %this.Template Do . Do TAGWRITE^XMLWRITE(DevObj,"TEMPLATE",%this.Template.%Id()) . Do WRITELN^XMLWRITE(DevObj) Do xmlwSpecialValues Do TAGWRITE^XMLWRITE(DevObj,"DOSSIERNR",..Dossier) Do WRITELN^XMLWRITE(DevObj) New MetaArray,%arMetaDefObj Set Key="" For Set DItem=..DataItems.GetNext(.Key) Quit:(Key="") Do:(DItem.IsActief()) . Do DItem.XMLWrite(DevObj,Taal,.Opties,.XSLURL) . ;Do WRITELN^XMLWRITE(DevObj) Do xmlwUnloadMetaObjs Do ENDTAG^XMLWRITE(DevObj,"GAPROD",1) Do:($G(Opties)["GAF") ENDTAG^XMLWRITE(DevObj,"PRODUCTEN",1) Quit xmlwUnloadMetaObjs ; Close MetaObjects (opened in MetaDef. - method GetOmsViaKenm() ) New k,tmpOref Set k="" For Set k=$O(MetaArray(k)) Quit:(k="") Set MetaArray(k)="" Kill MetaArray(k) ; Set tmpOref=MetaArray(k) Do tmpOref.%Close() For Set k=$O(%arMetaDefObj(k)) Quit:(k="") Set %arMetaDefObj(k)="" Kill %arMetaDefObj(k) ; New %array - added by WimV on 14/02/2008 Quit xmlwLangEnKortTxt New Oms,Cnt,Txt Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",..KortTekst()) Do WRITELN^XMLWRITE(DevObj) Do ..LangTekst(.Taal,.Oms) Do BEGINTAG^XMLWRITE(DevObj,"OMS",$$PARAMFILL^XMLWRITE("TAAL",Taal)) Set Cnt=0 Set J="" For Set J=$O(Oms(J)) Quit:(J="") Do:($L(Oms(J))) . Set Cnt=Cnt+1 . Do TAGWRITE^XMLWRITE(DevObj,"LIJN",$$ConvertToHTML^vhRtn1(Oms(J)),$$PARAMFILL^XMLWRITE("VOLGNR",Cnt)) . Do WRITELN^XMLWRITE(DevObj) Do ENDTAG^XMLWRITE(DevObj,"OMS") Quit xmlwSpecialOms If MetaCode="TBX" Do . Set TypeAttr="Tandembox" . Set Oms="TandemBOX"_$S(..Val("PRO")=1:" pro", 1:"") Else If MetaCode="GRP" Do . Set TypeAttr="Greep" . Set Oms="Greep op maat" Else If MetaCode="TLM" Do . Set TypeAttr="Verlichting" . Set Oms="TL-Verlichting" Else If MetaCode="ASM" Do . Set TypeAttr="Antislipmat" . Set Oms="Antislipmat op maat" Else Do . Set TypeAttr="Onbekend" . Set Oms="Onbekend" Quit xmlwSpecialValues If MetaCode="TBX" Do xmlwSpecialsTBX Else If MetaCode="GRP" Do xmlwSpecialsGRP Else If MetaCode="TLM" Do xmlwSpecialsTLM Else If MetaCode="ASM" Do xmlwSpecialsASM Quit xmlwSpecialsTLM #define ImageDir $$$ImageDirGA("TLM") #define NodeIL "IL" #define DflSnoerLen 1500 New URLLi,URLRe,UL,UR,blTLM,PosList,pID,pIDFirstVR,pIDLastVR,SnoerUit,SnoerLExtra,pType,ktxt New TLID,blnTLExist, pTypeVR,pTypeOms,SnoerLExtraVR,SnLen,DItem Set UL=..Val("UL") Set UR=..Val("UR") Set URLLi=$$$ImageDir_$S($L(UL):"Verstek_Li_"_UL_".jpg", 1:"spacer.gif") Set URLRe=$$$ImageDir_$S($L(UR):"Verstek_Re_"_UR_".jpg", 1:"spacer.gif") Do TAGWRITE^XMLWRITE(DevObj,"IMAGE_LI_URL",URLLi) Do WRITELN^XMLWRITE(DevObj) Do TAGWRITE^XMLWRITE(DevObj,"IMAGE_RE_URL",URLRe) Do WRITELN^XMLWRITE(DevObj) ; Posities: Set PosList=..Val("LPOS") Set SnoerUit=..Val("SN") Set SnoerLExtra=1200 ; ..Val("SNLX") If $LL(PosList)=0 Do Quit . Do TAGWRITE^XMLWRITE(DevObj,"TLPOSITIES","") . Do WRITELN^XMLWRITE(DevObj) ; Else Do BEGINTAG^XMLWRITE(DevObj,"TLPOSITIES") Set blTLM=##class(BL.PR.GA.Verlichting).%New() Do blTLM.Initialize() Do blTLM.FillTLPosFromLists(..Val("LLAMP"),PosList,,..Val("LP")) Do blTLM.CalcSnoerLengte("*") Set pID=$O(blTLM.TLPos(0)) Set pIDFirstVR=$S($L(pID)&&($G(blTLM.TLPos(pID,".TYPE"))="VR"):pID, 1:"X") Set pID=$O(blTLM.TLPos($$$MaxTLPos),-1) Set pIDLastVR= $S($L(pID)&&($G(blTLM.TLPos(pID,".TYPE"))="VR"):pID, 1:"X") Set pID=0 For Set pID=$O(blTLM.TLPos(pID)) Quit:(pID=$$$MaxTLPos)||(pID="") Do . Set pType=$G(blTLM.TLPos(pID,".TYPE")) . Quit:(pType="UIT") . Do BEGINTAG^XMLWRITE(DevObj,"TLPOS",$$$Attrib("sort",pID)) . If pType="TL" Do xmlwTLPosTL . Else If pType="VR" Do xmlwTLPosVR . Else Do xmlwTLPosUnknown . Do ENDTAG^XMLWRITE(DevObj,"TLPOS") Do WRITELN^XMLWRITE(DevObj) Do TAGWRITE^XMLWRITE(DevObj,"LISTBEGINPOS",$$LCVTSimple^vhLib(PosList," - ",1),$$$Attrib("unit","mm")) Do WRITELN^XMLWRITE(DevObj) Do ENDTAG^XMLWRITE(DevObj,"TLPOSITIES") Quit xmlwTLPosTL #define ProgLblLamp(%v) "PRLA"_%v #define ProgLblLampH(%v) "PRLH"_%v Set TLID=blTLM.TLPos(pID,"ID") Set blnTLExist=$L(TLID)&&(blTLM.SwizzleTLs(TLID)) Set (ktxt,ktxtLH)="" Do . Set DItem=$G(..LookUp($$$NodeIL,$$$ProgLblLamp(TLID))) . Quit:('DItem) . Set ktxt=DItem.Eval("KTekst") Do . Set DItem=$G(..LookUp($$$NodeIL,$$$ProgLblLampH(TLID))) . Quit:('DItem) . Set ktxtLH=DItem.Eval("KTekst") Do TAGWRITE^XMLWRITE(DevObj,"OBJTYPE",pType,$$$Attrib("oms","Lamp")) Do TAGWRITE^XMLWRITE(DevObj,"KENM",$S(blnTLExist:blTLM.SwizzleTLs(TLID).Vermogen, 1:"?"),$S(blnTLExist:$$$Attrib("unit","W"),1:"")) Do TAGWRITE^XMLWRITE(DevObj,"TUSSENLENGTE",$G(blTLM.TLPos(pID,"LEN")),$$$Attrib("unit","mm")) Do TAGWRITE^XMLWRITE(DevObj,"BEGINPOS",$G(blTLM.TLPos(pID,"POS","B")),$$$Attrib("unit","mm")) Do TAGWRITE^XMLWRITE(DevObj,"EINDPOS", $G(blTLM.TLPos(pID,"POS","E")),$$$Attrib("unit","mm")) Do WRITELN^XMLWRITE(DevObj) Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",ktxtLH) ; Lamphouder Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",ktxt) ; Lamp Do WRITELN^XMLWRITE(DevObj) Quit xmlwTLPosVR #define ProgLblSnoer(%v) "PRSN"_"" If pID=pIDFirstVR Do ;If (blnFirstVR)&&($$xmlwTLPosIsOfType($O(..TLPos(pID),-1),"UIT")) Do . If $E(SnoerUit,1)="L" Do .. Set pTypeVR="SN" .. Set SnoerLExtraVR=SnoerLExtra . Else Do .. Set pTypeVR="B" Else If pID=pIDLastVR Do . If $E(SnoerUit,1)="R" Do .. Set pTypeVR="SN" .. Set SnoerLExtraVR=SnoerLExtra . Else Do .. Set pTypeVR="E" Else Do . Set pTypeVR="SN" . Set tmpSnoerLExtra=0 ; Snoer gegevens If pTypeVR="SN" Do . Set SnLen=$$$DflSnoerLen . Set ktxt="EYY.test" . ; Of via Lookup wordt dit: . Set DItem=$G(..LookUp($$$NodeIL,$$$ProgLblSnoer(""))) . Set ktxt="KTekst" . Quit:('DItem) . Set ktxt=DItem.Eval("KTekst") . ;Set SnLen=$$$DflSnoerLen Set pTypeOms=$CASE(pTypeVR, "SN":"Snoer", "B":"Begin", "E":"Einde", :"?") Do TAGWRITE^XMLWRITE(DevObj,"OBJTYPE",pTypeVR,$$$Attrib("oms",pTypeOms)) Do:(pTypeVR="SN") TAGWRITE^XMLWRITE(DevObj,"KENM",SnLen,$$$Attrib("unit","mm")) Do TAGWRITE^XMLWRITE(DevObj,"TUSSENLENGTE",$G(blTLM.TLPos(pID,"LEN")),$$$Attrib("unit","mm")) Do WRITELN^XMLWRITE(DevObj) Do:(pTypeVR="SN") TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",ktxt) Do:(pTypeVR="SN") WRITELN^XMLWRITE(DevObj) Quit xmlwTLPosIsOfType(pID,pType) Quit:(pID="") 0 Quit ($G(blTLM.TLPos(pID,".TYPE"))=pType) xmlwTLPosUnknown Do TAGWRITE^XMLWRITE(DevObj,"OBJTYPE",pType,$$$Attrib("oms","Onbekend "_pType)) Quit xmlwSpecialsASM Quit xmlwSpecialsGRP Quit xmlwSpecialsTBX #define VTLKeyLC "PR;GA;TBLC" New LC,URL2 Set LC=..Val("LC") Do TAGWRITE^XMLWRITE(DevObj,"LADECODE",LC) Do WRITELN^XMLWRITE(DevObj) // Via BL.Prod.ImageLink Set URL2=##class(BL.PR.GA.TandemBox).GetImageURL("WEB", ..Val("LC"),..Val("BS"),..Val("DS"),..Val("BGRP")) // Via VertalingLink (OLD) ;Set URL2=##class(Res.VertalingLink).GetLinkVertaling($$$VTLKeyLC,$$xmlwTBXLCToImg(LC),"LB",Taal,,"WWW") ;Set:(URL2[".gif")&&(..Val("BS")="BD") URL2=$$REPLACE^vhRtn1(URL2,".gif","_BS.gif") ; Dubbelwandige boxside Do TAGWRITE^XMLWRITE(DevObj,"IMAGEURL",URL2) Do WRITELN^XMLWRITE(DevObj) Quit /* xmlwTBXLCToImg(LC) Quit:($G(LC)="") "" Quit ##class(BL.PR.GA.TandemBox).ImageCodeFromLC(.LC,..Val("BS")) */ ; GAData.Product methods: ConsistencyCheck() ; Parameters: CheckArray,lbChecks CheckArray als .local doorgeven Set:('$D(lbChecks)) lbChecks=$LB($$$ccChildExpr,$$$ccVolgNrDItem,$$$ccVolgNrKost,$$$ccItemLabel,$$$ccProgLabel,$$$ccKolomNrParam,$$$ccParamMode,$$$ccExecutes) Quit:(lbChecks="") Kill CheckArray Do:($LF(lbChecks,$$$ccChildExpr)) cchChildExpr Do:($LF(lbChecks,$$$ccVolgNrDItem)) cchVolgNrDItem Do:($LF(lbChecks,$$$ccVolgNrKost)) cchVolgNrKost Do:($LF(lbChecks,$$$ccItemLabel)) cchItemLabel Do:($LF(lbChecks,$$$ccProgLabel)) cchProgLabel Do:($LF(lbChecks,$$$ccKolomNrParam)) cchKolomNrParam Do:($LF(lbChecks,$$$ccParamMode)) cchParamMode Do:($LF(lbChecks,$$$ccExecutes)) cchExecutes Quit $D(CheckArray)=0 cchChildExpr New arChExprSG Do cchChildExprMStruct Do cchChildExprDItems Quit cchChildExprMStruct ; Controleert voor alle Childs (in de hierarchy) dat de Code aanwezig is in de ChildExpr van de Parent (HG-GR-SG) New tmpAr,tmpLB New MetaH,MetaG,MetaS,ChExprH,ChExprG,iG,iS Set MetaH=..MetaStruct Quit:('MetaH) Set ChExprH=$$cchExprToList(MetaH.ChildExpr) Set iG="" For Set MetaG=MetaH.Groepen.GetNext(.iG) Quit:(iG="") Do . Set:($LF(ChExprH,MetaG.Code)<1) tmpAr("GR",MetaG.Code)=MetaH.ChildExpr . Set ChExprG=$$cchExprToList(MetaG.ChildExpr) . Set iS="" . For Set MetaS=MetaG.SubGroepen.GetNext(.iS) Quit:(iS="") Do .. Set:($LF(ChExprG,MetaS.Code)<1) tmpAr("SG",MetaS.Code)=MetaG.ChildExpr .. Set arChExprSG(MetaS.Code)=MetaS.ChildExpr Merge CheckArray($$$ccChildExpr)=tmpAr Quit cchChildExprDItems ; Controleert voor alle DataItems dat DItem.Code aanwezig is in de ChildExpr van de SubGroep ; Maakt gebruik van local "arChExprSG" die opgebouwd is in routine "cchChildExprMStruct" New tmpAr,iI,DItem,SGCode New i,Ch,blnIsChild Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . Set SGCode=DItem.SubGroepCode . If SGCode="" Do Quit .. Set tmpAr("DI",DItem.Code)="?SubGroep" . Else If $$cchExprViaWildCard($$cchExprToList($G(arChExprSG(SGCode))),DItem.Code) Quit . Else Set tmpAr("DI",DItem.Code)=$G(arChExprSG(SGCode)) ; DItem.Code past niet in de ChildExpr van de SG Merge CheckArray($$$ccChildExpr)=tmpAr Quit cchExprViaWildCard(lbChExpr,ItemCode) Quit:($LF(lbChExpr,ItemCode)>0) 1 Set blnIsChild=0 For i=1:1:$LL(lbChExpr) Do . Set Ch=$LI(lbChExpr,i) . If (Ch?.E1"*")&&($E(Ch,1,$L(Ch)-1)=$E(ItemCode,1,$L(Ch)-1)) Do .. Set blnIsChild=1 .. Set i=$LL(lbChExpr) ; quit for-loop immediate Quit blnIsChild cchVolgNrDItem ; Controleert dat de VolgNrs van alle DataItems binnen dezelfde SubGroep uniek zijn New tmpAr,tmpVNr,iI,DItem Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . If $D(tmpVNr(DItem.SubGroepCode,DItem.VolgNr)) Set tmpAr(DItem.SubGroepCode,DItem.Code)=DItem.VolgNr . Else Set tmpVNr(DItem.SubGroepCode,DItem.VolgNr)="" Merge CheckArray($$$ccVolgNrDItem)=tmpAr Quit cchVolgNrKost ; Controleert dat de VolgNrs van alle Kost-elementen binnen hetzelfde DataItem uniek zijn New tmpAr,iI,DItem,KKey,MKost,KostArray Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . New tmpVNr . Do cchVNrKostType("T") . Do cchVNrKostType("M") Merge CheckArray($$$ccVolgNrKost)=tmpAr Quit cchVNrKostType(KostType) Set KostArray=$S(KostType="M":DItem.KostMat, 1:DItem.KostTijd) ; Materiaal of Tijd - array of objects Set KKey="" For Set MKost=KostArray.GetNext(.KKey) Quit:(KKey="") Do . If $D(tmpVNr(MKost.VolgNr)) Set tmpAr(KostType,DItem.Code,KKey)=MKost.VolgNr . Else Set tmpVNr(MKost.VolgNr)="" Quit cchItemLabel ; Controleert dat het ItemLabel van alle DataItems uniek zijn New tmpAr,tmpVNr,iI,DItem Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . Quit:(DItem.Label="") . If $D(tmpVNr(DItem.Label)) Set tmpAr(DItem.Code)=DItem.Label . Else Set tmpVNr(DItem.Label)="" Merge CheckArray($$$ccItemLabel)=tmpAr Quit cchProgLabel ; Controleert dat de ProgLabels van alle DataItems uniek zijn New tmpAr,tmpVNr,iI,DItem,iP,ProgLabel,MParam Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . Quit:('DItem.IsActief()) . Set iP="" . For Set MParam=DItem.MetaItem.Parameters.GetNext(.iP) Quit:(iP="") Do:(iP?1"ProgLabel".E) .. Set ProgLabel=DItem.Get(iP) .. Quit:(ProgLabel="") .. If $D(tmpVNr(ProgLabel)) Set tmpAr(DItem.Code,iP)=ProgLabel .. Else Set tmpVNr(ProgLabel)="" Merge CheckArray($$$ccProgLabel)=tmpAr Quit cchKolomNrParam ; Deze method moet eigenlijk alleen maar op ieder MetaItem-object uitgevoerd worden, ipv. alle DataItems af te lopen ! ; Controleert dat de KolomNrs van alle MetaParams binnen hetzelfde MetaItem uniek zijn New tmpAr,iI,DItem,iP,MParam Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . New tmpVNr . Set iP="" . For Set MParam=DItem.MetaItem.Parameters.GetNext(.iP) Quit:(iP="") Do:(MParam.KolomNr>0) .. If $D(tmpVNr(MParam.KolomNr)) Set tmpAr(DItem.MetaItem.%Id(),iP)=MParam.KolomNr .. Else Set tmpVNr(MParam.KolomNr)="" Merge CheckArray($$$ccKolomNrParam)=tmpAr Quit cchParamMode ; Deze method moet eigenlijk alleen maar op ieder MetaItem-object uitgevoerd worden, ipv. alle DataItems af te lopen ! ; Controleert dat de waarde van Mode van alle MetaParams toegelaten is. New tmpAr,iI,DItem,iP,MParam Set iI="" For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do . New tmpVNr . Set iP="" . For Set MParam=DItem.MetaItem.Parameters.GetNext(.iP) Quit:(iP="") Do .. If (MParam.Mode="")||("S;F;V;C;M;L;E"'[MParam.Mode) Set tmpAr(DItem.MetaItem.%Id(),iP)=MParam.Mode Merge CheckArray($$$ccParamMode)=tmpAr Quit cchExecutes Quit cchExprToList(sExpr) ; Convert Child Expression to $LB() ; New tmpLB in bovenliggende routine Set tmpLB="" For i=1:1:$L(sExpr,"+") Set tmpLB=tmpLB_$LB($P(sExpr,"+",i)) Quit tmpLB CheckArrayTranslate ; Parameters: CheckArrayIn,CheckArrayOut,blnAsText CheckArray's als .local doorgeven) Kill CheckArrayOut Do chtChildExpr Do chtVolgNrDItem Do chtVolgNrKost Do chtItemLabel Do chtProgLabel Do chtKolomNrParam Do chtParamMode Do chtExecutes Quit chtAddMsg(type,msg) If blnAsText Do . Set CheckArrayOut=$G(CheckArrayOut)_"["_type_"]: "_msg_$$$CRLF Else Do . Set:($L(msg)) CheckArrayOut($O(CheckArrayOut(""),-1)+1)="["_type_"]: "_msg Quit chtChildExpr #define TranslMetaType(%v) $CASE(%v, "GR":"de Groep", "SG":"de Subgroep", "DI":"het DataItem", :"?") Quit:('$D(CheckArrayIn($$$ccChildExpr))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccChildExpr) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do .. Do chtAddMsg("ChildExpr",$$$TranslMetaType(i)_" met code """_c_""" kan niet voorkomen in de ChildExpr: "_tmpAr(i,c)) Quit chtVolgNrDItem Quit:('$D(CheckArrayIn($$$ccVolgNrDItem))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccVolgNrDItem) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do .. Do chtAddMsg("UniekVolgNrDItem","het VolgNr ("_tmpAr(i,c)_") van het DataItem """_c_""" is niet uniek binnen de Subgroep """_i) Quit chtVolgNrKost Quit:('$D(CheckArrayIn($$$ccVolgNrKost))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccVolgNrKost) Set i="" For Set i=$O(tmpAr("T",i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr("T",i,c)) Quit:(c="") Do .. Do chtAddMsg("UniekVolgNrKost","het VolgNr ("_tmpAr("T",i,c)_") van het KostTijd-element """_c_""" is niet uniek binnen DataItem """_i) Set i="" For Set i=$O(tmpAr("M",i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr("M",i,c)) Quit:(c="") Do .. Do chtAddMsg("UniekVolgNrKost","het VolgNr ("_tmpAr("M",i,c)_") van het KostMat-element """_c_""" is niet uniek binnen DataItem """_i) Quit chtItemLabel Quit:('$D(CheckArrayIn($$$ccItemLabel))) New tmpAr,i Merge tmpAr=CheckArrayIn($$$ccItemLabel) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Do chtAddMsg("UniekItemLabel","het Label """_tmpAr(i)_""" van het DataItem """_i_""" is niet uniek") Quit chtProgLabel Quit:('$D(CheckArrayIn($$$ccProgLabel))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccProgLabel) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do .. Do chtAddMsg("UniekProgLabel","de ProgLabel """_tmpAr(i,c)_""" van het DataItem """_i_ """ bij parameter """_c_""" is niet uniek") Quit chtKolomNrParam Quit:('$D(CheckArrayIn($$$ccKolomNrParam))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccKolomNrParam) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do .. Do chtAddMsg("UniekKolomNrParam","het KolomNr ("_tmpAr(i,c)_") van parameter """_c_""" is niet uniek binnen het MetaItem """_i) Quit chtParamMode Quit:('$D(CheckArrayIn($$$ccParamMode))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccParamMode) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Set c="" . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do .. Do chtAddMsg("ParamMode","In het MetaItem """_i_""" is Mode """_tmpAr(i,c)_""" (bij parameter """_c_""") is niet toegelaten") Quit chtExecutes Quit:('$D(CheckArrayIn($$$ccExecutes))) New tmpAr,i,c Merge tmpAr=CheckArrayIn($$$ccExecutes) Set i="" For Set i=$O(tmpAr(i)) Quit:(i="") Do . Do:($D(tmpAr(i))#10) chtAddMsg("Execute",i_"/"_tmpAr(i)) . Set c="" . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do .. Do chtAddMsg("Execute",i_"/"_c_"/"_tmpAr(i,c)) Quit