ABAP Keyword Documentation → ABAP - Reference → Obsolete Language Elements → Obsolete Extracts
AT - Extract
Other versions: 7.31 | 7.40 | 7.54
Obsolete Syntax
LOOP.
[AT FIRST.
...
ENDAT.]
[AT field_groupi [WITH field_groupj]
...
ENDAT.]
[AT NEW field1.
...
ENDAT.
[AT NEW field2.
...
ENDAT.
[...]]]
[ ... ]
[[[...]
AT END OF field2.
...
ENDAT.]
AT END OF field1.
...
ENDAT.]
[AT LAST.
...
ENDAT.]
ENDLOOP.
Extras
1. ... FIRST
2. ... field_groupi [WITH field_groupj]
3. ... {NEW}|{END OF} fieldi
4. ... LAST
Effect
The statement block of a LOOP
for extracts can contain control structures for
control level processing.
The corresponding control statement is AT
. The statements AT
and ENDAT
define statement blocks that are executed at
control breaks. Within
some of these statement blocks, it is possible to access the automatically created data objects
sum(field)
and cnt(field)
.
A prerequisite for control level processing is that the
extraction dataset
is sorted. From the line structure and the respective sorting, you get a group structure of the content
of the extraction dataset. Its levels can be evaluated using AT
statements.
The AT
-ENDAT
control structures must be aligned
one after the other, in accordance with the group structure. This is not necessarily the order of the
fields in the field group header
, but it can be determined by the BY
addition in the SORT
statement.
The statement blocks within the AT
-ENDAT
control
structures are executed if an appropriate control break is made in the current row. Statements in the
LOOP
-ENDLOOP
control structure that are not executed
within an AT
-ENDAT
control structure are executed in each pass of the loop.
Addition 1
... FIRST
Effect
The control level is defined by the first line of the extract dataset.
Addition 2
... field_groupi [WITH field_groupj]
Effect
A line that is attached to the extract dataset using the statement
EXTRACT field_groupi. If the WITH
addition is specified, the next line must be defined by the field group field_groupj
.
Addition 3
... {NEW}|{END OF} fieldi
Effect
The control level is defined by the beginning or end of a group of lines with the same content in the
component fieldi
and in the component links of fieldi
.
The component field
must be part of the field group header
. Components whose content is hexadecimal 0 are not included as a control break criterion.
For fieldi
, a field symbol can also be specified. If a component of field
group header
is assigned to the field symbol when the statement is executed,
this has the same effect as specifying the respective component. If no data object is assigned to the
field symbol, the specification is ignored. If another data object is assigned to the field symbol, a non-handleable exception is raised.
Addition 4
... LAST
Effect
The control level is defined by the last line of the extraction dataset.
Example
This example continues the example given under EXTRACT
.
After the extract dataset is filled,it is sorted by field group header
and,
afterwards, control level processing is executed in a LOOP
. Here a structured list is created.
REPORT ...
DATA: spfli_wa TYPE spfli,
sflight_wa TYPE sflight,
spfli_tab LIKE TABLE OF spfli_wa,
sflight_tab LIKE TABLE OF sflight_wa.
FIELD-GROUPS: header, flight_info, flight_date.
START-OF-SELECTION.
INSERT: spfli_wa-carrid spfli_wa-connid sflight_wa-fldate
INTO header,
spfli_wa-cityfrom spfli_wa-cityto
INTO flight_info.
SELECT *
FROM spfli
INTO TABLE spfli_tab.
SELECT *
FROM sflight
INTO TABLE sflight_tab.
LOOP AT spfli_tab INTO spfli_wa.
sflight_wa-fldate ='--------'.
EXTRACT flight_info.
LOOP AT sflight_tab INTO sflight_wa
WHERE carrid = spfli_wa-carrid AND
connid = spfli_wa-connid.
EXTRACT flight_date.
ENDLOOP.
ENDLOOP.
SORT STABLE.
LOOP.
AT FIRST.
WRITE / 'Flight list'.
ULINE.
ENDAT.
AT flight_info WITH flight_date.
WRITE: / spfli_wa-carrid , spfli_wa-connid, sflight_wa-fldate,
spfli_wa-cityfrom, spfli_wa-cityto.
ENDAT.
AT flight_date.
WRITE: / spfli_wa-carrid , spfli_wa-connid, sflight_wa-fldate,
ENDAT.
AT LAST.
ULINE.
WRITE: cnt(spfli_wa-carrid), 'Airlines'.
ULINE.
ENDAT.
ENDLOOP.