Code: Alles auswählen.
REPORT.
FORM TEST CHANGING TESTTABLE TYPE ANY TABLE.
DATA REF_TO_COPY_OF_TESTTABLE TYPE REF TO DATA.
CREATE DATA REF_TO_COPY_OF_TESTTABLE TYPE STANDARD TABLE OF ( LINE OF TESTTABLE ) WITH EMPTY KEY.
ASSIGN REF_TO_COPY_OF_TESTTABLE ->* TO FIELD-SYMBOL(<COPIED_TABLE>).
<COPIED_TABLE> = TESTTABLE. " Daten von übergebener in Standardtabelle übertragen
ENDFORM.
waaaahhhhhhhhhhhhhhhhhhhhhh 😖 😁
Code: Alles auswählen.
CREATE DATA lr_data LIKE LINE of itab.
ASSIGN lr_data->* to <ls_line>.
CREATE DATA lr_data LIKE STANDARD TABLE OF <ls_line>.
ASSIGN lr_data->* to <lt_table>.
<lt_table> = itab.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 3):
ewx • DeathAndPain • Icke0801
Das ist aber eine sehr verquere Sichtweise, die du dir für Referenzen und dereferenzierte Daten angewöhnt hast. CREATE DATA erzeugt die Daten und am Anfang zeigt lr_ldata darauf. Mit assign lr_data->* to <ls_line> zeigt jetzt zusätzlich auch <ls_line> auf die mit CREATE DATE erzeugten Daten und somit bleibt beim Recyclen von lr_data immer noch eine Referenz stehen...DeathAndPain hat geschrieben: ↑06.10.2021 16:50mit der Folge, dass <ls_line> in dem Moment aufhören müsste zu existieren, in dem es für den zweiten CREATE DATA-Befehl genutzt wird (denn dann ist das zuerst erzeugte Datenfeld ja nicht mehr referenziert und müsste damit in die Garbage Collection gehen).
Wenn das so ist, weshalb kann ich dann keinen Watchpoint auf ein Feldsymbol anlegen... einer der größten Nachteile von Feldsymbolen (die ich ansonsten sehr schätze). Durch die effizienteren LOOP ... ASSIGNING anstelle der herkömmlichen LOOP ... INTO bringt man sich beim Debugging um die Möglichkeit, per Watchpoint auf eine Zeile mit bestimmtem Inhalt zu warten. Allenfalls kann man versuchen, sich vorher anzuschauen, die wievielte Zeile der geLOOPten Tabelle man braucht und dann den Watchpoint auf SY-TABIX setzen. Aber wehe, es gibt einen inneren (geschachtelten) LOOP, bei dem dieser SY-TABIX auch auftritt oder einen READ TABLE oder dergleichen...black_adept hat geschrieben: ↑06.10.2021 20:40Sowohl Referenzvariablen als auch Feldsymbole sind letztendlich Variablen im Sinne der Programmierung.
Moin D&P,DeathAndPain hat geschrieben: ↑07.10.2021 17:57Wären Feldsymbole richtige Variablen und nicht nur Zeiger auf Speicherbereiche, dann wäre auch ein Watchpoint darauf möglich.
Code: Alles auswählen.
IF watchpoint = gesuchter_wert.
...
ENDIF.
Code: Alles auswählen.
REPORT.
do 10000 times.
write sy-index.
enddo.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
DeathAndPain • Thomas R.