De klasse ExcelExport exporteert de kenmerken van de ORGALUX-producten en maakt een TAB-delimited tekstbestand ervan. Deze klasse steunt enkel op "Prod.Kenmerk.DataDefinitie", "BL.Kenm.ProdMulti" en enkele vertalingsroutines, voor de rest werkt deze volledig stand-alone. De klasse ExcelImport daarentegen werkt met een complexere implementatie voor een genereren van de AUTOs via MASTERs. APPS.PM.OL.Common,Prod.Product,BL.Derde.KlantSpecifiek 1 %RegisteredObject Hoofdgroep van de Kenmerken (=MetaGroep) = "OL" %String 1 BL-object voor het behandelen van de Multiples (= meerdere kenmerken-sets per product) BL.Kenm.ProdMulti 1 Houdt info van de huidige export bij. %String 1 Oproepen via s sc=##class(APPS.PM.OL.ExcelExport).ExportCSV(blnMastersOnly,) w sc,! 1 blnMastersOnly:%Boolean=1,blnExportConflictsOnly:%String=0 %Status initvalue:%CacheString 1 %Status UnID:%String %Boolean 1 Dir:%String,FName:%String,blnMastersOnly:%Boolean,blnExportConflictsOnly:%String=0 %Status 30 items Set ListZoneToepas =##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"ZoneToepassing") Set lbZoneToepassingenKMW=lbZoneToepassingen ;Set lbData="" ;Set MaxZoneToep=$$$MaxCntZoneToep ;Set MaxZoneToep=$LL(lbZoneToepassingenKMW) ;For i=1:1:$$$MaxCntZoneToep Set $LI(lbData,i)="" Set lbData=$$SplitListToColumnsJa(ListZoneToepas,lbZoneToepassingenKMW) Quit lbData BuildKMDataSamenstellingsTypes(UnID) ; returns $LB("Set,Los,ServiceProduct") Set lbSamenstellingsTypesFromKM=##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SamenstellingsType") Set lbSamenstellingsTypesKMW =lbSamenstellingsTypes Set lbData=$$SplitListToColumnsJaNee(lbSamenstellingsTypesFromKM,lbSamenstellingsTypesKMW) Quit lbData BuildKMDataInformatie(UnID) ; returns $LB("Afbeelding","Langtekst NL (read-only)","Productgamma","SubType","Kleur","Hoogte (in mm)","Breedte (in mm)","Diepte (in mm)") Set AfbeeldingLB =##class(cspBasis.ProductList).DataDefValueURL(Taal,$$$GroepID,UnID,"InfoSleutel","LB") Set AfbeeldingLI =##class(cspBasis.ProductList).DataDefValueURL(Taal,$$$GroepID,UnID,"InfoSleutel","LI") Set SleutelVTL =$LG(##class(cspBasis.ProductList).DataDefValueList(Taal,$$$GroepID,UnID,"Sleutel","O","1"),1) Set ProductGammas =$$LCVTSimple^vhLib(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,$$$kenmerkMateriaal),";") ; "ProductType" Set SubType =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SubType"),1) Set Kleur =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"Kleur"),1) Set ProductHoogte =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"ProductHoogte"),1) Set ProductBreedte =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"ProductBreedte"),1) Set ProductDiepte =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"ProductDiepte"),1) Set SleutelVTL=$$$Replace($$$Replace(SleutelVTL,$$$CRLF,"~"),$$$TAB," ") Set AfbeeldingLI=$$$Replace(AfbeeldingLI,"http://res.vanhoecke.be/OLProdCat/","") Set AfbeeldingLI=$$$Replace(AfbeeldingLI,"ViaSleutelG/","") Set lbData=$LB(AfbeeldingLI,SleutelVTL,ProductGammas,SubType,Kleur,ProductHoogte,ProductBreedte,ProductDiepte) Quit lbData BuildKMDataAangeraden(UnID) ; returns $LB("Breedte min (in ?)","Breedte max (in ?)","Wanddikte (in mm, optioneel)","Breedte speling (indien niet standaard) TBD","Dieptes") Set LadeBreedteMin =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"LadeBreedteMinAangeraden"),1) Set LadeBreedteMax =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"LadeBreedteMaxAangeraden"),1) Set lbData=$LB(LadeBreedteMin,LadeBreedteMax) Quit lbData BuildKMDataVereisten(UnID) ; returns $LB("Breedte min (in ?)","Breedte max (in ?)","Wanddikte (in mm, optioneel)","Breedte speling (indien niet standaard) TBD","Dieptes") Set LadeBreedteMin =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"LadeBreedteMin"),1) Set LadeBreedteMax =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"LadeBreedteMax"),1) Set Wanddiktes =$$LCVTSimple^vhLib(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"WandDikte"),";") Set BreedteSpeling ="" ; ??? Set LadeDieptes =$$LCVTSimple^vhLib(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"Diepte"),";") Set lbData=$LB(LadeBreedteMin,LadeBreedteMax,Wanddiktes,BreedteSpeling,LadeDieptes) Quit lbData BuildKMDataFamilies(UnID) ; returns $LB("NietBlumLade","Alle_TBX_geen_bevestigingen_nodig","TBX_plus_Reling_of_BXglas","TBX_plus_Boxside_Ew_of_Dw","TBX_intivo","TBX_antaro_Reling",##class(DOM.PM.enu.LadeVariant).LBXPure()) Set lbLadeFamilie =##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"LadeFamilie") Set lbFamiliesKMW =lbFamilies Set lbData=$$SplitListToColumnsJa(lbLadeFamilie,lbFamiliesKMW) Quit lbData BuildKMDataLadeTypes(UnID) ; returns $LB("N","M","M/Z","B","B/Z","D","D/Z","K","K/Z","C","C/Z") Set lbLTypes =##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"LadeType") Set lbLadeTypesKMW =lbLadeTypes Set lbData=$$SplitListToColumnsJa(lbLTypes,lbLadeTypesKMW) Quit lbData BuildKMDataLadeKleuren(UnID) ; returns $LB("zijdewit","terrazwart","grijs","wit","inox","Aluminium") Set lbKleur =##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"KleurFilter") Set lbLadeKleurenKMW=lbLadeKleuren Set lbData=$$SplitListToColumnsJa(lbKleur,lbLadeKleurenKMW) Quit lbData BuildKMDataTips(UnID) ; returns $LB("Tip1","Tip2","Tip3","Tip4","Tip5") Set lbBOWeten =##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"BOWeten") Set MaxTips=$$$MaxCntTips Set lbData="" For i=1:1:MaxTips Set $LI(lbData,i)=$LG(lbBOWeten,i,"") Quit lbData BuildKMDataIndividueel(UnID) ; returns $LB("Dit is een individuele kenmerken-set") Set Individueel =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"GeneratieType"),1) Set lbData=$LB(Individueel) Quit lbData BuildKMDataMasterVoorDieptes(UnID) ; returns $LB("Te genereren (in cm)","in tekst sleutel","in foto sleutel") ; $LB("45","55","60","65") #define Delim $$$DelimSleutelVariaties Set MasterVoorD =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"MasterVoorDieptes"),1) Set SleutelVarTekstD =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarTekstD"),1) Set SleutelVarFotoD =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarFotoD"),1) ;Set lbData=$LB($$LCVTSimple^vhLib(lbMasterVoorD,$$$Delim), $$LCVTSimple^vhLib(SleutelVarTekstD,$$$Delim), $$LCVTSimple^vhLib(SleutelVarFotoD,$$$Delim)) Set lbData=$LB(MasterVoorD, SleutelVarTekstD, SleutelVarFotoD) Quit lbData BuildKMDataMasterVoorBreedtes(UnID) ; returns $LB("Te genereren (in cm)","in tekst sleutel","in foto sleutel") ; $LB("30","40","45","50","60","70","80","90","100","110","120") Set MasterVoorB =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"MasterVoorBreedtes"),1) Set SleutelVarTekstB =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarTekstB"),1) Set SleutelVarFotoB =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarFotoB"),1) ;Set lbData=$LB($$LCVTSimple^vhLib(lbMasterVoorB,$$$Delim), $$LCVTSimple^vhLib(SleutelVarTekstB,$$$Delim), $$LCVTSimple^vhLib(SleutelVarFotoB,$$$Delim)) Set lbData=$LB(MasterVoorB, SleutelVarTekstB, SleutelVarFotoB) Quit lbData BuildKMDataMasterVoorKleurMat(UnID) ; returns $LB("Te genereren","in tekst sleutel","in foto sleutel") ; $LB("zijdewit","terrazwart","grijs","wit","inox","Aluminium") Set MasterVoorKlr =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"MasterVoorKleuren"),1) Set SleutelVarTekstKlr =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarTekstKlr"),1) Set SleutelVarFotoKlr =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarFotoKlr"),1) ;Set lbData=$LB($$LCVTSimple^vhLib(lbMasterVoorKlr,$$$Delim), $$LCVTSimple^vhLib(SleutelVarTekstKlr,$$$Delim), $$LCVTSimple^vhLib(SleutelVarFotoKlr,$$$Delim)) Set lbData=$LB(MasterVoorKlr, SleutelVarTekstKlr, SleutelVarFotoKlr) Quit lbData BuildKMDataMasterVoorWanddikte(UnID) ; returns $LB("Te genereren (in mm)","in tekst sleutel","in foto sleutel") ; $LB("16","19") Set MasterVoorWD =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"MasterVoorWandDiktes"),1) Set SleutelVarTekstWD =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarTekstWD"),1) Set SleutelVarFotoWD =$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$GroepID,UnID,"SleutelVarFotoWD"),1) ;Set lbData=$LB($$LCVTSimple^vhLib(lbMasterVoorWD,$$$Delim), $$LCVTSimple^vhLib(SleutelVarTekstWD,$$$Delim), $$LCVTSimple^vhLib(SleutelVarFotoWD,$$$Delim)) Set lbData=$LB(MasterVoorWD, SleutelVarTekstWD, SleutelVarFotoWD) Quit lbData // Opsplitsen van een list (multi-value kenmerk) in kolommen met waarde 0 of 1, resp. "" of "x", afhankelijk van de kenmerk-waarden in de list. // De volgorde van de resulterende $LB() komt overeen met die van lbColumns (uiteraard!) SplitListToColumnsJaNee(lbList,lbColumnsKMW) Set tmpLB="" For i=1:1:$LL(lbColumnsKMW) Set tmpLB=tmpLB_$LB($$$BoolToJaNee(($LI(lbColumnsKMW,i)'="")&&($LF(lbList,$LI(lbColumnsKMW,i))>0))) Quit tmpLB SplitListToColumnsJa(lbList,lbColumnsKMW) Set tmpLB="" For i=1:1:$LL(lbColumnsKMW) Set tmpLB=tmpLB_$LB($$$BoolToJaLeeg(($LI(lbColumnsKMW,i)'="")&&($LF(lbList,$LI(lbColumnsKMW,i))>0))) Quit tmpLB ]]> PRNr 1 %Boolean Error logging per lijn LijnID:%String,sc:%Status 1 1 %Status