Code: Alles auswählen.
* Objekt für die Anzeige von BV-Ausgangsmeldungen:
DATA: gr_notif_displayer TYPE REF TO cl_hrpayde_ea_notif_displayer.
CALL METHOD gr_notif_displayer->display_notif_list
EXPORTING
ir_container = gr_container
i_mode = cl_hrpayde_sv_notif_displayer=>ac_disp_mode_alv_grid
EXCEPTIONS
alv_error = 1
OTHERS = 2.
Code: Alles auswählen.
REPORT.
CLASS unprotect DEFINITION INHERITING FROM cl_hrpayde_ea_notif_displayer.
PUBLIC SECTION.
CLASS-METHODS: loop_at_alv_dat IMPORTING io_hrpayde_ea_notif_displayer TYPE REF TO cl_hrpayde_ea_notif_displayer.
ENDCLASS.
CLASS unprotect IMPLEMENTATION.
METHOD loop_at_alv_dat.
LOOP AT io_hrpayde_ea_notif_displayer->at_alv_dat ASSIGNING FIELD-SYMBOL(<ls_alv_dat>).
ENDLOOP.
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
* Doku-Objekt
DATA: ls_alv_dat TYPE hrdesv_ea_t_alv_mld,
lt_alv_dat LIKE TABLE OF ls_alv_dat.
*FIELD-SYMBOLS: <ls_alv_dat> STRUCTURE hrdesv_ea_s_alv_mld DEFAULT ls_alv_dat.
FIELD-SYMBOLS: <ls_alv_dat> TYPE ANY.
* Klasse vererben, weil Attribut AT_ALV_DAT in der Originalklasse geschützt ist
CLASS cl_displayer_unprotect DEFINITION INHERITING FROM cl_hrpayde_ea_notif_displayer.
PUBLIC SECTION.
CLASS-METHODS:
loop_at_alv_dat IMPORTING io_hrpayde_ea_notif_displayer TYPE REF TO cl_hrpayde_ea_notif_displayer.
ENDCLASS. "unprotect DEFINITION
CLASS cl_displayer_unprotect IMPLEMENTATION.
METHOD loop_at_alv_dat.
LOOP AT io_hrpayde_ea_notif_displayer->at_alv_dat ASSIGNING <ls_alv_dat>.
ENDLOOP.
ENDMETHOD. "loop_at_alv_dat
ENDCLASS. "unprotect IMPLEMENTATION
Code: Alles auswählen.
* lt_alv_dat = cl_displayer_unprotect=>loop_at_alv_dat( <ls_alv_dat> ).
* CALL METHOD cl_displayer_unprotect=>loop_at_alv_dat( EXPORTING io_hrpayde_ea_notif_displayer = <ls_alv_dat> ).
Code: Alles auswählen.
CLASS unprotect IMPLEMENTATION.
METHOD loop_at_alv_dat.
FIELD-SYMBOLS: <ls_alv_dat> LIKE LINE OF io_hrpayde_ea_notif_displayer->at_alv_dat.
LOOP AT io_hrpayde_ea_notif_displayer->at_alv_dat ASSIGNING <ls_alv_dat>.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
Code: Alles auswählen.
unprotect=>loop_at_alv_dat( gr_notif_displayer ).
Warum nicht gleichblack_adept hat geschrieben:Hallo Sapdepp,
das was bei dir den Syntaxfehler auslöst ist eine der netten Spracherweiterungen in ABAP ab Release 7.4 die ich inzw. sehr lieb gewonnen habe.
Hier eine alternative Deklaration, die auch auf älteren Releaseständen funktionieren sollte:Und der Aufruf nachher viaCode: Alles auswählen.
CLASS unprotect IMPLEMENTATION. METHOD loop_at_alv_dat. FIELD-SYMBOLS: <ls_alv_dat> LIKE LINE OF io_hrpayde_ea_notif_displayer->at_alv_dat. LOOP AT io_hrpayde_ea_notif_displayer->at_alv_dat ASSIGNING <ls_alv_dat>. ENDLOOP. ENDMETHOD. ENDCLASS.
Code: Alles auswählen.
unprotect=>loop_at_alv_dat( gr_notif_displayer ).
Code: Alles auswählen.
LOOP AT io_hrpayde_ea_notif_displayer->at_alv_dat ASSIGNING FIELD-SYMBOL(<ls_alv_dat>).
Ich scheine überarbeitet zu sein, das lag eigentlich auf der Hand.sapdepp hat geschrieben:@ralf.wenzel: Grund steht im Text. Die Befehlserweiterung "FIELD-SYMBOL" kennt meine SAP-HR-Version nicht mit Basis-Release 700. Syntaxerror. Deswegen der Umweg.