Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : ACCUM function
 

ACCUM function

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.

See also

ACCUMULATE statement, DISPLAY statement