Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Declarations →  Declaration Statements →  Data Types and Data Objects →  Declaring Data Types →  TYPES 

TYPES - RANGE OF

Quick Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax


TYPES dtype {TYPE RANGE OF type}|{LIKE RANGE OF dobj} 
            [INITIAL SIZE n].

Effect

Derives a table type for a ranges table. A ranges table is a standard table in which a ranges condition can be saved. It has a standard key and a special structured row type whose internal definition can be represented as follows in ABAP syntax:

TYPES: BEGIN OF linetype,
         sign   TYPE c LENGTH 1,
         option TYPE c LENGTH 2,
         low    {TYPE type}|{LIKE dobj},
         high   {TYPE type}|{LIKE dobj},
       END OF linetype.

The additions TYPE and LIKE determine the data type of the components low and high:

  • type can be a non-generic data type from ABAP Dictionary, a non-generic public data type of a public data type of a global class, a non-generic data type local to a program, or any ABAP type from the tables of built-in ABAP types. The generic ABAP types c, n, p, and x are extended implicitly to the standard length without decimal places from the tables of built-in ABAP types.
  • dobj can be a data object visible at this point, whose type is used for both components. Generically typed formal parameters cannot be specified for dobj within a procedure.

The addition INITIAL SIZE is synonymous with the definition of normal internal table types.

A ranges table can be used in a relational expression with the relational operator IN or in a similar expression in a WHERE condition in ABAP SQL. It is also used for value passing to the selection screens of an executable program called using SUBMIT.


Notes

  • A selection table declared with SELECT-OPTIONS has the same structure as a ranges table.
  • The sign and option columns of a ranges table declared using RANGE OF are not related to data types in ABAP Dictionary. For a ranges table defined in ABAP Dictionary, these columns are based on the data elements DDSIGN and DDOPTION.

Example

Defines a table type for a ranges table and its use for an inline declaration of a ranges table on the left side of a constructor expression with the value operator VALUE.

TYPES carrid_range TYPE RANGE OF spfli-carrid. 

DATA(carrid_range) = VALUE carrid_range( 
  ( sign = 'I' option = 'BT' low = 'AA' high = 'LH') ). 

SELECT * 
       FROM spfli 
       WHERE carrid IN @carrid_range 
       INTO TABLE @DATA(spfli_tab).