ALV-Control (ABAP): Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 8: Zeile 8:
" Datenreferenz erstellen. Diese kann auf einen typisierten oder
" Datenreferenz erstellen. Diese kann auf einen typisierten oder
" untypisierten Datenspeicher zeigen. Hier: untypisiert.
" untypisierten Datenspeicher zeigen. Hier: untypisiert.
DATA: ls_scarr TYPE scarr,
DATA: gs_scarr TYPE scarr,
       lt_scarr TYPE TABLE OF scarr.
       gt_scarr TYPE TABLE OF scarr.


" Feldsymbol für interne Tabelle
" Feldsymbol für interne Tabelle
FIELD-SYMBOLS: <lt_table> LIKE LINE OF lt_scarr.
FIELD-SYMBOLS: <gt_table> LIKE LINE OF gt_scarr.


" Datenbanktabelle in interne Tabelle laden
" Datenbanktabelle in interne Tabelle laden
SELECT * FROM scarr INTO TABLE lt_scarr.
SELECT * FROM scarr INTO TABLE gt_scarr.


" Interne Tabelle zeilenweise durchlaufen und eine Zeile der Feldreferenz
" Interne Tabelle zeilenweise durchlaufen und eine Zeile der Feldreferenz
" zuordnen. Diese Feldreferenz bearbeiten.
" zuordnen. Diese Feldreferenz bearbeiten.
LOOP AT lt_scarr ASSIGNING <lt_table>.
LOOP AT gt_scarr ASSIGNING <gt_table>.
   <lt_table>-url = <lt_table>-url && '/subpage/'.
   <gt_table>-url = <gt_table>-url && '/subpage/'.
ENDLOOP.
ENDLOOP.


" ALV-Control als Referenzvariable definieren
" ALV-Control als Referenzvariable definieren
DATA: lr_alv TYPE REF TO cl_salv_table.
DATA: gr_alv TYPE REF TO cl_salv_table.


" ALV-Control erstellen und ausgeben
" ALV-Control erstellen und ausgeben
cl_salv_table=>factory(
cl_salv_table=>factory(
   IMPORTING
   IMPORTING
       r_salv_table = lr_alv
       r_salv_table = gr_alv
   CHANGING
   CHANGING
     t_table = lt_scarr ).
     t_table = gt_scarr ).


lr_alv->display( ).
gr_alv->display( ).
</syntaxhighlight>
</syntaxhighlight>


[[Category:ABAP]]
[[Category:ABAP]]

Aktuelle Version vom 2. April 2018, 22:54 Uhr

Mit folgendem Listing wird eine definierte Datenbanktabelle in eine interne Tabelle gelesen und in einem ALV-Control ausgegeben.

Für varianten mit zur Laufzeit bestimmten Tabellen siehe Dynamische Programmierung (ABAP)

REPORT zmattitabalv.

" Datenreferenz erstellen. Diese kann auf einen typisierten oder
" untypisierten Datenspeicher zeigen. Hier: untypisiert.
DATA: gs_scarr TYPE scarr,
      gt_scarr TYPE TABLE OF scarr.

" Feldsymbol für interne Tabelle
FIELD-SYMBOLS: <gt_table> LIKE LINE OF gt_scarr.

" Datenbanktabelle in interne Tabelle laden
SELECT * FROM scarr INTO TABLE gt_scarr.

" Interne Tabelle zeilenweise durchlaufen und eine Zeile der Feldreferenz
" zuordnen. Diese Feldreferenz bearbeiten.
LOOP AT gt_scarr ASSIGNING <gt_table>.
  <gt_table>-url = <gt_table>-url && '/subpage/'.
ENDLOOP.

" ALV-Control als Referenzvariable definieren
DATA: gr_alv TYPE REF TO cl_salv_table.

" ALV-Control erstellen und ausgeben
cl_salv_table=>factory(
  IMPORTING
      r_salv_table = gr_alv
  CHANGING
    t_table = gt_scarr ).

gr_alv->display( ).