v1.5
This commit is contained in:
169
src/#deso#dh_hawk_me.prog.abap
Normal file
169
src/#deso#dh_hawk_me.prog.abap
Normal file
@@ -0,0 +1,169 @@
|
||||
*&---------------------------------------------------------------------*
|
||||
*& 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
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
Reference in New Issue
Block a user