Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- REPORT
- FIELD-SYMBOLS:
- CLASS
- PUBLIC SECTION.
- CLASS-DATA:
- go_alv_tree TYPE REF TO cl_salv_tree,
- gt_empty_tab TYPE STANDARD TABLE OF spfli,
- gt_full_tab TYPE STANDARD TABLE OF spfli.
- CLASS-METHODS:
- create_tree, " Создаем и настраиваем объект ALV
- get_data, " Получение данных из БД
- create_nodes, " Заполнение дерева данными (создание иерархии)
- show_tree. " Отображение (обновление) ALV дерева
- ENDCLASS.
- START-OF-SELECTION.
- lcl_report=>get_data( ).
- lcl_report=>create_tree( ).
- lcl_report=>create_nodes( ).
- lcl_report=>show_tree( ).
- CLASS lcl_report IMPLEMENTATION.
- METHOD show_tree.
- go_alv_tree->display( ).
- ENDMETHOD.
- METHOD create_nodes.
- DATA:
- lo_nodes TYPE REF TO cl_salv_nodes,
- lo_node TYPE REF TO cl_salv_node.
- " Получаем ссылку на экземпляр класса упрвления узлами дерева
- lo_nodes = go_alv_tree->get_nodes( ).
- SORT gt_full_tab BY carrid.
- " Заполняем дерево
- LOOP AT gt_full_tab ASSIGNING <fs_line>.
- TRY.
- lo_node = lo_nodes->add_node( related_node = ''
- relationship = cl_gui_column_tree=>relat_first_child
- ).
- " Присвоение узлу данных
- lo_node->set_data_row( <fs_line> ).
- CATCH cx_salv_msg.
- ENDTRY.
- ENDLOOP.
- ENDMETHOD.
- METHOD get_data.
- SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_full_tab.
- ENDMETHOD.
- METHOD create_tree.
- TRY.
- cl_salv_tree=>factory(
- IMPORTING
- r_salv_tree = go_alv_tree
- CHANGING
- t_table = gt_empty_tab ).
- CATCH cx_salv_error.
- MESSAGE 'Ошибка при создании объекта ALV' TYPE 'E'.
- ENDTRY.
- ENDMETHOD.
- ENDCLASS.
Add Comment
Please, Sign In to add comment