Index: PRKENMERK.mac.rou =================================================================== diff -u -r734 -r1533 --- PRKENMERK.mac.rou (.../PRKENMERK.mac.rou) (revision 734) +++ PRKENMERK.mac.rou (.../PRKENMERK.mac.rou) (revision 1533) @@ -12,7 +12,17 @@ .Set Quit=0 .Do ADD^vhLock("^Prod.Ken.DataDefinitieD(PRNr)") .If '%TC Do LDISP^vhLock("^Prod.Ken.DataDefinitieD(PRNr)",$P(^KPR(PRNr,0),D)) Set Quit=1 - Do FETCH(PRNr,.Kenmerk) + New Product + Set Product = ##class(DOM.DomeinContext).Instance().GeefProductAPI().GeefProduct(PRNr) + If (Product.%Extends("DOM.PM.MaatwerkProduct") && $IsObject(Product.GeefBerekeningsSpecificatie()) + && Product.GeefProductSpecificatie().GeefIngegevenKenmerken().%Extends("DOM.PM.Maatwerk.Calc.Common.impl.TAOOKenmerken")) + { + Do FETCHFrameworkProduct(Product,.Kenmerk) + } + Else + { + Do FETCH(PRNr,.Kenmerk) + } Do INIT^vhLIST("PRKENMERK","LIJST",.List),WRITE^vhLIST(.List) For Do Quit:Quit .Do COMMAND @@ -34,7 +44,7 @@ Do EXEC^vhMenu("PRKENMERK",.Input) Quit ; -FETCH(PRNr,Kenmerk) +FETCH(PRNr,Kenmerk) New I,R,Result,Query,Status,Count,ID,KenmerkNaam,Waarden,KenmerkVolgNr,Select &sql( DECLARE KenmerkFetch CURSOR FOR SELECT ID, Kenmerk->Kenmerk, isnull( Kenmerk->Omschrijving,Kenmerk->Kenmerk), Waarden,isnull(Kenmerk->Groep->Omschrijving,Kenmerk->Groep->Code), Kenmerk->SubGroep,UnID @@ -69,6 +79,30 @@ Quit +FETCHFrameworkProduct(Product,Kenmerk) + New IngegevenKenmerken,i,Select,CompiledClass,PropertiesIterator + Set IngegevenKenmerken = Product.GeefProductSpecificatie().GeefIngegevenKenmerken() + Set CompiledClass = ##class(%Dictionary.CompiledClass).%OpenId(IngegevenKenmerken.%ClassName(1)) + Set PropertiesIterator = ##class(TECH.ListIterator).%New(CompiledClass.Properties) + Set i = 1 + + While (PropertiesIterator.HasNext()) + { + Set Property = PropertiesIterator.Next() + If ('Property.Private) && ('Property.InheritedId) + { + Set PropertyWaarde = $zobjproperty(IngegevenKenmerken,Property.Name) + If (Property.Type = "%Library.Boolean") + { + Set PropertyWaarde = $S(PropertyWaarde:"Ja",1:"Nee") + } + Set Kenmerk(i) = "1\\"_Property.Name_"\"_PropertyWaarde + Set i = i + 1 + } + } + + Quit + REFRESH New sFL Do DISPLAY^vhScherm("PRKENMERK")