Please enable JavaScript to view this site.

Program to total values with a varying number of input decimals and output a value with a specific number of decimals. The result may be rounded and include comma delimiters if required.

To INITIALISE the parameters and zero the total, use the following parameters:

Parameter

In

Len

Comments

PARM1

Number of output decimals (0 – 5)

1

If left blank defaults to 0

PARM2

Round up result

4

*YES to round or blank if not

PARM3

Thousand delimiter etc.

1

Enter delimiter if required e.g. “,”

PARM4

Negative sign?

4

*NO to stop minus sign on Total or Sub Total

PARM5

Decimal point e.g. “.” or ”,”

1

If left blank defaults to “.” This is required for Europe where decimal point is a comma.

PARM6

*FIRST

6

This should be called when you wish to zero the total and start again, possibly inside a Page = *FIRST condition

To ADD or SUBTRACT values, use the following parameters:

Parameter

In

Len

Out

Len

Comment

PARM1

Value to sum

30

Sub Total #2

20 #3

Subtotal

PARM2


 

*NEG

4

If result is negative

PARM3


 


 


PARM4


 


 


PARM5


 


 


PARM6

*ADD or *SUB #1

6


 


Notes:

#1 If using *ADD you may pass in a number with a minus sign and it will subtract the value. If you do not have minus signs on your spooled file then you may use *SUB to subtract a number from your total. It does not matter if the value that you pass in PARM1 has more or less decimals than the decimals required for the total value.
#2If there is an error in the value being passed in *ERROR will be returned in PARM1 otherwise a subtotal of all the values passed for this type of call since initialisation will be returned.
#3 This is the maximum length; the actual length will depend upon the number of decimals you wish returned, a minus sign and whether or not you have specified a thousands delimiter.

To return the TOTAL value, use the following parameters:

Parameter

In

Len

Out

Len

Comment

PARM1



Total Value

20 #3

Total of values

PARM2



*NEG

4

If result is negative

PARM3






PARM4






PARM5






PARM6

*LAST




Called when you wish to produce a total, possibly inside a Page = *LAST condition.