Basis BL-klasse voor het aanmaken van FOP task voor de FlowDocs. Deze BL moet geïnstantieerd worden PRGACNTs 1 %RegisteredObject 0 Oproepende BL-object %RegisteredObject %Status KlantNr %String Domein verwerker %String Huidige DCM %String %String Javascript code voor de KleurDefaults %String Javascript code voor de KleurDefaults %String Javascript code voor de MatenDefaults %String HTML code voor de MatenDefaults %String MatenDflAvail geeft aan welke Default Maten gedefinieerd zijn : ALL / NONE / UNDEF / SOME %String lbAllowVPK is een $LB() van toegelaten VPK-codes, bvb. $LB("S","O") %List HTML code voor de MatenDefaults %String 1 Parameters voor ... (nog in te vullen) %String array Set blTBoxDfl=##class(cspBasis.GAProdDfls).Instantiate(...) 1 ParentBL:%RegisteredObject cspBasis.GAProdDfls KLNr:%String,sDomVERW:%String,DCM:%String,Taal:%String="",lbAllowVPK:%List="" Analyseren van de lbDFL (=MatenDefaults) + invullen in de multi-dim property arDFL("MTN") + berekenen van de property MatenDflAvail lbDFL:%List 1 0 Do . Set blnEmpty=blnEmpty&&(tmpAr("VPK")="") . Set blnFull=blnFull&&($L(tmpAr("VPK"))) Set ..MatenDflAvail=$S(blnFull:"ALL", blnEmpty:"NONE", 1:"SOME") ; , $LG(lbDFL,1)="":"UNDEF" Quit CheckVerpakking() // Extra controlos op verpakking Set:(tmpAr("VPK")'?1(1"",1"No"))&&($LL(..lbAllowVPK))&&('$LF(..lbAllowVPK,tmpAr("VPK"))) tmpAr("VPK")="" Quit ]]> element. ]]> 1 %String element. ]]> 1 "_(%v)_"" #define fmtValue(%v) ""_(%v)_"" #define Separator "   |   " // Ophalen van de klantspecifieke defaults (Maten+Design) If '$D(..arDFL("MTN"))||(..MatenDflAvail="") Do . Set lbDFL=..GetKlantDefaults("MTN","*","*") ; DCM --> DC . Do ..FillMatenDflArray(lbDFL) If Type'?1(1"INFO") Do Quit . Set ..ErrorStatus="Type "_$G(Type)_" is niet gedefinieerd." Set blnVPK=($LL(..lbAllowVPK)>0) Set Taal=..Taal Kill arMtnDfl Merge arMtnDfl=..arDFL("MTN") // Type="INFO" If ($D(arVTL("DFL"))) Do . Set arMtnDfl("FB")=$G(arVTL("DFL","FB_"_arMtnDfl("FB")),arMtnDfl("FB")) . Set arMtnDfl("BM")=$G(arVTL("DFL","BM_"_arMtnDfl("BM")),arMtnDfl("BM")) . Set arMtnDfl("WD")=$G(arVTL("DFL","WD_"_arMtnDfl("WD")),arMtnDfl("WD")) . Set arMtnDfl("ASM")=$G(arVTL("DFL","ASM_"_arMtnDfl("ASM")),arMtnDfl("ASM")) . Set tmpVPK=$G(arMtnDfl("VPK")) . Set:(blnVPK) arMtnDfl("VPK")=$G(arVTL("DFL","VPK_"_tmpVPK),tmpVPK) . For i=1:1:$L(arMtnDfl("NM"),";") Do . . Set NietMeeKey=($P(arMtnDfl("NM"),";",i)) . . Set:($L(NietMeeKey)) arMtnDfl(NietMeeKey,"VTL")=$G(arVTL("DFL",NietMeeKey),NietMeeKey) // Op basis van arMtnDfl() een HTML-code maken Set cspBasis=##class(cspBasis.GAProdTBox).%New() Set sHtml="" Set:(arMtnDfl("FB")'?1(1"",1"No")) sHtml=sHtml_$$$fmtLabel(cspBasis.WebTextValue("Frontbevestiging",Taal,"L"))_": "_$$$fmtValue(arMtnDfl("FB"))_$$$CRLF Set:(arMtnDfl("BM")'?1(1"",1"No")) sHtml=sHtml_$S($L(sHtml):$$$Separator,1:"")_$$$fmtLabel(cspBasis.WebTextValue("Glijders",Taal,"L"))_": "_$$$fmtValue(arMtnDfl("BM"))_$$$CRLF Set:(arMtnDfl("WD")'?1(1"",1"No")) sHtml=sHtml_$S($L(sHtml):$$$Separator,1:"")_$$$fmtLabel(cspBasis.WebTextValue("Wanddikte",Taal,"L"))_": "_$$$fmtValue(arMtnDfl("WD"))_$$$CRLF Set:(arMtnDfl("ASM")'?1(1"",1"No")) sHtml=sHtml_$S($L(sHtml):$$$Separator,1:"")_$$$fmtLabel(cspBasis.WebTextValue("Antislipmat",Taal,"L"))_": "_$$$fmtValue(arMtnDfl("ASM"))_$$$CRLF ;Set:(arMtnDfl("BM")'?1(1"",1"No")) sHtml=sHtml_$S($L(sHtml):$$$Separator,1:"")_$$$fmtValue(arMtnDfl("BM"))_$$$CRLF If blnVPK Do . Set:(tmpVPK'?1(1"",1"No",1"S",1"Z",1"A",1"B",1"X",1"Y")) arMtnDfl("VPK")=cspBasis.WebTextValue("VerpakBulk",Taal,"L",$LB("L"))_": "_arMtnDfl("VPK") ; Added "X","Y" by WimV on 31/05/2011 - niet zeker of dit nodig is. . Set:(blnVPK)&&(arMtnDfl("VPK")'?1(1"",1"No")) sHtml=sHtml_$S($L(sHtml):"
",1:"")_$$$fmtLabel(cspBasis.WebTextValue("Verpakking",Taal,"L"))_": "_$$$fmtValue(arMtnDfl("VPK"))_$$$CRLF Do ; Niet Meeleveren . Set sNietMee="" . For i=1:1:$L(arMtnDfl("NM"),";") Set NietMeeKey=($P(arMtnDfl("NM"),";",i)) Set:($L(NietMeeKey)) sNietMee=sNietMee_$S($L(sNietMee):", ",1:"")_$$$fmtValue($G(arMtnDfl(NietMeeKey,"VTL"),NietMeeKey)) . Set:($L(sNietMee)) sHtml=sHtml_$S($L(sHtml):"
",1:"")_$$$fmtLabel(cspBasis.WebTextValue("NietMeeleveren",Taal,"L"))_": "_sNietMee // Als niet alle Defaults leeg, dan opsommen welke undefined zijn If ..MatenDflAvail'="ALL" Do . Set sHtmlEmpty="" . Set:(arMtnDfl("FB")="") sHtmlEmpty=sHtmlEmpty_$$$fmtValue(cspBasis.WebTextValue("Frontbevestiging",Taal,"L")) . Set:(arMtnDfl("BM")="") sHtmlEmpty=sHtmlEmpty_$S($L(sHtmlEmpty):$$$Separator,1:"")_$$$fmtValue(cspBasis.WebTextValue("Blumotion",Taal,"L")) . Set:(arMtnDfl("WD")="") sHtmlEmpty=sHtmlEmpty_$S($L(sHtmlEmpty):$$$Separator,1:"")_$$$fmtValue(cspBasis.WebTextValue("Wanddikte",Taal,"L")) . Set:(arMtnDfl("ASM")="") sHtmlEmpty=sHtmlEmpty_$S($L(sHtmlEmpty):$$$Separator,1:"")_$$$fmtValue(cspBasis.WebTextValue("Antislipmat",Taal,"L")) . Set:(blnVPK)&&(arMtnDfl("VPK")="") sHtmlEmpty=sHtmlEmpty_$S($L(sHtmlEmpty):$$$Separator,1:"")_$$$fmtValue(cspBasis.WebTextValue("Verpakking",Taal,"L")) . ; Append to sHtml . Set sHtml=sHtml_$S($L(sHtml):"
",1:"")_$$$fmtLabel(cspBasis.WebTextValue("DFL_NoDefaultsFor",Taal,"L"))_": "_sHtmlEmpty_$$$CRLF Set sHtml="

