JavaScript-file voor dynamisch opbouwen van JS-arrays Haalt data uit de klassen Kenmerk.Basis.DataDefinitie en Prod.GAMeta.BT.LadeCode In geval de JSArray gekopieerd wordt, bvb naar WWW, moet de data daar ook geïmporteerd worden (use "TBX Product Matrix.xls") PRGACNTs 1 %CSP.Page 0 text/javascript UTF-8 /VHISIE/TBX/ResItems.csp 0 0 Oproepen via s sc=##class(csp.tbx.resitems).CreateJSAll() w sc,! 1 %Status Oproepen via s sc=##class(csp.tbx.resitems).CreateJSFile(,) w sc,! s sc=##class(csp.tbx.resitems).CreateJSFile(,"I") w sc,! s sc=##class(csp.tbx.resitems).CreateJSFile(,"S;F;I;MA;A") w sc,! 1 FilePath:%String="",TBoxDesign:%String %Status 1 %Status 1 Kenmerk,Waarden INTO :UnID,:KMNaam,:KMWaarde FROM Kenm_Basis.DataDefinitie WHERE (Kenmerk->Groep = :Groep) and (Kenmerk->Kenmerk %STARTSWITH 'TB')) &sql(OPEN crsDW) For &sql(FETCH crsDW) Quit:SQLCODE Set arKenm(UnID,KMNaam)=$LG(KMWaarde,1) &sql(CLOSE crsDW) Quit cjsBuildArrayBPM(arKenm,arLCode,arBPM) ; Loop through arKenm, lookup LCode and build array arBPM (values sorted) #define akKLAS arKenm(UnID,$$$KLAS) #define akGT arKenm(UnID,$$$GT) #define akLT arKenm(UnID,$$$LT) #define akZW arKenm(UnID,$$$ZW) #define akRH arKenm(UnID,$$$RH) #define akDS arKenm(UnID,$$$DS) #define akLD arKenm(UnID,$$$LD) #define akDK arKenm(UnID,$$$DK) ;New i,UnID,LCodeID Set i="" Set UnID="" For Set UnID=$O(arKenm(UnID)) Quit:(UnID="") Do . Quit:($G($$$akDS)="")||($G($$$akLD)="")||($G($$$akDK)="") . Set LCodeID=$G(arLCode($G($$$akKLAS)_"-"_$G($$$akGT)_"-"_$G($$$akLT)_"-"_$G($$$akZW)_"-"_$G($$$akRH))) . Quit:(LCodeID="") . Quit:($$$DKExclude($$$akDK)) . Set:('$D(arBPM($$$akDS,LCodeID))) arBPM($$$akDS,LCodeID)=$LB($G($$$akKLAS),$G($$$akZW),$G($$$akRH),$G($$$akLT)) . Set arBPM($$$akDS,LCodeID,$$$akLD,$$$akDK)=arBPM($$$akDS,LCodeID) Quit cjsWriteJSArray(arBPM) #define NotInList(%l,%i) ($LF(%l,%i)=0) ;New iDS,iLC,iLD,iDK,pdlDK,blnNext Write "var cItemLT=0;",! Write "var cItemLD=1;",! Write "var cItemDK=2;",! Write "",! Write "var arBPM=Array();",! Kill arDC Set (iDS,iLC,iLD,iDK)="" For Set iDS=$O(arBPM(iDS)) Quit:(iDS="") Do . Set DC=##class(BL.PR.GA.TandemBox).DesignCodeFromDS(iDS) . Quit:($$cjsExcludeDS(iDS,DC)) . Set arDC("LC",DC)="" . Set arDC("DS",DC)=$G(arDC("DS",DC))_$LB(iDS) . Set arDC("BX",DC)="" . Write "arBPM["_$$$QuoteJS(iDS)_"]=Array(",! . Set blnNext=0 . For Set iLC=$O(arBPM(iDS,iLC)) Quit:(iLC="") Do . . Quit:($$cjsExcludeLC(iLC,DC)) . . For Set iLD=$O(arBPM(iDS,iLC,iLD)) Quit:(iLD="") Do . . . Set pdlDK="" . . . For Set iDK=$O(arBPM(iDS,iLC,iLD,iDK)) Quit:(iDK="") Set pdlDK=pdlDK_";"_iDK . . . Set:($E(pdlDK,1)=";") $E(pdlDK,1)="" . . . If blnNext Write ",",! . . . Else Set blnNext=1 . . . Write " Array("_$$$QuoteJS(iLC)_","_iLD_","_$$$QuoteJS(pdlDK)_")" . . Set:($$$NotInList(arDC("LC",DC),iLC)) arDC("LC",DC)=arDC("LC",DC)_$LB(iLC) . . Set arDC("I_DS-LC",iDS,iLC,"DC")=DC . Write !,");",! Write ! Write "var arDC_DS=Array();",! Set DC="" For Set DC=$O(arDC("DS",DC)) Quit:(DC="") Do . Set lbItems=$G(arDC("DS",DC)) . Quit:($LG(lbItems,1)="") . Write "arDC_DS["_$$$QuoteJS(DC)_"]=Array(" . Write $$$QuoteJS($LG(lbItems,1)) . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . Write ");",! Write ! Write "var arDC_LC=Array();",! Set DC="" For Set DC=$O(arDC("LC",DC)) Quit:(DC="") Do . Set lbItems=$G(arDC("LC",DC)) . Quit:($LG(lbItems,1)="") . Write "arDC_LC["_$$$QuoteJS(DC)_"]=Array(" . Write $$$QuoteJS($LG(lbItems,1)) . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . Write ");",! Write ! Do cjsBuildKVarray(.arDC) Write "var arDC_KV=Array();",! Set DC="" For Set DC=$O(arDC("KV",DC)) Quit:(DC="") Do . Set lbItems=$G(arDC("KV",DC)) . Quit:($LG(lbItems,1)="") . Write "arDC_KV["_$$$QuoteJS(DC)_"]=Array(" . Write $$$QuoteJS($LG(lbItems,1)) . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . Write ");",! Write ! Do cjsBuildBXarray(.arDC) Write "var arDC_BX=Array();",! Set DC="" For Set DC=$O(arDC("BX",DC)) Quit:(DC="") Do . Set lbItems=$G(arDC("BX",DC)) . Quit:($LG(lbItems,1)="") . Write "arDC_BX["_$$$QuoteJS(DC)_"]=Array(" . Write $$$QuoteJS($LG(lbItems,1)) . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . Write ");",! Write ! // Boxside keuzes per LadeCode Write "var arDS_BX=Array();",! Set (iDS,iLC)="" For Set iDS=$O(arDC("BX-2",iDS)) Quit:(iDS="") Do . For Set iLC=$O(arDC("BX-2",iDS,iLC)) Quit:(iLC="") Do . . Set lbItems=$G(arDC("BX-2",iDS,iLC)) . . Quit:($LG(lbItems,1)="") . . Write "arDS_BX["_$$$QuoteJS(iDS_"_"_iLC)_"]=Array(" . . Write $$$QuoteJS($LG(lbItems,1)) . . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . . Write ");",! Write ! // Spoelbak Zijstukken per LadeCode Write "var arDC_SPZK=Array();",! Set (iDC,iLC)="" For Set iDC=$O(arDC("SPZK",iDC)) Quit:(iDC="") Do . For Set iLC=$O(arDC("SPZK",iDC,iLC)) Quit:(iLC="") Do . . Set lbItems=$G(arDC("SPZK",iDC,iLC)) . . Quit:($LG(lbItems,1)="") . . Write "arDC_SPZK["_$$$QuoteJS(iDC_"_"_iLC)_"]=Array(" . . Write $$$QuoteJS($LG(lbItems,1)) . . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . . Write ");",! Write ! // Frontsteun keuzes per LadeCode Write "var arDCLC_FS=Array(); // DC replaced by ""XX"", same items for every DC. ",! Set (iDC,iLC)="" For Set iDC=$O(arDC("FS",iDC)) Quit:(iDC="") Do . Quit:(iDC'="XX") . For Set iLC=$O(arDC("FS",iDC,iLC)) Quit:(iLC="") Do . . Set lbItems=$G(arDC("FS",iDC,iLC)) . . Quit:($LG(lbItems,1)="") . . Write "arDCLC_FS["_$$$QuoteJS(iDC_"_"_iLC)_"]=Array(" . . Write $$$QuoteJS($LG(lbItems,1)) . . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . . Write ");",! Write ! // Dwarsverdeling keuzes per LadeCode Write "var arDCLC_DWV=Array(); // DC replaced by ""XX"", same items for every DC. ",! Set (iDC,iLC)="" For Set iDC=$O(arDC("DWV",iDC)) Quit:(iDC="") Do . Quit:(iDC'="XX") . For Set iLC=$O(arDC("DWV",iDC,iLC)) Quit:(iLC="") Do . . Set lbItems=$G(arDC("DWV",iDC,iLC)) . . Quit:($LG(lbItems,1)="") . . Write "arDCLC_DWV["_$$$QuoteJS(iDC_"_"_iLC)_"]=Array(" . . Write $$$QuoteJS($LG(lbItems,1)) . . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . . Write ");",! Write ! // Kleur van Reling/Boxside keuzes per Design Write "var arDS_KLR=Array();",! Set iDS="" For Set iDS=$O(arDC("I_DS-LC",iDS)) Quit:(iDS="") Do . Set lbItems=$$cjsBuildRKlistForDS(iDS) . Quit:($LG(lbItems,1)="") . Write "arDS_KLR["_$$$QuoteJS("RK_"_iDS)_"]=Array(" . Write $$$QuoteJS($LG(lbItems,1)) . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . Write ");",! ;Write ! ;Write "var arDS_KLR_KX=Array();",! Set iDS="" For Set iDS=$O(arDC("I_DS-LC",iDS)) Quit:(iDS="") Do . Set lbItems=$$cjsBuildKXlistForDS(iDS) . Quit:($LG(lbItems,1)="") . Write "arDS_KLR["_$$$QuoteJS("KX_"_iDS)_"]=Array(" . ;Write "arDS_KLR_KX["_$$$QuoteJS(iDS)_"]=Array(" . Write $$$QuoteJS($LG(lbItems,1)) . For i=2:1:$LL(lbItems) Write ", "_$$$QuoteJS($LG(lbItems,i)) . Write ");",! Quit cjsExcludeDS(iDS,DC) Quit:(TBoxDesign'[DC) 1 Quit:($LF(lbTBoxDesign,DC)=0) 1 Quit:(DC="S" ) ($$$DSExclude4S(iDS)) Quit:(DC="F" ) ($$$DSExclude4F(iDS)) Quit:(DC="I" ) ($$$DSExclude4I(iDS)) Quit:(DC="B" ) ($$$DSExclude4B(iDS)) Quit:(DC="MA") ($$$DSExclude4MA(iDS)) Quit:(DC="A" ) ($$$DSExclude4A(iDS)) Quit 1 cjsExcludeLC(iLC,DC) Quit:(DC="S" ) ($$$LCExclude4S(iLC)) Quit:(DC="F" ) ($$$LCExclude4F(iLC)) Quit:(DC="I" ) ($$$LCExclude4I(iLC)) Quit:(DC="B" ) ($$$LCExclude4B(iLC)) Quit:(DC="MA") ($$$LCExclude4MA(iLC)) Quit:(DC="A" ) ($$$LCExclude4A(iLC)) Quit 1 cjsBuildKVarray(arDC) ; arDC als .local doorgeven Kill arDC("KV") ;d WLIP^vhDBG(97,"cjsBuildKVarray") Set (iDS,iLC)="" For Set iDS=$O(arDC("I_DS-LC",iDS)) Quit:(iDS="") Do . For Set iLC=$O(arDC("I_DS-LC",iDS,iLC)) Quit:(iLC="") Do . . Set DC=arDC("I_DS-LC",iDS,iLC,"DC") . . Set lbKV=$$cjsBuildKVlistForDS(iDS,DC) . . ;Set arDC("KV-2",iDS,iLC)=lbKV . . If $G(arDC("KV",DC))="" Set lbKVbyDC=lbKV . . Else Do . . . Set lbKVbyDC=arDC("KV",DC) . . . For i=1:1:$LL(lbKV) Set:($$$NotInList(lbKVbyDC,$LI(lbKV,i))) lbKVbyDC=lbKVbyDC_$LB($LI(lbKV,i)) . . Set arDC("KV",DC)=lbKVbyDC Quit cjsBuildBXarray(arDC) ; arDC als .local doorgeven Kill arDC("BX") ;d WLIP^vhDBG(97,"cjsBuildBXarray") Set (iDS,iLC)="" For Set iDS=$O(arDC("I_DS-LC",iDS)) Quit:(iDS="") Do . For Set iLC=$O(arDC("I_DS-LC",iDS,iLC)) Quit:(iLC="") Do . . Set lbDefsLC=arBPM(iDS,iLC) . . Set DC=arDC("I_DS-LC",iDS,iLC,"DC") . . Set arDC("SPZK",DC,iLC)=$$cjsBuildSPZKlistForLC(iLC,iDS,DC,$LI(lbDefsLC,1),$LI(lbDefsLC,3)) ; KLAS=$LI(lbDefsLC,1) RH=$LI(lbDefsLC,3) . . Set arDC("FS",DC,iLC)=$$cjsBuildFSlistForLC(iLC,iDS,DC,$LI(lbDefsLC,1),$LI(lbDefsLC,3),$LI(lbDefsLC,4)) ; KLAS=$LI(lbDefsLC,1) RH=$LI(lbDefsLC,3) LT=$LI(lbDefsLC,4) . . Set arDC("FS","XX",iLC)=arDC("FS",DC,iLC) ; Simplified version, because independant from DC . . Set lbBX=$$cjsBuildBXlistForLC(iLC,iDS,DC,$LI(lbDefsLC,2),$LI(lbDefsLC,3)) ; ZW=$LI(lbDefsLC,2) RH=$LI(lbDefsLC,3) . . ;d WL^vhDBG("iDS,iLC : "_iDS_" "_$J(iLC,5)_" : "_$J($LI(lbDefsLC,2),4)_" "_$J($LI(lbDefsLC,3),4)_" --> "_$$$LCVT(lbBX)) . . Set arDC("BX-2",iDS,iLC)=lbBX . . If $G(arDC("BX",DC))="" Set lbBXbyDC=lbBX . . Else Do . . . Set lbBXbyDC=arDC("BX",DC) . . . For i=1:1:$LL(lbBX) Set:($$$NotInList(lbBXbyDC,$LI(lbBX,i))) lbBXbyDC=lbBXbyDC_$LB($LI(lbBX,i)) . . Set arDC("BX",DC)=lbBXbyDC . . Set arDC("DWV",DC,iLC)=$$cjsBuildDWVlistForLC(iLC,iDS,DC,$LI(lbDefsLC,1),$LI(lbDefsLC,3)) ; KLAS=$LI(lbDefsLC,1) . . Set arDC("DWV","XX",iLC)=arDC("DWV",DC,iLC) ; Simplified version, because independant from DC Quit cjsBuildBXlistForLC(LC,DS,DC,ZW,RH) Set BX="" Set tmpLB="" ;Set MatchDS="%;"_DS_";%" Set MatchZW="%;"_ZW_";%" Set MatchRH="%;"_RH_";%" &SQL(DECLARE crsBXLC CURSOR FOR SELECT BxBP1.TBBoxSide INTO :BX FROM Prod_GAMeta_BT.TBBoxSide_BeperkGUI AS BxBP1, Prod_GAMeta_BT.TBBoxSide_BeperkGUI AS BxBP2 WHERE (BxBP1.TBBoxSide = BxBP2.TBBoxSide) AND ($ListFind(BxBP1.TBBoxSide->FilterDC,:DC)>0) AND (BxBP1.element_key = 'TBRugHoogte' and ((';' || BxBP1.BeperkGUI || ';') LIKE :MatchRH OR BxBP1.BeperkGUI="*")) AND (BxBP2.element_key = 'TBZijwand' and ((';' || BxBP2.BeperkGUI || ';') LIKE :MatchZW OR BxBP2.BeperkGUI="*")) ORDER BY BxBP1.TBBoxSide->VolgNr ) &SQL(OPEN crsBXLC) For &SQL(FETCH crsBXLC) Quit:(SQLCODE) Set:($L(BX)) tmpLB=tmpLB_$LB(BX) &SQL(CLOSE crsBXLC) Quit tmpLB cjsBuildSPZKlistForLC(LC,DS,DC,KLAS,RH) Set SPZK="" Set tmpLB="" ;Set MatchDS="%;"_DS_";%" Set MatchKLAS="%;"_KLAS_";%" Set MatchRH="%;"_RH_";%" &SQL(DECLARE crsSPZKLC CURSOR FOR SELECT BxBP1.TBSPZijkant->ItemCode INTO :SPZK FROM Prod_GAMeta_BT.TBSPZijkant_BeperkGUI AS BxBP1, Prod_GAMeta_BT.TBSPZijkant_BeperkGUI AS BxBP2 WHERE (BxBP1.TBSPZijkant = BxBP2.TBSPZijkant) AND ($ListFind(BxBP1.TBSPZijkant->FilterDC,:DC)>0) AND (BxBP1.element_key = 'TBRugHoogte' and ((';' || BxBP1.BeperkGUI || ';') LIKE :MatchRH OR BxBP1.BeperkGUI="*")) AND (BxBP2.element_key = 'TBKlasse' and ((';' || BxBP2.BeperkGUI || ';') LIKE :MatchKLAS OR BxBP2.BeperkGUI="*")) ORDER BY BxBP1.TBSPZijkant->VolgNr ) &SQL(OPEN crsSPZKLC) For &SQL(FETCH crsSPZKLC) Quit:(SQLCODE) Set:($L(SPZK)) tmpLB=tmpLB_$LB(SPZK) &SQL(CLOSE crsSPZKLC) Quit tmpLB cjsBuildFSlistForLC(LC,DS,DC,KLAS,RH,LT) Set FS="" Set tmpLB="" ;Set MatchDS="%;"_DS_";%" Set MatchKLAS="%;"_KLAS_";%" Set MatchRH="%;"_RH_";%" Set MatchLT="%;"_LT_";%" &SQL(DECLARE crsFSLC CURSOR FOR SELECT BxBP1.TBFrontSteun->ItemCode INTO :FS FROM Prod_GAMeta_BT.TBFrontSteun_BeperkGUI AS BxBP1, Prod_GAMeta_BT.TBFrontSteun_BeperkGUI AS BxBP2 WHERE (BxBP1.TBFrontSteun = BxBP2.TBFrontSteun) AND (BxBP1.element_key = 'TBLadeType' and ((';' || BxBP1.BeperkGUI || ';') LIKE :MatchLT OR BxBP1.BeperkGUI="*")) AND (BxBP2.element_key = 'TBKlasse' and ((';' || BxBP2.BeperkGUI || ';') LIKE :MatchKLAS OR BxBP2.BeperkGUI="*")) ORDER BY BxBP1.TBFrontSteun->VolgNr ) ; WHERE (...) AND ($ListFind(BxBP1.TBFrontSteun->FilterDC,:DC)>0) &SQL(OPEN crsFSLC) For &SQL(FETCH crsFSLC) Quit:(SQLCODE) Set:($L(FS)) tmpLB=tmpLB_$LB(FS) &SQL(CLOSE crsFSLC) Quit tmpLB cjsBuildDWVlistForLC(LC,DS,DC,KLAS,RH) Set DWV="" Set tmpLB="" ;Set MatchDS="%;"_DS_";%" Set MatchKLAS="%;"_KLAS_";%" Set MatchRH="%;"_RH_";%" &SQL(DECLARE crsDWVLC CURSOR FOR SELECT BxBP1.TBDwarsVerdeling->ItemCode INTO :DWV FROM Prod_GAMeta_BT.TBDwarsVerdeling_BeperkGUI AS BxBP1, Prod_GAMeta_BT.TBDwarsVerdeling_BeperkGUI AS BxBP2 WHERE (BxBP1.TBDwarsVerdeling = BxBP2.TBDwarsVerdeling) AND ($ListFind(BxBP1.TBDwarsVerdeling->FilterDC,:DC)>0) AND (BxBP1.element_key = 'TBRugHoogte' and ((';' || BxBP1.BeperkGUI || ';') LIKE :MatchRH OR BxBP1.BeperkGUI="*")) AND (BxBP2.element_key = 'TBKlasse' and ((';' || BxBP2.BeperkGUI || ';') LIKE :MatchKLAS OR BxBP2.BeperkGUI="*")) ORDER BY BxBP1.TBDwarsVerdeling->VolgNr ) &SQL(OPEN crsDWVLC) For &SQL(FETCH crsDWVLC) Quit:(SQLCODE) Set:($L(DWV)) tmpLB=tmpLB_$LB(DWV) &SQL(CLOSE crsDWVLC) Quit tmpLB cjsBuildRKlistForDS(DS) Set RK="" Set tmpLB="" Set MatchDS="%;"_DS_";%" &SQL(DECLARE crsRKDS CURSOR FOR SELECT TBRelingKleur INTO :RK FROM Prod_GAMeta_BT.TBRelingKleur_BeperkGUI WHERE (element_key = 'TBDesign' and ((';' || BeperkGUI || ';') LIKE :MatchDS OR BeperkGUI="*")) ORDER BY TBRelingKleur->VolgNr ) &SQL(OPEN crsRKDS) For &SQL(FETCH crsRKDS) Quit:(SQLCODE) Set:($L(RK)) tmpLB=tmpLB_$LB(RK) &SQL(CLOSE crsRKDS) Quit tmpLB cjsBuildKXlistForDS(DS) Set KX="" Set tmpLB="" Set MatchDS="%;"_DS_";%" &SQL(DECLARE crsKXDS CURSOR FOR SELECT TBBoxsideKleur INTO :KX FROM Prod_GAMeta_BT.TBBoxsideKleur_BeperkGUI WHERE (element_key = 'TBDesign' and ((';' || BeperkGUI || ';') LIKE :MatchDS OR BeperkGUI="*")) ORDER BY TBBoxsideKleur->VolgNr ) &SQL(OPEN crsKXDS) For &SQL(FETCH crsKXDS) Quit:(SQLCODE) Set:($L(KX)) tmpLB=tmpLB_$LB(KX) &SQL(CLOSE crsKXDS) Quit tmpLB cjsBuildKVlistForDS(DS,DC) Set KV="" Set tmpLB="" /* Set MatchDS="%;"_DS_";%" &SQL(DECLARE crsKVDS CURSOR FOR SELECT TBVulstukKleur INTO :KV FROM Prod_GAMeta_BT.TBVulstukKleur_BeperkGUI WHERE (element_key = 'TBDesign' and ((';' || BeperkGUI || ';') LIKE :MatchDS OR BeperkGUI="*")) ORDER BY TBVulstukKleur->VolgNr ) */ &SQL(DECLARE crsKVDS CURSOR FOR SELECT ItemCode INTO :KV FROM Prod_GAMeta_BT.TBVulstukKleur WHERE ($ListFind(FilterDC,:DC)>0) ORDER BY VolgNr ) &SQL(OPEN crsKVDS) For &SQL(FETCH crsKVDS) Quit:(SQLCODE) Set:($L(KV)) tmpLB=tmpLB_$LB(KV) &SQL(CLOSE crsKVDS) Quit tmpLB ]]> 1 lbErrTypes