GET CURSOR

Basic form 2
GET CURSOR ...

Variants:




1. GET CURSOR FIELD f.

2. GET CURSOR LINE line.

Variant 1

GET CURSOR FIELD f.

Extras:

1. ... OFFSET off

2. ... LINE line

3. ... VALUE g

4. ... LENGTH len

Effect

Transfers the name of the field at the cursor position to the field f.

The Return Code is set as follows:

SY-SUBRC = 0:
Cursor was positioned on a field.
SY-SUBRC = 4:
Cursor was not positioned on a field.

Note

Unlike screen processing, list processing allows you to output literals, field symbols, parameters and local variables of subroutines. Literals, local variables, VALUE parameters of subroutines, and object attributes are treated like fields without names (field name SPACE, return value 0).
Otherwise, GET CURSOR FIELD returns only names of global fields, regardless of whether they are addressed directly (i.e. by " WRITE"), by field symbols or by reference parameters.
With field symbols, this depends on whether the variable assigned is local or global. An assignment made using LOOP ASSIGNING does not return a field name for the field symbol since a table work area is always local.

Example

DATA: CURSORFIELD(20),
      GLOB_FIELD(20)    VALUE 'global field',
      REF_PARAMETER(30) VALUE 'parameter by reference',
      VAL_PARAMETER(30) VALUE 'parameter by value',
      FIELD_SYMBOL(20)  VALUE 'field symbol'.
FIELD-SYMBOLS: <F> TYPE ANY.
PERFORM WRITE_LIST USING REF_PARAMETER VAL_PARAMETER.
ASSIGN GLOB_FIELD TO <F>.

AT LINE-SELECTION.
  GET CURSOR FIELD CURSORFIELD.
  WRITE: /   CURSORFIELD, SY-SUBRC.

FORM WRITE_LIST USING RP VALUE(VP).
  DATA: LOK_FIELD(20)  VALUE 'local field'.
  ASSIGN FIELD_SYMBOL TO <F>.
  WRITE: /  GLOB_FIELD,  /  LOC_FIELD,
         /  RP,          /  VP,
         /  'literal',   /  FIELD_SYMBOL.
ENDFORM.

When you double-click on the word " global field", CURSORFIELD contains the field name GLOB_FIELD, on "parameter by reference" the field name REF_PARAMETER, on " field symbol" the field name FIELD_SYMBOL, and on "local field", "parameter by value" and "literal" the value SPACE.

Addition 1

... OFFSET off

Effect

Copies the position of the cursor within the field to the field off (1st column = 0).
If the cursor is not somewhere within a field (SY-SUBRC = 4), the offset value is set to 0.

Addition 2

... LINE line

Effect

With step loops, lin contains the number of the loop line where the cursor stands. In list processing, this is the absolute line number (as stored in the system field SY-LILLI).

Addition 3

... VALUE g

Effect

g contains the value of the field where the cursor stands, always in output format (character display).

Addition 4

... LENGTH len

Effect

len contains the output length of the field where the cursor stands.

Note

If the data type of the field, on which the cursor is, is character-type, the LENGTH addition only works on lists. On screens, the system always returns the value 255.

Addition 5.. ... AREA a


Effect

If the cursor is positioned on the field of a table view control, the name of the control is placed in the field a.

Variant 2

GET CURSOR LINE line.

Extras:

1. ... OFFSET off
2. ... VALUE  g
3. ... LENGTH len

Effect

As for variant 1 with addition LINE, except that there are differences with the return code and the effect of the additions.

The Return Code is set as follows:

SY-SUBRC = 0:
The cursor is on one of the list lines (list processing) or on a loop line (step loop).
SY-SUBRC = 4:
The cursor is not on one of the list or loop lines.

Addition 1

... OFFSET off

Effect

Applies to list processing only. The field off contains the position of the cursor relative to the beginning of the list line (1st column = 0). With horizontally shifted lists, the offset value can thus be greater than 0, even if the cursor is positioned on the extreme left of the window.

Addition 2

... VALUE g

Effect

List processing only. The field g contains the list line where the cursor is positioned.

Addition 3

... LENGTH len

Effect

List processing only. len contains the length of the line (LINE-SIZE).

Related

SET CURSOR

Additional help

Specifyingthe Cursor Position
Reading Lists at theCursor Position