"_$$$CRLF_sHtml_"

" // Set property Set ..MatenDefaultsHTML=sHtml Quit ]]>
Returns complete JS-function : "function GetMatenDefaults() { ... }" 1 DC . Do ..FillMatenDflArray(lbDFL) Kill arMtnDfl Merge arMtnDfl=..arDFL("MTN") // Extra aanpassingen of controles Set:(arMtnDfl("DS")="") arMtnDfl("DS")=$S(..DCM="I":"WI", ..DCM="A":"WA", 1:"WS") // Op basis van arMtnDfl() een JS-function maken Set jsFunc="" Set jsFunc=jsFunc_$$$CRLF_$C(9)_"function GetMatenDefaults() {" Set jsFunc=jsFunc_$$$CRLF_$C(9)_$C(9)_"arKlrValue['DS']="_$$$QuoteJS(arMtnDfl("DS"))_";" Set jsFunc=jsFunc_$$$CRLF_$C(9) For Lbl="FB","BM","WD","ASM","VPK" Set:($L($G(arMtnDfl(Lbl)))) jsFunc=jsFunc_$$$CRLF_$C(9)_$C(9)_"arKlrValue["_$$$QuoteJS("DFL_"_Lbl)_"]="_$$$QuoteJS(arMtnDfl(Lbl))_";" If $$$aHasSubNodes(arMtnDfl("NM")) Do . For i=1:1:$L(arMtnDfl("NM"),";") Set NietMeeKey=($P(arMtnDfl("NM"),";",i)) Set:($L(NietMeeKey)) jsFunc=jsFunc_$$$CRLF_$C(9)_$C(9)_"arKlrValue["_$$$QuoteJS("DFL_"_NietMeeKey)_"]=1;" Set jsFunc=jsFunc_$$$CRLF_$C(9)_"}" // Set property Set ..MatenDefaultsJS=jsFunc Quit ]]> 1 Returns complete JS-function : "function GetKleurDefaults(DS,arKleur) { ... }" DC:%String 1 Returns complete JS-function : "function BuildInschfElmnt() { ... }" 1 Get Kleur Defaults : arKlrDfl als .local doorgeven For each Design the defaults for KleurBodem, KleurReling, KleurVulling, ... are defined here. Returns Array ByRef 1 1 Zie method ..GetKlantDefaultsRAW() Type = "KLR" of "MTN" Returns a $LB() Type:%String,DC:%String,DS:%String 1 %List 0) "" Set DCM=..DCM Set:(DCM'?1(1"S",1"I",1"A",1"X")) DCM="S" If DCM="X" Do ; Expert --> DCM = S + I / DC = S + I . If Type="KLR" Do . . Set lbDFL=..GetKlantDefaultsRAW(Type,"S","*",DS) . . Set lbDFL=lbDFL_..GetKlantDefaultsRAW(Type,"I","*",DS) . Else If Type="MTN" Do . . Set lbDFL=..GetKlantDefaultsRAW(Type,"*","S","*") . . Set lbDFL=lbDFL_..GetKlantDefaultsRAW(Type,"*","I","*") Else Do ; Normale situatie . If Type="KLR" Do . . Set lbDFL=..GetKlantDefaultsRAW("KLR",DCM,"*",DS) . Else If Type="MTN" Do . . Set:(DC'?1(1"S",1"I",1"A")) DC=$S(DCM="I":"I", DCM="A":"A", 1:"S") . . Set lbDFL=..GetKlantDefaultsRAW("MTN","*",DC,"*") Quit ..GeefAangepasteOpgehaldeDefaults(lbDFL, Type, DC) ]]> Method naam GeefAangepasteOpgehaaldeDefaults is langer dan 31 tekens :-( lbDFL:%String,Type:%String,DC:%String 1 1 %String Get Klant Defaults Type = "KLR" of "MTN" Returns a nested $LB() of Defaults : $LB($LB(DC,DS,tmpList),$LB(DC,DS,tmpList), ...) Type:%String,DCM:%String,DC:%String,DS:%String 1 %List Get Klant Defaults Type = "KLR" of "MTN" Returns a nested $LB() of Defaults : $LB($LB(DC,DS,tmpList),$LB(DC,DS,tmpList), ...) Oproepen via : s lb=##class(cspBasis.GAProdTBox).GetKlantDefaultsRAW("KLR",4645,"VHEPN","S","S","*") w $$LCVT^vhLib(lb),! 1 Type:%String,KLNr:%String,sDomVERW:%String,DCM:%String,DC:%String,DS:%String 1 %List 0) "" Set lbDFL="" Set:(Type="KLR") lbDFL=$$gkdGetKleurDflList(DCM,DC,DS) Set:(Type="MTN") lbDFL=$$gkdGetMatenDflList(DCM,DC,DS) Quit lbDFL gkdGetKleurDflList(DCM,DC,DS) Set tmpLB="" If DS?1(1"",1"*") Do . Set DS="" . For Set DS=$O($$$GlobalKleurDfls(DCM,DC,DS)) Quit:(DS="") Do . . Set tmpList=$G($$$GlobalKleurDfls(DCM,DC,DS)) . . Set:($L(tmpList)) tmpLB=tmpLB_$LB($LB(DC,DS,tmpList)) Else Do . Set tmpList=$G($$$GlobalKleurDfls(DCM,DC,DS)) . Set:($L(tmpList)) tmpLB=$LB($LB(DC,DS,tmpList)) Quit tmpLB gkdGetMatenDflList(DCM,DC,DS) Set tmpLB="" Set tmpList=$G($$$GlobalMatenDfls(DCM,DC,DS)) Set:($L(tmpList)) tmpLB=$LB($LB(DC,DS,tmpList)) Quit tmpLB ]]> Set Klant Defaults NewDefaults is piece-delimited list : - Type = "KLR" : DS\KB\KR\KV - Type = "MTN" : DC\DS\FB\BM\WD\VPK Returns %Status Type:%String,DC:%String,DS:%String,NewDefaults:%String 1 %Status 0) $$$OK Quit:(DCM="") $$$ERROR($$$GeneralError,"Foutief of onbekend modus DCM ("_DCM_")") If DCM="X" Do ; Expert . Set DCM=$S(DC="I":"I", DCM="A":"A", 1:"S") If Type="KLR" Do . Set sc=$$skdSetKleurDfls(DCM,"*",DS) Else If Type="MTN" Do . Set DC=$S(DC="I":"I", DCM="A":"A", 1:"S") . Set sc=$$skdSetMatenDfls("*",DC,"*") Quit sc skdSetKleurDfls(DCM,DC,DS) Set $$$GlobalKleurDfls(DCM,DC,DS)=NewDefaults Quit $$$OK skdSetMatenDfls(DCM,DC,DS) Set $$$GlobalMatenDfls(DCM,DC,DS)=NewDefaults Quit $$$OK ]]> Save Klant Defaults pdlKleurDfl is piece-delimited list : DS\KB\KR\KV pdlMatenDfl is piece-delimited list : DC\DS\FB\BM\WD\VPK\NM\ASM Returns error message as string or "" (empty) DC:%String,DS:%String,pdlKleurDfl:%String,pdlMatenDfl:%String 1 %Status pdlMatenDfl:%String 1 1 %String Test method Oproepen via : s sc=##class(cspBasis.GAProdDfls).BuildDefaultsCSPtest(4645,,"S",,) w sc,! 1 KLNr:%String,sDomVERW:%String="VHEPN",DCM:%String="S",Taal:%String="N",lbAllowVPK:%List="" %Status