2.5.4.3 Add
The Add function performs an addition calculation.
ABNF:
-
Add = val val " _ADD():128"
Required Arguments:
Name: Arg1
Type: vDoubleEx
An argument that specifies the first operand of the calculation.
Name: Arg2
Type: vDoubleEx
An argument that specifies the second operand of the calculation.
Return Value:
This function returns a vNum or a PtgCy containing the sum of Arg1 and Arg2. The type of the return value is calculated by the following algorithm.
SET returnType = PtgNum
SET returnDimension = 0
SET returnCurrencyID = 0
IF Arg1.Type = PtgCy AND Arg2.Type != PtgCy THEN
SET returnType = PtgCy
SET returnCurrencyID = currencyID of Arg1
ELSE IF Arg1.Type != PtgCy AND Arg2.Type = PtgCy THEN
SET returnType = PtgCy
SET returnCurrencyID = currencyID of Arg2
ELSE IF Arg1.Type = PtgCy AND Arg2.Type = PtgCy THEN
SET returnType = PtgCy
IF currencyID of Arg1 = currencyID of Arg2 OR currencyID of Arg2 = 1 THEN
SET returnCurrencyID = currencyID of Arg1
ELSE IF currencyID of Arg1 = 1 THEN
SET returnCurrencyID = currencyID of Arg2
ELSE
SET returnType = PtgErr
END IF
ELSE IF Arg1.Type = PtgDate THEN
SET returnType = Arg1.Type
SET returnDimension = 1
ELSE IF Arg2.Type= PtgDate THEN
SET returnType = Arg2.Type
SET returnDimension = 1
ELSE IF Arg1.Unit = PtgNumDft AND Arg2.Unit is a vUnitType THEN
SET returnType = Arg2.Unit
SET returnDimension = 1
ELSE IF Arg1.Unit is a vUnitType THEN
SET returnType = Arg1.Unit
IF Arg2.Dimension = 0 OR Arg2.Dimension = Arg1.Dimension THEN
SET returnDimension = Arg1.Dimension
ELSE
SET returnDimension = 1
END IF
IF (returnType = PtgAcre OR returnType = PtgHectare) AND returnDimension != 2 THEN
SET returnType = PtgNumDft
END IF
ELSE IF Arg2.Unit is a vUnitType THEN
SET returnType = Arg2.Unit
IF Arg1.Dimension = 0 OR Arg2.Dimension = Arg1.Dimension THEN
SET returnDimension = Arg2.Dimension
ELSE
SET returnDimension = 1
END IF
IF (returnType = PtgAcre OR returnType = PtgHectare) AND returnDimension != 2 THEN
SET returnType = PtgNumDft
END IF
END IF
IF returnType = PtgCy THEN
Return type is PtgCy with currencyID = returnCurrencyID
ELSE IF returnType = PtgErr THEN
Return type is PtgErr with error code of #VALUE!
ELSE IF returnDimension = 0 THEN
Return type is PtgNum
ELSE IF returnDimension = 1 THEN
Return type is returnType
ELSE
Return type is PtgNumMultiDim with unit = returnType and dimension = returnDimension
END IF