project QadFinancials > class BFRWAnalysisCode > method ValidateComponentPostCalculation
Parameters
icCalculationText | input | character | |
icSumCharacter | input | character | |
icRowId | input | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bfrwanalysiscode.p)
assign viMaxLength = 3.
if icCalculationText matches "*~~" + icSumCharacter + "*" and
not (icCalculationText matches "*~~/*" ) and
not (icCalculationText matches "*~~**")
then do:
assign viIndex = 1.
repeat:
assign vcAnalysisCode = "".
IF viIndex = NUM-ENTRIES(icCalculationText,icSumCharacter) + 1
THEN leave.
assign vcAnalysisCode = ENTRY(viIndex , icCalculationText, icSumCharacter)
viIndex = viIndex + 1.
if trim(vcAnalysisCode) = ""
then do:
assign oiReturnStatus = -1.
return.
end.
if vcAnalysisCode matches "(*)" then
do:
assign vcAnalysisCode = SUBSTRING(vcAnalysisCode, 2, LENGTH(vcAnalysisCode, "CHARACTER") - 2, "CHARACTER").
if trim(vcAnalysisCode) = ""
then do:
assign oiReturnStatus = -1.
return.
end.
end.
<M-97 run ValidateComponentPostCalculationSpecialChars
(input vcAnalysisCode (icCalculationText),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
end.
end.
else if icCalculationText matches "*~~/*" or
icCalculationText matches "*~~**"
then do:
/* c1*c2*c3 */
assign viIndex = 1.
<M-98 run ValidateComponentPostCalculationSplitEntities
(input icCalculationText (icCalculationText),
input '*,/':U (icDelimiterChars),
input icRowId (icRowId),
output vcCalculationPart1 (ocCalculationPart1),
output vcCalculationPart2 (ocCalculationPart2),
output vcCalculationPart3 (ocCalculationPart3),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
<M-35 run ValidateComponentPostCalculationSpecialChars
(input vcCalculationPart1 (icCalculationText),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
<M-19 run ValidateComponentPostCalculationSpecialChars
(input vcCalculationPart2 (icCalculationText),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
<M-65 run ValidateComponentPostCalculationSpecialChars
(input vcCalculationPart3 (icCalculationText),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
end. /* else if icCalculationText matches or */
else do:
<M-69 run ValidateComponentPostCalculationSpecialChars
(input icCalculationText (icCalculationText),
output viFcReturnSuper (oiReturnStatus)) in BFRWAnalysisCode>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then return.
end.