Um die ALV-Ausgabe am Bildschirm anzuzeigen, genügt es, zwei Methoden des ALV-Objektmodells zu verwenden:
·
FACTORY
Sie instanziieren die ALV-Hauptklasse:
¡ Sie legen die interne Datentabelle fest, die Struktur und ggf. Inhalte der ALV-Ausgabe liefert.
¡ Sie legen fest, welche Darstellungsart Sie für die ALV-Ausgabe verwenden möchten.
·
DISPLAY
Um die ALV-Ausgabe am Bildschirm darzustellen, rufen
Sie anschließend die Methode DISPLAY auf.
Das folgende Beispiel zeigt den einfachsten Aufruf einer Tabelle vom Typ SFLIGHT. Dabei ist die Tabelle gt_outtab die Tabelle mit Ihren Anwendungsdaten und gr_table die Referenz auf die zu verwendende ALV-Hauptklasse.
data: gt_outtab type
table of SFLIGHT.
data: gr_table type ref to cl_salv_table.
*... Select Data
select * from SFLIGHT into
corresponding fields of table gt_outtab.
*... Create Instance
call method
cl_salv_table=>factory
IMPORTING
R_SALV_TABLE = gr_table
changing
t_table =
gt_outtab.
*... Display Table
gr_table->display(
).
Das folgende Beispiel zeigt den einfachsten Aufruf einer hierarchisch-sequenziellen Liste.
· Die Kopfebene stammt aus der Tabelle SCARR, die Positionsebene aus der Tabelle SFLIGHT. Deren Spalten werden in die Tabellen Ihrer Anwendungsdaten übertragen: gt_parent bzw. gt_child.
· Beide Tabellen enthalten die Spalte CARRID, über die die Fremdschlüsselbeziehung gebildet wird.
·
gr_table ist die
Referenz auf die zu verwendende ALV-Ausgabeklasse.
data: gt_parent type table of SCARR.
data: gt_child type table of SFLIGHT.
data: gr_table type ref to cl_salv_hierseq_table.
data: lt_binding type salv_t_hierseq_binding.
data: ls_binding type salv_s_hierseq_binding.
*... Select Data
select * from SCARR into corresponding fields of table gt_parent.
select * from SFLIGHT into corresponding fields of table gt_child.
*... Bind Parent and Child Table
ls_binding-master = 'CARRID'.
ls_binding-slave = 'CARRID'.
append ls_binding to lt_binding.
*... Create Instance
call method cl_salv_hierseq_table=>factory
exporting
t_binding_level1_level2 = lt_binding
importing
r_hierseq = gr_table
changing
t_table_level1 = gt_parent
t_table_level2 = gt_child.
*... Display Table
gr_table->display( ).
Das folgende Beispiel zeigt den einfachsten Aufruf einer Baumstruktur vom Typ SFLIGHT. Dabei ist die Tabelle gt_outtab2 eine leere Tabelle, die lediglich die Struktur des Baums vorgibt, die Tabelle gt_outtab1 die Tabelle, die die gewünschten Datensätze enthält.
gr_tree ist die
Referenz auf die zu verwendende ALV-Ausgabeklasse.
data: gt_outtab1 type table of sflight,
gt_outtab2 type table of sflight.
data: ls_outtab type sflight.
data: gr_tree type ref to cl_salv_tree.
data: nodes type ref to cl_salv_nodes,
node type ref to cl_salv_node.
*... Select Data
select * from sflight into corresponding fields of table gt_outtab1 up to 5 rows.
*... Create Instance with an Empty Table
call method cl_salv_tree=>factory
IMPORTING
R_SALV_TREE = gr_tree
changing
t_table = gt_outtab2.
*... Add the Nodes to the Tree
nodes = gr_tree->get_nodes( ).
loop at gt_outtab1 into ls_outtab.
try.
node = nodes->add_node( related_node = key
relationship = cl_gui_column_tree=>relat_first_child ).
node->set_data_row( ls_outtab ).
catch cx_salv_msg.
endtry.
endloop.
*... Display Table
gr_tree->display( ).