Returns the value of an aggregate expression that is calculated by an ACCUMULATE or aggregate phrase of a DISPLAY statement.
Syntax
ACCUM aggregate-phraseexpression
aggregate-phrase
A phrase that identifies the aggregate value it should return. This is the syntax for aggregate-phrase:
{ AVERAGE | COUNT | MAXIMUM | MINIMUM | TOTAL | SUB-AVERAGE
| SUB-COUNT | SUB-MAXIMUM | SUB-MINIMUM | SUB-TOTAL } [ BY break-group]
For more information on aggregate items, see the Aggregate phrase reference entry.
expression
An expression that was used in an earlier ACCUMULATE or DISPLAY statement. The expression you use in the ACCUMULATE or DISPLAY statement and the expression you use in the ACCUM function must be in exactly the same form. (For example, "on-hand * cost" and "cost * on-hand" are not in exactly the same form.) For the AVERAGE, SUB-AVERAGE, TOTAL, and SUB-TOTAL aggregate phrases, expression must be numeric.
Example
This procedure shows a total for the extended price of each item on an order. The running total of the order is displayed as well as the order total and grand total for all orders. This procedure accumulates totals at three levels.
r-accum.p
FOR EACH Order NO-LOCK:
DISPLAY Order.OrderNum Order.CustNum Order.OrderDate Order.PromiseDate
Order.ShipDate.
FOR EACH OrderLine OF Order NO-UNDO:
DISPLAY OrderLine.LineNum OrderLine.ItemNum OrderLine.Qty
OrderLine.Price (OrderLine.Qty * OrderLine.Price) LABEL "Ext Price".
ACCUMULATE OrderLine.Qty * OrderLine.Price (TOTAL).
DISPLAY (ACCUM TOTAL OrderLine.Qty * OrderLine.Price) LABEL "Accum Total".
END.
DISPLAY (ACCUM TOTAL OrderLine.Qty * OrderLine.Price) LABEL "Total".
END.
DISPLAY (ACCUM TOTAL OrderLine.Qty * OrderLine.Price) LABEL "Grand Total"
WITH ROW 1.