Deletes using the table
key. All lines with the same key are deleted. The key values are taken either
from a compatible work area <wa> or specified explicitly.
Syntax
DELETE <itab> WHERE
<cond>.
Deletes using conditions.
Deletes all table entries that satisfy the logical expression <cond>. The
logical condition can consist of more than one comparison. In each comparison,
the first operand must be a component of the line structure.
Syntax
DELETE ADJACENT DUPLICATE
ENTRIES FROM <itab> [COMPARING� ].
Deletes adjacent duplicate
entries, either by comparing the key fields or the comparison fields specified
explicitly in the COMPARING addition.
DELETE for Lines from
Index Tables
Deletes entries from index
tables.
Syntax
DELETE <itab> [INDEX
<idx>].
If you use the INDEX
addition, the line with index <idx> is deleted from the table <itab>. Without
the INDEX addition, you can only use the above statement within a LOOP. In this
case, you delete the current line.
The system deletes all of
the lines of <itab> whose index lies between <n 1
> and <n 2
> and who meet the conditions
specified in the WHERE clause. If you do not specify a FROM addition, the system
deletes lines from the first line onwards. If you do not specify a TO addition,
the system deletes lines up to the last line. The logical condition can consist
of more than one comparison. In each comparison, the first operand must be a
component of the line structure.
DEMAND
Retrieves values from a
context instance.
Syntax
DEMAND <val1> =
<f 1>� <val n> = <f n> FROM CONTEXT <inst>
[MESSAGES INTO <itab>].
Fills the fields <fn>
with the values <val n> from the context instance <inst>. You can
handle these messages in your programs by using the MESSAGES addition.
DESCRIBE DISTANCE
Gets the distance between
two fields.
Syntax
DESCRIBE DISTANCE BETWEEN <f1> AND
<f2> INTO <f3> [IN BYTE|CHARACTER MODE].
Writes the number of bytes
between data objects <f1> and <f 2> into the variable <d>.
The length of the first field in memory is always included. In Unicode programs,
you must specify either the IN BYTE MODE or IN CHARACTER MODE addition. In
non-Unicode programs, the distance is returned in bytes.
The attributes of the data
object <f> specified by the parameters of the statement are written to the
variables following the parameters. You can use any number of the additions in
the same statement. In Unicode programs, you must specify either the IN BYTE
MODE or IN CHARACTER MODE addition for LENGTH. In non-Unicode programs, the
length is returned in bytes.
DESCRIBE LIST
Describes the attributes
of a list.
Syntax
DESCRIBE LIST NUMBER OF LINES <lin>
[INDEX <idx>].
DESCRIBE LIST NUMBER OF PAGES <n>
[INDEX <idx>].
DESCRIBE LIST LINE <lin> PAGE <pag>
[INDEX <idx>].
DESCRIBE LIST PAGE <pag> [INDEX
<idx>]�
Depending on the variant
of the statement that you use, writes the number of lines, number of pages, a
line of a list on a given page, or various attributes of a page to variables.
Depending on the additions
you use, writes the number of lines occupied, the value specified for the
INITIAL SIZE of the table, or the table type into a corresponding variable.
DIVIDE
Divides one field by
another.
Syntax
DIVIDE <n> BY <m>.
Divides the content of <n>
by <m>, and places the result in <n>. This is equivalent to: n=n/m.
DIVIDE-CORRESPONDING
Divides matching
components of structures.
Syntax
DIVIDE-CORRESPONDING <struc1> BY
<struc2>.
All the identically-named
subfields of the structures <struc1> and <struc2> are divided and the results
are stored these subfields of <struc1>.
DO
Introduces a loop.
Syntax
DO [<n> TIMES] [VARYING
<f> FROM <f1> NEXT <f2>].
Introduces a statement
block that ends with ENDDO. If you omit the TIMES addition, the statement block
is repeated until it reaches a termination statement such as EXIT or CHECK. Use
the TIMES addition to restrict the number of loop passes to <n>. The VARYING
addition allows you to process fields the same distance apart in memory.