Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZZRW_FREED_STACK_DEMO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zzrw_freed_stack_demo.
**********************************************************************
*
**********************************************************************
CLASS lcl_freed_stack_demo DEFINITION.
PUBLIC SECTION.
METHODS:
"! Datenselektion -- diese Methode ist so natürlich nicht
"! sinnvoll. In Wahrheit kommt die Tabelle aus einer externen
"! Quelle und ich kenne deren Struktur nicht, darum schiebe
"! ich das Ergebnis der Selektion in eine Datenreferenz,
"! um dann später den Typ zu ermitteln und die Tabelle
"! entsprechend auszuwerten.
"!
"! Die Methode zeigt halt den Fehler ganz gut, den ich nicht
"! verstehe....
data_sel
RETURNING
VALUE(data_ref) TYPE REF TO data.
ENDCLASS.
DATA:
data_ref_caller TYPE REF TO data.
" BÄMM!
data_ref_caller = NEW lcl_freed_stack_demo( )->data_sel( ).
BREAK-POINT.
**********************************************************************
*
**********************************************************************
CLASS lcl_freed_stack_demo IMPLEMENTATION.
METHOD data_sel.
DATA:
data_table TYPE STANDARD TABLE OF sflight.
SELECT * FROM sflight
INTO TABLE data_table
UP TO 20 ROWS.
GET REFERENCE OF data_table INTO data_ref.
ENDMETHOD.
ENDCLASS.
Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
tm987456
Code: Alles auswählen.
CREATE DATA data_ref TYPE sflight_tab.
FIELD-SYMBOLS: <data_table> TYPE sflight_tab. "<-- Damit es ein Tabellentyp für das SELECT ist.
ASSIGN data_ref->* TO <data_table>.
SELECT * FROM sflight
INTO TABLE <data_table>
UP TO 20 ROWS.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag (Insgesamt 2):
ralf.wenzel • tm987456