Created
September 20, 2017 07:29
-
-
Save grknylmz/75f03bcd81bc58d5d3fcb57f8d2ac859 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
REPORT zoop_demo. | |
CLASS lcl_persistent DEFINITION ABSTRACT. | |
PUBLIC SECTION. | |
DATA : lt_data TYPE REF TO data. | |
METHODS: constructor IMPORTING !iv_table_name TYPE string, | |
get_data, | |
show_data ABSTRACT. | |
PROTECTED SECTION. | |
DATA : lv_table_name TYPE string. | |
ENDCLASS. | |
CLASS lcl_persistent IMPLEMENTATION. | |
METHOD constructor. | |
lv_table_name = iv_table_name. | |
ENDMETHOD. | |
METHOD get_data. | |
FIELD-SYMBOLS : <fs_itab> TYPE ANY TABLE. | |
CREATE DATA lt_data TYPE TABLE OF (me->lv_table_name). | |
ASSIGN lt_data->* TO <fs_itab>. | |
SELECT * FROM (me->lv_table_name) INTO TABLE @<fs_itab> UP TO 10 ROWS. | |
ENDMETHOD. | |
ENDCLASS. | |
CLASS lcl_alv_grid DEFINITION INHERITING FROM lcl_persistent FINAL. | |
PUBLIC SECTION. | |
METHODS : show_data REDEFINITION. | |
PROTECTED SECTION. | |
PRIVATE SECTION. | |
DATA : lo_alv TYPE REF TO cl_salv_table, "Object of class cl-salv_table | |
lv_msg TYPE REF TO cx_salv_msg, "#EC NEEDED "Catching exceptions | |
lo_function TYPE REF TO cl_salv_functions_list. "For handling double click event | |
ENDCLASS. | |
CLASS lcl_alv_grid IMPLEMENTATION. | |
METHOD show_data. | |
FIELD-SYMBOLS : <fs_alv_tab> TYPE ANY TABLE. | |
ASSIGN me->lt_data->* TO <fs_alv_tab>. | |
TRY. | |
CALL METHOD cl_salv_table=>factory | |
IMPORTING | |
r_salv_table = lo_alv | |
CHANGING | |
t_table = <fs_alv_tab>. | |
CATCH cx_salv_msg INTO lv_msg. "#EC NO_HANDLER | |
ENDTRY. | |
lo_alv->display( ). | |
ENDMETHOD. | |
ENDCLASS. | |
CLASS lcl_alv_writer DEFINITION INHERITING FROM lcl_persistent FINAL. | |
PUBLIC SECTION. | |
METHODS : show_data REDEFINITION. | |
PROTECTED SECTION. | |
PRIVATE SECTION. | |
ENDCLASS. | |
CLASS lcl_alv_writer IMPLEMENTATION. | |
METHOD show_data. | |
FIELD-SYMBOLS : <fs_writer_tab> TYPE ANY TABLE. | |
ASSIGN me->lt_data->* TO <fs_writer_tab>. | |
LOOP AT <fs_writer_tab> ASSIGNING FIELD-SYMBOL(<fs_line>). | |
WRITE / : <fs_line>. | |
ENDLOOP. | |
ENDMETHOD. | |
ENDCLASS. | |
START-OF-SELECTION. | |
DATA(lo_grid) = NEW lcl_alv_grid( iv_table_name = 'BUT000' ). | |
lo_grid->get_data( ). | |
lo_grid->show_data( ). | |
DATA(lo_writer) = NEW lcl_alv_writer( iv_table_name = 'ADR2' ). | |
lo_grid->get_data( ). | |
lo_grid->show_data( ). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment