*&---------------------------------------------------------------------* *& Include /DESO/DH_HAWK_M *&---------------------------------------------------------------------* CLASS lcl_application DEFINITION. PUBLIC SECTION. METHODS: alv_handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING er_data_changed e_onf4 e_onf4_before e_onf4_after e_ucomm. ENDCLASS. "LCL_APPLICATION DEFINITION *----------------------------------------------------------------------* * CLASS LCL_APPLICATION IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_application IMPLEMENTATION. METHOD alv_handle_data_changed. DATA: ls_good TYPE lvc_s_modi. LOOP AT er_data_changed->mt_good_cells INTO ls_good. **** Dazu auf die richtige Zeile in der ITAB positionieren: READ TABLE gt_result_show ASSIGNING FIELD-SYMBOL() INDEX ls_good-row_id. DATA: ls_result_collect TYPE /deso/dh_c_rep. MOVE-CORRESPONDING TO ls_result_collect. ASSIGN COMPONENT ls_good-fieldname OF STRUCTURE ls_result_collect TO FIELD-SYMBOL(). ASSIGN COMPONENT ls_good-fieldname OF STRUCTURE TO FIELD-SYMBOL(). = = ls_good-value. UPDATE /deso/dh_c_rep FROM ls_result_collect. CASE ls_good-fieldname. WHEN 'REP_CLASS'. UPDATE /deso/dh_message SET rep_class = WHERE check_view = ls_result_collect-check_view AND object = ls_result_collect-object AND msgty = ls_result_collect-msgty AND msgid = ls_result_collect-msgid AND msgno = ls_result_collect-msgno. WHEN 'REP_METHODE'. UPDATE /deso/dh_message SET rep_methode = WHERE check_view = ls_result_collect-check_view AND object = ls_result_collect-object AND msgty = ls_result_collect-msgty AND msgid = ls_result_collect-msgid AND msgno = ls_result_collect-msgno. ENDCASE. MESSAGE s000(em) WITH 'Daten gesichert'. ENDLOOP. IF sy-subrc <> 0. MESSAGE s000(em) WITH 'Keine veränderten Daten'. ENDIF. ENDMETHOD. ENDCLASS. "LCL_APPLICATION IMPLEMENTATION CLASS handle DEFINITION. PUBLIC SECTION. CLASS-METHODS : handle_double_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row. CLASS-METHODS : handle_close FOR EVENT close OF cl_gui_dialogbox_container IMPORTING sender. CLASS-METHODS : on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object. CLASS-METHODS : on_user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING e_ucomm. ENDCLASS. CLASS handle IMPLEMENTATION. METHOD handle_double_click. READ TABLE gt_result_show ASSIGNING FIELD-SYMBOL() INDEX e_row-index. PERFORM build_fieldcat_result_detail. REFRESH gt_result_detail. LOOP AT gt_result ASSIGNING FIELD-SYMBOL() WHERE check_view = -check_view AND refobject = -refobject AND reffld = -reffld AND msgty = -msgty AND msgid = -msgid AND msgno = -msgno. APPEND INITIAL LINE TO gt_result_detail ASSIGNING FIELD-SYMBOL(). MOVE-CORRESPONDING TO . ENDLOOP. CREATE OBJECT o_dial EXPORTING width = 1450 height = 400 top = 50 left = 200 caption = 'Details'. SET HANDLER handle=>handle_close FOR o_dial. CREATE OBJECT o_alv2 EXPORTING i_parent = o_dial. CALL METHOD o_alv2->set_table_for_first_display CHANGING it_outtab = gt_result_detail it_fieldcatalog = gt_fieldcat_detail. CALL METHOD o_alv2->refresh_table_display. REFRESH gt_fieldcat_detail. ENDMETHOD. METHOD handle_close. CALL METHOD sender->set_visible EXPORTING visible = space. ENDMETHOD. METHOD on_toolbar. DATA btn TYPE stb_button. CASE alv_ok_code. WHEN 'include'. btn-function = 'exclude'. btn-icon = icon_pdir_foreward_switch. WHEN 'exclude'. CLEAR e_object->mt_toolbar. btn-function = 'include'. btn-icon = icon_pdir_back_switch. ENDCASE. INSERT btn INTO TABLE e_object->mt_toolbar. ENDMETHOD. METHOD on_user_command. CASE e_ucomm. WHEN 'include' OR 'exclude'. alv_ok_code = e_ucomm. CALL METHOD o_alv1->set_toolbar_interactive. ENDCASE. ENDMETHOD. ENDCLASS. *&---------------------------------------------------------------------* *& Module FILL_VARIANT OUTPUT *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------*