project BLF > class BTranslation > method SetTranslations

Description

Set the data to save


Parameters


t_sTransStringinputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method database.AdditionalUpdates


program code (program1/btranslation.p)

define variable v1 as character no-undo case-sensitive.
define variable v2 as character no-undo case-sensitive.

for each t_sTransString on error undo, throw:

    /* no translation entered = delete the record */
    if t_sTransString.tcTranslationStringText = ""
    then if t_sTransString.tc_Status = "N"
         then next.
         else t_sTransString.tc_Status = "D".
    
    if num-entries (t_sTransString.tcTranslationStringText,"|") > 1
    then MULTI: do:
        do viFcCount1 = 2 to num-entries (t_sTransString.tcTranslationStringText,"|") by 2:
            if entry(viFcCount1,t_sTransString.tcTranslationStringText,"|") <> ""
            then leave MULTI.
        end.
        t_sTransString.tc_Status = "D".
    end.
    
    find first tTranslationString where
               tTranslationString.ParentObject_ID = t_sTransString.tiParentObject_ID and
               tTranslationString.tcLngCode       = t_sTransString.tcLngCode
               no-error.
    if available tTranslationString
    then do:
        if t_sTransString.tc_Status = "D"
        then assign tTranslationString.tc_Status = "D".
        else do:
            v1 = t_sTransString.tcTranslationStringText.
            v2 = tTranslationString.TranslationStringText.
            if v1 <> v2
            then assign tTranslationString.TranslationStringText = t_sTransString.tcTranslationStringText
                        tTranslationString.tc_Status = (if tTranslationString.tc_Status = "" then "C" else tTranslationString.tc_Status).
        end.
    end.
    else if t_sTransString.tc_Status <> "D"
    then do:
        <M-28 run AddDetailLine
           (input  'TranslationString' (icTable), 
            input  '' (icParentRowid), 
            output viFcReturnSuper (oiReturnStatus)) in BTranslation>
        if viFcReturnSuper <> 0
        then oiReturnStatus = viFcReturnSuper.
        if viFcReturnSuper < 0
        then return.
        
        assign tTranslationString.ParentObject_ID       = t_sTransString.tiParentObject_ID
               tTranslationString.tcLngCode             = t_sTransString.tcLngCode
               tTranslationString.TranslationStringText = t_sTransString.tcTranslationStringText.
    end.
end.

<M-8 run ValidateBC  (output viFcReturnSuper (oiReturnStatus)) in BTranslation>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.

<M-71 run AdditionalUpdates  (output viFcReturnSuper (oiReturnStatus)) in BTranslation>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.