WRITE statement that
after executing the
SUMMING statement (which is forbidden in classes) writes
the content of data object
dobj to a list at any list level, implicitly the
total of all values of
dobj output with
since the execution of
SUMMING is determined and assigned to a data object
SUMMING statement declares the global data object
sum_dobj with the same type as
dobj, you can specify
data objects. You are allowed to execute the
SUMMING statement only once in a program. It may be located within a
procedure, but the declared 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.
This statement is not permitted in classes because it works with global variables created implicitly. In its place, you can carry out explicit calculations, for example.
Implicit determination of minimum, maximum, and total of a list of flight distances.
DATA spfli_wa TYPE spfli.
SELECT carrid connid distance
INTO CORRESPONDING FIELDS OF spfli_wa
WHERE carrid = p_carrid.
WRITE: / spfli_wa-carrid, spfli_wa-connid,
In Unicode programs, the program above raises a syntax check warning, since the names of the data objects
MINIMUM, MAXIMUM, and
SUMMING contain the invalid character "-".
Without using the implicit statements
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.