Vaste leggen van de kenmerken per product. Er wordt bewust geen link gelegd naar MetaGroep of MetaDefinitie omdat anders bij gebruik van de waarden swivel inwerking zou treden, dit mag niet om dat bv voor één kenmerk meerdere waarden kunnen ingegeven worden. Dus bij wijzigen van een kenmerk moeten voor een bepaald product alle waarden verzameld worden. 0 0 persistent 0 0 0 Kenm.Basis.DataDefinitie 0 Kenm.Vertaal.MetaDefinitie 0 0 0 0 0 0 0 0 0 0 code IsNew:%Library.Boolean=1 0 %Library.Status 0 ]]> 0 1 code Oid:%Library.ObjectIdentity 0 %Library.Status 0 0 0 code Intern:%Library.String,Type:%Library.String 0 %Library.String 0 SUBSTITUTIE vereist opstellen van taaldoorsnede ... New Sleutels,AantalSleutels,SubLang,SleutelLoop,tmpSleutel ... Set Sleutels=VTA.GetVertalingsSleutels(Type) ... Set AantalSleutels=$LL(Sleutels) //Aantal te vertalen sleutels ... Set SubLang="" ... For SleutelLoop=1:1:AantalSleutels Do .... Set tmpSleutel=$LI($LI(Sleutels,SleutelLoop),2) //Het eerste element bevat het type .... If ##class(Res.VertalingAbstract).IsInternUniversal(tmpSleutel) Do //Wanneer sleutel vh type {%...} is dan is het een universele vertaling (groep %) ..... Set SubLang=SubLang _ ##class(Res.VertalingAbstract).AvailableLanguages("%",tmpSleutel,Type) .... Else Do ..... Set SubLang=SubLang _ ##class(Res.VertalingAbstract).AvailableLanguages(VertalingsGroep,tmpSleutel,Type) ... Set LanguagesOK=##class(Res.VertalingAbstract).GetLanguagesWithCountOK(SubLang,AantalSleutels) .. Else Do //-> GEEN SUBSTITUTIE, gewoon languages opvragen ... Set:(Intern'="") LanguagesOK=##class(Res.VertalingAbstract).AvailableLanguages(VertalingsGroep,Intern,Type) Quit LanguagesOK // ---< Pseudo-code >--- // Loop doorheen vertalingstypes van MetaDef (array) // . Loop doorheen elke VertalingsType (';' pieces) // .. Als VertalingsType=Type Doe // ... Als het om substitutie gaat // .... Sleutels uitlezen // .... Vertalingen van sleutels verkrijgen & samenvoegen // .... Talen extraheren met correcte count // ... Geen Substitutie // .... Vertalingen van interne waarde verkrijgen ]]> Mogelijke waarden voor ListItems: bvb.: "*" , "1" , "1;2" , "1;2;5;7"
Als ListSep niet leeg is, worden de vertaalde items geconcateneerd (met ListSep as separator) tot één element van de $LB().]]>
0 0 code LBX:%Library.String,ListSep:%Library.String,Taal:%Library.String="N",TextType:%Library.String="L" 0 %Library.String 0
0 0 code X:%Library.String,Taal:%Library.String="N",TextType:%Library.String="L" 0 %Library.String 0 %Library.SQLQuery paUnID:%Library.String,paGroep:%String 0 SELECT Count(ID) AS Aantal FROM Kenm_Vertaal.DataDefinitie WHERE ID Like :paUnID || '||' || :paGroep || '||%' 0 ]]> %Library.SQLQuery GroepID:%String,Kenmerk:%String,SuperKenmerk:%String,SuperKMWaarde:%String 0 SELECT DISTINCT(Waarden) FROM Kenm_Vertaal.DataDefinitie WHERE Kenmerk=(:GroepID || '||' || :Kenmerk) AND UnID IN (SELECT UnID FROM Kenm_Vertaal.DataDefinitie WHERE Kenmerk=(:GroepID || '||' || :SuperKenmerk) AND Waarden LIKE ('%' || :SuperKMWaarde) ) 0 %Library.SQLQuery paUnID:%String 0 Groep) AS Groep FROM Kenm_Vertaal.DataDefinitie WHERE UnID=:paUnID]]> 0 Geeft een lijst van alle kenmerken met waarden voor een gegeven UnID. %Library.SQLQuery paUnID:%String 0 Kenmerk, Waarden, Kenmerk->VolgNr FROM Kenm_Vertaal.DataDefinitie WHERE (UnID = :paUnID) ORDER BY Kenmerk->VolgNr]]> 0 %Library.CacheStorage