project BLF > class BTranslation > method SetTranslations
Description
Set the data to save
Parameters
t_sTransString | input | temp-table | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
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.