Parameters
oiTranslationsRead# | output | integer | |
oiTranslationsCreated# | output | integer | |
oiTranslationsUpdated# | output | integer | |
oiTranslationsDeleted# | output | integer | |
olUpdatesDone | output | logical | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program9/bfctranslation.p)
define var vcCaseTranslationStringText as char case-sensitive.
define var vcCaseTranslationOriginalTextString as char case-sensitive.
/****************************************************************************/
/* Merge the tResourceFile to the database using native progress statements */
/* one string is treated in one transaction */
/****************************************************************************/
<I-13 {WRITEDIRECTDBACCESS
&WRITETABLENAMES = "'fcTranslation':U"}>
for each tResourceFile
TRANSACTION
on error undo, throw:
assign oiTranslationsRead# = oiTranslationsRead# + 1.
/* Search on unique index */
find fcTranslation where
fcTranslation.TranslationStringNumber = tResourceFile.tiTranslationStringNumber and
fcTranslation.TranslationProjShortCode = tResourceFile.tcTranslationProjShortCode and
fcTranslation.TranslationLanguageCode = tResourceFile.tcTranslationLanguageCode
no-lock no-error.
if not available fcTranslation
then do :
create fcTranslation.
assign olUpdatesDone = yes
fcTranslation.TranslationStringNumber = tResourceFile.tiTranslationStringNumber
fcTranslation.TranslationProjShortCode = tResourceFile.tcTranslationProjShortCode
fcTranslation.TranslationLanguageCode = tResourceFile.tcTranslationLanguageCode
fcTranslation.TranslationStringText = tResourceFile.tcTranslationStringText
fcTranslation.TranslationOriginalTextString = tResourceFile.tcTranslationStringText
fcTranslation.TranslationIsUpdatedByUser = false
fcTranslation.BusinessClass = tResourceFile.Tcbusinessclass
oiTranslationsCreated# = oiTranslationsCreated# + 1.
end. /* if not available fcTranslation */
else do :
/* do a case-sensitive compare */
assign vcCaseTranslationStringText = tResourceFile.tcTranslationStringText
vcCaseTranslationOriginalTextString = tResourceFile.tcTranslationStringText.
if fcTranslation.BusinessClass <> tResourceFile.tcBusinessClass OR
(fcTranslation.TranslationIsUpdatedByUser = true and
fcTranslation.TranslationOriginalTextString <> vcCaseTranslationOriginalTextString) OR
(fcTranslation.TranslationIsUpdatedByUser <> true and
fcTranslation.TranslationStringText <> vcCaseTranslationStringText)
then do:
find fcTranslation where
fcTranslation.TranslationStringNumber = tResourceFile.tiTranslationStringNumber and
fcTranslation.TranslationProjShortCode = tResourceFile.tcTranslationProjShortCode and
fcTranslation.TranslationLanguageCode = tResourceFile.tcTranslationLanguageCode
exclusive-lock no-error no-wait.
if available fcTranslation
then do :
/* Only update the translated string in case the user did not yet adapted it */
if fcTranslation.TranslationIsUpdatedByUser <> true
then assign fcTranslation.TranslationStringText = tResourceFile.tcTranslationStringText.
/* Update the original string */
assign fcTranslation.TranslationOriginalTextString = tResourceFile.tcTranslationStringText
fcTranslation.BusinessClass = tResourceFile.tcBusinessClass
olUpdatesDone = yes
oiTranslationsUpdated# = oiTranslationsUpdated# + 1.
end. /* if available fcTranslation */
end. /* if fcTranslation.TranslationStringText <> vcCaseTranslationStringText or */
end. /* if available fcTranslation */
end. /* for each tResourceFile */