Specifieke implemenatie van IKADWrapper Deze versie wordt gebruikt door oa New Sobelwood vhLib.Macro BL.Flow.Offerte.IKADParameterWrapper BL.Flow.Offerte.dto.KADEDI.Parameter list 1 BL.Flow.Offerte.dto.KADEDI.Parameter array 1 APPS.VKP.Klantspecifiek.NewSobelwood.VullingCodeMapping 1 APPS.VKP.Klantspecifiek.NewSobelwood.ProfielCodeMapping 1 Waarde: Code zoals Prod.GADef.Kaderdeur verwacht; i.e. [ProfType]-[ProfAfw] %String 1 APPS.VKP.Klantspecifiek.NewSobelwood.KaderdeurBusinessLogica 1 %String list 1 Parameters:%ListOfObjects 1 1 %Status 1 1 ProfileTypeNS:APPS.VKP.Maatwerk.enu.ProfileTypeNS 1 0) { Do ..VoegToeValidatieBericht("Hoogte van de kader is ongeldig : "_..GeefHoogte()) } If (..GeefBreedte()'>0) { Do ..VoegToeValidatieBericht("Breedte van de kader is ongeldig : "_..GeefBreedte()) } ]]> 0 { Do ..VoegToeValidatieBericht("Tussenafstand voor Beslagposities is ongeldig ("_BeslagParameter.Key_"="_TussenAfstand_").") } Set SomBeslagPositie=SomBeslagPositie+TussenAfstand } If SomBeslagPositie'=..GeefHoogte() { Do ..VoegToeValidatieBericht("Beslagposities conflict : de som is niet gelijk aan de hoogte van de deur (som="_SomBeslagPositie_").") } } ]]> Melding:%String 1 Exceptie:TECH.Exceptions.Exception,LoggerActie:%String 1 %String %Decimal %Decimal DOM.PM.enu.KADProfielType DOM.PM.enu.KADProfielType DOM.PM.enu.KADProfielAfwerking %String %ListOfObjects " If (..GeefOphangPlaats() = ##class(DOM.PM.enu.KADOphangplaats).Rechts()){ Set Element = Element_"Rechts" }Else{ Set Element = Element_"Links" } Set AfstandRand = ..GeefAfstandRand() Set Z = 0 Set BeslagPositieIt = ##class(TECH.ListIterator).%New(..GeefBeslagPosities()) While (BeslagPositieIt.HasNext()){ Set BeslagPositie = BeslagPositieIt.Next() Set BeslagCode = ..GeefBeslagCode() Set KADBeslagItemPositie = ##class(TECH.Vector).%New(+BeslagPositie, +AfstandRand, +Z) Set KADBeslagItem = ##class(DOM.PM.Maatwerk.Calc.Common.impl.KADBeslag).%New(Element,KADBeslagItemPositie,BeslagCode) Do KADBeslag.Insert(KADBeslagItem) } } Catch (Exceptie) { Do ..VerwerkExceptie(Exceptie,"KADP.GeefBeslag") } Quit KADBeslag ]]> %ListOfDataTypes Bij ingave worden de Beslagposities ingegeven van boven naar onder (of van links naar rechts), ongeacht de draairichting van de deur. Echter, in de KADKenmerken worden de Beslagposities relatief t.o.v. de oorsprong van het profiel bewaard, i.e voor sommige profielen moeten de posities dan omgekeerd worden ( = ProfielLengte - pos) BeslagPosities MOET ByRef doorgegeven worden, anders wordt de doorgegeven List niet gewijzigd. 1 DOM.PM.Maatwerk.Calc.Common.impl.KADVullingBeschrijving %Boolean DOM.PM.enu.KADVerpakking %Decimal %Boolean DOM.PM.enu.KADOphangplaats %ListOfObjects De waarde van L is steeds een "relatieve" afstand van de zijkant. De positie is altijd tegenover de scharnieren. K:%Decimal,L:%Decimal 1 DOM.PM.Maatwerk.Calc.Common.impl.KADBoring ##class(APPS.PM.Maatwerk.KAD.KenmerkUtils).GeefProfielBreedteBenadering(..GeefProfielType())) If IsBoringAlleenDoorVulling { Set Element = "Vulling" }Else{ Set Element = "Profiel->" If ..GeefOphangPlaats() = ##class(DOM.PM.enu.KADOphangplaats).Links() { Set Element = Element_"Rechts" }Else{ Set Element = Element_"Links" } } #dim Diameter As %Decimal = 0 If (..GeefParameter(##class(BL.Flow.Offerte.enu.KADEDI.Key).M())="M4"){ If IsBoringAlleenDoorVulling { Set Diameter = 7 }Else { Set Diameter = 5 } } If (Type = ##class(DOM.PM.enu.KADBoringType).Punt()) { Set Diameter = -1 } #dim AfschuinDiameter As %Decimal = 0 If (Type = ##class(DOM.PM.enu.KADBoringType).Volledig()) { ;Set AfschuinDiameter = 7 ; = Diameter + 2 } Set Richting = ##class(TECH.Vector).%New(0,0,-1) Quit ##class(DOM.PM.Maatwerk.Calc.Common.impl.KADBoring).%New(Element,Positie,Type,Richting,Diameter,AfschuinDiameter) ]]> AfstandZijkant:%Decimal,AfstandBovenkant:%Decimal,Diameter:%Decimal 1 DOM.PM.Maatwerk.Calc.Common.impl.KADBoring Links") ]]> AfstandZijkant:%Decimal,AfstandBovenkant:%Decimal,Diameter:%Decimal 1 DOM.PM.Maatwerk.Calc.Common.impl.KADBoring Rechts") ]]> AfstandZijkant:%Decimal,AfstandBovenkant:%Decimal,Diameter:%Decimal 1 DOM.PM.Maatwerk.Calc.Common.impl.KADBoring Boven") ]]> AfstandZijkant:%Decimal,AfstandBovenkant:%Decimal,Diameter:%Decimal 1 DOM.PM.Maatwerk.Calc.Common.impl.KADBoring Onder") ]]> AfstandZijkant:%Decimal,AfstandBovenkant:%Decimal,Diameter:%Decimal,Element:%String 1 DOM.PM.Maatwerk.Calc.Common.impl.KADBoring ParameterNaam:BL.Flow.Offerte.enu.KADEDI.Key 1 BL.Flow.Offerte.dto.KADEDI.Parameter ParameterNaam:BL.Flow.Offerte.enu.KADEDI.Key %String ParameterNaam:BL.Flow.Offerte.enu.KADEDI.Key 1 %Boolean Waarde:%String 1 %Boolean 1 %ListOfObjects BeslagPosities:%ListOfDataTypes,BeslagLabel:BL.Flow.Offerte.enu.KADEDI.Key 1 %ListOfDataTypes