class clsEventReceiver definition.
public section.
methods: after_refresh for event after_refresh of cl_gui_alv_grid.
methods: after_user_command for event after_user_command of cl_gui_alv_grid importing e_ucomm
e_not_processed.
methods: before_user_command for event before_user_command of cl_gui_alv_grid importing e_ucomm.
methods: button_click for event button_click of cl_gui_alv_grid importing es_col_id
es_row_no.
methods: context_menu_request for event context_menu_request of cl_gui_alv_grid importing e_object.
methods: 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.
methods: data_changed_finished for event data_changed_finished of cl_gui_alv_grid importing e_modified
et_good_cells.
methods: delayed_callback for event delayed_callback of cl_gui_alv_grid.
methods: delayed_changed_sel_callback for event delayed_changed_sel_callback of cl_gui_alv_grid.
methods: double_click for event double_click of cl_gui_alv_grid importing e_row
e_column
es_row_no
sender.
methods: end_of_list for event end_of_list of cl_gui_alv_grid importing e_dyndoc_id.
methods: hotspot_click for event hotspot_click of cl_gui_alv_grid importing e_row_id
e_column_id
es_row_no
sender.
methods: menu_button for event menu_button of cl_gui_alv_grid importing e_object
e_ucomm.
methods: ondrag for event ondrag of cl_gui_alv_grid importing e_row
e_column
es_row_no
e_dragdropobj.
methods: ondrop for event ondrop of cl_gui_alv_grid importing e_row
e_column
es_row_no
e_dragdropobj.
methods: ondropcomplete for event ondropcomplete of cl_gui_alv_grid importing e_row
e_column
es_row_no
e_dragdropobj.
methods: ondropgetflavor for event ondropgetflavor of cl_gui_alv_grid importing e_row
e_column
es_row_no
e_dragdropobj
e_flavors.
methods: onf1 for event onf1 of cl_gui_alv_grid importing e_fieldname
es_row_no
er_event_data.
methods: onf4 for event onf4 of cl_gui_alv_grid importing e_fieldname
e_fieldvalue
es_row_no
er_event_data
et_bad_cells
e_display.
methods: print_end_of_list for event print_end_of_list of cl_gui_alv_grid.
methods: print_end_of_page for event print_end_of_page of cl_gui_alv_grid.
methods: print_top_of_list for event print_top_of_list of cl_gui_alv_grid.
methods: print_top_of_page for event print_top_of_page of cl_gui_alv_grid.
methods: subtotal_text for event subtotal_text of cl_gui_alv_grid importing es_subtottxt_info
ep_subtot_line
e_event_data.
methods: toolbar for event toolbar of cl_gui_alv_grid importing e_object
e_interactive.
methods: top_of_page for event top_of_page of cl_gui_alv_grid importing e_dyndoc_id.
methods: user_command for event user_command of cl_gui_alv_grid importing e_ucomm.
private section.
constants: MC_FC_ALL type ui_func value '&ALLMESS',
MC_FC_ERR type ui_func value '&ERRMESS',
MC_FC_WAR type ui_func value '&WARMESS'.
endclass.
class clsEventReceiver implementation.
"---------------------------------------------------------------------------------------------------------------------
" after_refresh... After List Refresh
"---------------------------------------------------------------------------------------------------------------------
method after_refresh.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" after_user_command... After User Command
"---------------------------------------------------------------------------------------------------------------------
method after_user_command.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" before_user_command... Before User Command
"---------------------------------------------------------------------------------------------------------------------
method before_user_command.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" button_click... Button Click
"---------------------------------------------------------------------------------------------------------------------
method button_click.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" context_menu_request... Context Menu
"---------------------------------------------------------------------------------------------------------------------
method context_menu_request.
e_object->add_function( fCode = MC_FC_ERR text = text-010 ).
e_object->add_function( fCode = MC_FC_WAR text = text-011 ).
e_object->add_function( fCode = MC_FC_ALL text = text-003 ).
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" data_changed... Data was Changed
"---------------------------------------------------------------------------------------------------------------------
method data_changed.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" data_changed_finished... Data in the Output Table was Updated
"---------------------------------------------------------------------------------------------------------------------
method data_changed_finished.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" delayed_callback... Delayed Callback
"---------------------------------------------------------------------------------------------------------------------
method delayed_callback.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" delayed_changed_sel_callback... DELAYED_CHANGED_SEL_CALLBACK
"---------------------------------------------------------------------------------------------------------------------
method delayed_changed_sel_callback.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" double_click... DoubleClick
"---------------------------------------------------------------------------------------------------------------------
method double_click.
data: rowId type lvc_t_roid.
data: rowIndex type lvc_t_row.
data: waMessage like line of iMessages.
data: waRow type lvc_s_roid.
if sender = objAlvGridMessages.
objAlvGridMessages->get_selected_rows( importing et_index_rows = rowIndex et_row_no = rowId ).
read table rowId index 1 into waRow.
read table iAlvMessages index waRow-row_id into waMessage.
if waMessage-alvStatus <> 3.
if sy-subrc = 0.
CALL FUNCTION 'RS_TOOL_ACCESS'
EXPORTING
OPERATION = 'SHOW'
OBJECT_NAME = waMessage-incName
OBJECT_TYPE = 'PROG'
POSITION = waMessage-line
EXCEPTIONS
NOT_EXECUTED = 1
INVALID_OBJECT_TYPE = 2
OTHERS = 3.
endif.
endif.
endif.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" end_of_list... End_of_list
"---------------------------------------------------------------------------------------------------------------------
method end_of_list.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" hotspot_click... Hotspot was Selected
"---------------------------------------------------------------------------------------------------------------------
method hotspot_click.
data: waProgramDetail type zdts_programDetails.
data: waMessage type zdts_syntaxMessage.
data: waFuncDetail like line of iFuncDetails.
data: waClassDetail like line of iClassDetails.
data: progName type programm.
data: objName type sobj_name.
case 'X'.
when rbProg.
read table iProgramDetails into waProgramDetail index e_row_id-index.
case e_column_id.
when 'EDITICON'.
set parameter id 'RID' field waProgramDetail-programName.
call transaction 'SE38'.
when 'PROGRAMNAME'.
clear iAlvMessages[].
loop at iMessages into waMessage where intProgName = waProgramDetail-programName.
append waMessage to iAlvMessages.
endloop.
if not iMessages[] is initial.
perform displayMessages using iAlvMessages[]
iMessFieldCatalogue[]
objMessEventReceiver.
endif.
endcase.
when rbFunc.
read table iFuncDetails into waFuncDetail index e_row_id-index.
objName = waFuncDetail-funcName.
call function 'RS_TADIR_TO_PROGNAME' exporting object = 'FUGR'
obj_name = objName
importing progname = progname.
clear iAlvMessages[].
loop at iMessages into waMessage where intProgName = progname.
append waMessage to iAlvMessages.
endloop.
if not iMessages[] is initial.
perform displayMessages using iAlvMessages[]
iMessFieldCatalogue[]
objMessEventReceiver.
endif.
when rbClass.
read table iClassDetails into waClassDetail index e_row_id-index.
objName = waClassDetail-className.
call function 'RS_TADIR_TO_PROGNAME' exporting object = 'CLAS'
obj_name = objName
importing progname = progname.
clear iAlvMessages[].
loop at iMessages into waMessage where intProgName = progname.
append waMessage to iAlvMessages.
endloop.
if not iMessages[] is initial.
perform displayMessages using iAlvMessages[]
iMessFieldCatalogue[]
objMessEventReceiver.
endif.
endcase.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" menu_button... Menu Button
"---------------------------------------------------------------------------------------------------------------------
method menu_button.
e_object->add_function( fCode = MC_FC_ERR text = text-010 ).
e_object->add_function( fCode = MC_FC_WAR text = text-011 ).
e_object->add_function( fCode = MC_FC_ALL text = text-003 ).
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" ondrag... For Drag Source
"---------------------------------------------------------------------------------------------------------------------
method ondrag.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" ondrop... For Drop Target
"---------------------------------------------------------------------------------------------------------------------
method ondrop.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" ondropcomplete... For Drag Source in Case of Success
"---------------------------------------------------------------------------------------------------------------------
method ondropcomplete.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" ondropgetflavor... Multiple Flavors Possible at a Drop
"---------------------------------------------------------------------------------------------------------------------
method ondropgetflavor.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" onf1... On Help Request
"---------------------------------------------------------------------------------------------------------------------
method onf1.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" onf4... On Value Request
"---------------------------------------------------------------------------------------------------------------------
method onf4.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" print_end_of_list... Print Mode: END_OF_LIST of Classic ALV
"---------------------------------------------------------------------------------------------------------------------
method print_end_of_list.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" print_end_of_page... Print Mode: END_OF_PAGE in List Processing
"---------------------------------------------------------------------------------------------------------------------
method print_end_of_page.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" print_top_of_list... Print Mode: TOP_OF_LIST of Classic ALV
"---------------------------------------------------------------------------------------------------------------------
method print_top_of_list.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" print_top_of_page... Print Mode: TOP_OF_PAGE in List Processing
"---------------------------------------------------------------------------------------------------------------------
method print_top_of_page.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" subtotal_text... Edit Subtotals Text
"---------------------------------------------------------------------------------------------------------------------
method subtotal_text.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" toolbar... Toolbar
"---------------------------------------------------------------------------------------------------------------------
method toolbar.
constants:
BUTTON_NORMAL type i value 0,
MENU_AND_DEFAULT_BUTTON type i value 1,
MENU type i value 2,
SEPARATOR type i value 3,
RADIOBUTTON type i value 4,
CHECKBOX type i value 5,
MENU_ENTRY type i value 6.
data: alvToolbar type stb_button.
clear alvToolbar.
alvToolbar-butn_type = SEPARATOR.
append alvToolbar to e_object->mt_toolbar.
clear alvToolbar.
alvToolbar-butn_type = MENU_AND_DEFAULT_BUTTON.
alvToolbar-function = MC_FC_ALL.
alvToolbar-quickinfo = text-002.
alvToolbar-icon = icon_detail.
append alvToolbar to e_object->mt_toolbar.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" top_of_page... Top_of_page
"---------------------------------------------------------------------------------------------------------------------
method top_of_page.
endmethod.
"---------------------------------------------------------------------------------------------------------------------
" user_command... User Command
"---------------------------------------------------------------------------------------------------------------------
method user_command.
data: waMessage type zdts_syntaxMessage.
case e_ucomm.
when MC_FC_ALL.
iAlvMessages[] = iMessages[].
perform displayMessages using iAlvMessages[]
iMessFieldCatalogue[]
objMessEventReceiver.
when MC_FC_ERR.
clear iAlvMessages[].
loop at iMessages into waMessage where messageType = 'E'.
append waMessage to iAlvMessages.
endloop.
perform displayMessages using iAlvMessages[]
iMessFieldCatalogue[]
objMessEventReceiver. .
when MC_FC_WAR.
clear iAlvMessages[].
loop at iMessages into waMessage where messageType = 'W'.
append waMessage to iAlvMessages.
endloop.
perform displayMessages using iAlvMessages[]
iMessFieldCatalogue[]
objMessEventReceiver. .
endcase.
endmethod.
endclass.
|