SUMMING dobj.
For every WRITE statement that after executing the SUMMING/> statement (which is forbidden in classes) writes the content of data object dobj onto a list of any list level, implicitly the total of all values of dobj output with WRITE since the execution of SUMMING is determined and assigned to a data object SUM_dobj.
The SUMMING statement declares the global data object SUM_dobj with the same type as dobj. For dobj, you can specify numeric data objects. You are allowed to execute the SUMMING statement only once in a program. It may be located within a procedure, but the delared data object SUM_dobj is not local.
If the content of dobj in a
WRITE statement after execution of the SUMMING
statement cannot be interpreted as a number or the addition results in an overflow, then an untreatable exception occurs.
Implicit determination of minimum, maximum and total of a list of flight distances.
PARAMETERS p_carrid TYPE spfli-carrid.
DATA spfli_wa TYPE spfli.
MINIMUM spfli_wa-distance.
MAXIMUM spfli_wa-distance.
SUMMING spfli_wa-distance.
SELECT carrid connid distance
FROM spfli
INTO CORRESPONDING FIELDS OF spfli_wa
WHERE carrid = p_carrid.
WRITE: / spfli_wa-carrid, spfli_wa-connid,
spfli_wa-distance.
ENDSELECT.
ULINE.
WRITE: min_spfli_wa-distance,
max_spfli_wa-distance,
sum_spfli_wa-distance.
Without using the implicit statements MINIMUM, MAXIMUM and SUMMING, you can get the same result using explicitly calculated help fields.
PARAMETERS p_carrid TYPE spfli-carrid.
DATA: spfli_wa TYPE spfli,
min_distance TYPE spfli-distance VALUE +99999,
max_distance TYPE spfli-distance VALUE -99999,
sum_distance TYPE spfli-distance.
SELECT carrid connid distance
FROM spfli
INTO CORRESPONDING FIELDS OF spfli_wa
WHERE carrid = p_carrid.
WRITE: / spfli_wa-carrid, spfli_wa-connid,
spfli_wa-distance.
IF spfli_wa-distance < min_distance.
min_distance = spfli_wa-distance.
ENDIF.
IF spfli_wa-distance > max_distance.
max_distance = spfli_wa-distance.
ENDIF.
sum_distance = sum_distance + spfli_wa-distance.
ENDSELECT.
ULINE.
WRITE: min_distance,
max_distance,
sum_distance.