Methode
GET_TABLE_FOR_ALV_GRID
Sie können im BRF mehrere BRF-Objekte der gleichen Klasse in einer Übersicht anzeigen. Diese Übersicht ist über ein ALV-Grid realisiert (Transaktion BRF_OVERVIEW).
Um diese Übersicht anzeigen zu können, muss die implementierende Pflegeklasse eine Tabelle mit Strukturbeschreibung zurückgeben.
Beispiel-Quelltext:
Im Folgenden sind nur die
wesentlichen Teile des Quelltextes aufgeführt.
METHOD if_maintenance_brf~get_table_for_alv_grid .
FIELD-SYMBOLS <lt_sbrf150_alv> TYPE sbrf150_alv_t.
DATA lr_sbrf150_alv TYPE REF TO DATA.
DATA ls_sbrf150_alv TYPE sbrf150_alv.
*--- get the common expression data from the super-class ---------------
CALL METHOD super->if_maintenance_brf~get_table_for_alv_grid
EXPORTING
iv_applclass = iv_applclass
iv_class_id = iv_class_id
iv_import_status = iv_import_status
iv_version = iv_version
IMPORTING
et_table = lr_sbrf150_alv.
ASSIGN lr_sbrf150_alv->* TO <lt_sbrf150_alv>.
CHECK <lt_sbrf150_alv> IS ASSIGNED.
*--- select data from the db-table TBRF142 ----------------------------
IF NOT <lt_sbrf150_alv>[] IS INITIAL.
SELECT * FROM tbrf142 INTO TABLE lt_tbrf142
FOR ALL ENTRIES IN <lt_sbrf150_alv> WHERE
ENDIF.
*--- merge all the fields into one table ------------------------------
LOOP AT <lt_sbrf150_alv> INTO ls_sbrf150_alv.
CLEAR ls_sbrf142_alv.
MOVE-CORRESPONDING ls_sbrf150_alv TO ls_sbrf142_alv.
READ TABLE lt_tbrf142 INTO ls_tbrf142 WITH KEY
MOVE-CORRESPONDING ls_tbrf142 TO ls_sbrf142_alv.
APPEND ls_sbrf142_alv TO mt_sbrf142_alv.
ENDLOOP.
* --------- get a data reference for the exporting parameter -----------
GET REFERENCE OF mt_sbrf142_alv INTO et_table.
ENDMETHOD.
Beschreibung:
Die Methode GET_TABLE_FOR_ALV_GRID baut eine interne Member-Tabelle auf (MT_SBRF142_ALV). Diese Member-Tabelle besteht aus Informationen aus folgenden Tabellen:
· Ausdruckstabelle TBRF150 und TBRF150T (Methode der Supeklasse)
· Tabelle TBRF142
Wichtig ist, dass die interne Tabelle MT_SBRF142_ALV auch nach dem Verlassen der Methode weiter existiert. Andernfalls würde die Referenz, die in der letzten Zeile erzeugt wird, ungültig werden.
Beachten Sie bei der Implementierung zudem Folgendes:
· Definieren Sie Ihre ALV-Struktur im DDIC.
Die Namenskonvention für existierende ALV-Strukturen lautet SBRFxxx_ALV (xxx steht für die Nummer der relevanten Spezialisierungstabelle).
· Inkludieren Sie in Ihre ALV-Struktur die ALV-Struktur der Basistabelle.
¡ Bei Ausdrücken lautet die ALV-Struktur der Basistabelle SBRF150_ALV
¡ Bei konkreten Aktionen lautet die ALV-Struktur der Basistabelle SBRF171_ALV