Show TOC

Beispiel zu DatenreferenzenLocate this document in the navigation structure

Tipp

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 dref1und 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.