170 lines
5.5 KiB
ABAP
170 lines
5.5 KiB
ABAP
*&---------------------------------------------------------------------*
|
|
*& 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(<ls_result_collect>) INDEX ls_good-row_id.
|
|
|
|
DATA: ls_result_collect TYPE /deso/dh_c_rep.
|
|
MOVE-CORRESPONDING <ls_result_collect> TO ls_result_collect.
|
|
ASSIGN COMPONENT ls_good-fieldname OF STRUCTURE ls_result_collect TO FIELD-SYMBOL(<field>).
|
|
ASSIGN COMPONENT ls_good-fieldname OF STRUCTURE <ls_result_collect> TO FIELD-SYMBOL(<field_show>).
|
|
<field_show> = <field> = 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 = <field>
|
|
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 = <field>
|
|
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(<fs_res_show>) INDEX e_row-index.
|
|
|
|
PERFORM build_fieldcat_result_detail.
|
|
REFRESH gt_result_detail.
|
|
LOOP AT gt_result ASSIGNING FIELD-SYMBOL(<fs_res>)
|
|
WHERE check_view = <fs_res_show>-check_view AND
|
|
refobject = <fs_res_show>-refobject AND
|
|
reffld = <fs_res_show>-reffld AND
|
|
msgty = <fs_res_show>-msgty AND
|
|
msgid = <fs_res_show>-msgid AND
|
|
msgno = <fs_res_show>-msgno.
|
|
APPEND INITIAL LINE TO gt_result_detail ASSIGNING FIELD-SYMBOL(<fs_det>).
|
|
MOVE-CORRESPONDING <fs_res> TO <fs_det>.
|
|
|
|
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
|
|
*&---------------------------------------------------------------------*
|
|
*&
|
|
*&---------------------------------------------------------------------*
|