Anfang des Inhaltsbereichs

Beispiel zu Datenreferenzen Dokument im Navigationsbaum lokalisieren

Beispiel

REPORT demo_data_reference.

TYPES: BEGIN OF t_struct,
         col1 TYPE i,
         col2 TYPE i,
       END OF t_struct.

DATA: dref1 TYPE REF TO data,
      dref2 TYPE REF TO data.

FIELD-SYMBOLS: <fs1> TYPE t_struct,
               <fs2> TYPE i.

CREATE DATA dref1 TYPE t_struct.

ASSIGN dref1->* TO <fs1>.

<fs1>-col1 = 1.
<fs1>-col2 = 2.

dref2 = dref1.

ASSIGN dref2->* TO <fs2> CASTING.
WRITE / <fs2>.

GET REFERENCE OF <fs1>-col2 INTO dref2.

ASSIGN dref2->* TO <fs2>.
WRITE / <fs2>.

Die Listenausgabe ist:

      1

      2

In diesem Beispiel werden zwei Datenreferenzvariable dref1 und dref2 deklariert. Mit dref1 wird ein strukturiertes dynamisches Datenobjekt erzeugt. Diesem werden nach der Dereferenzierung mit dem Feldsymbol <fs1> Werte zugewiesen. Nach der Zuweisung von dref1 an dref2 zeigt auch dref2 auf das strukturierte Datenobjekt. Bei der Dereferenzierung von dref2 wird ein Cast auf den elementaren Typ i des Feldsymbols <fs2> durchgeführt. Dadurch wird seine erste Komponente dem Feldsymbol zugewiesen. Dann wird mit GET REFERENCE eine Referenz auf die zweite Komponente des strukturierten Datenobjekts in dref2 gestellt und ohne Casting dereferenziert.

 

 

Ende des Inhaltsbereichs