project BLF > class Cacher > method GetTranslationForObject

Description

Lookup the actual translation of a translatable business field for one specific business object.


Parameters


icLanguageCodeinputcharacter
iiParentObject_IDinputinteger
icFieldNameinputcharacter
ocTranslationoutputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method ComponentPool.GetTranslationForObject


program code (program1/cacher.p)

define buffer bLng for Lng.
define buffer bTranslationString for TranslationString.

for each bLng fields (Lng_ID LngCode) no-lock where
         bLng.LngCode = icLanguageCode,
   first bTranslationString fields (ParentObject_ID Lng_ID TranslationStringText) no-lock where
         bTranslationString.ParentObject_ID = iiParentObject_ID and
         bTranslationString.Lng_ID = bLng.Lng_ID on error undo, throw:
    if icFieldName <> ""
    then do viFieldCount = 1 to num-entries(bTranslationString.TranslationStringText,"|") - 1 by 2:
        if entry(viFieldCount,bTranslationString.TranslationStringText,"|") = icFieldName
        then do:
            ocTranslation = entry(viFieldCount + 1,bTranslationString.TranslationStringText,"|").
            return.
        end.
    end.
    ocTranslation = bTranslationString.TranslationStringText.
end.