Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ZCL_P2PE312_NOTIF_VIEW definition
- public
- final
- create public .
- public section.
- interfaces IF_SALV_EVENTS_ACTIONS_TABLE .
- constants:
- BEGIN OF mcs_view_mode,
- single TYPE char1 VALUE 'S',
- multiple TYPE char1 VALUE 'M',
- END OF mcs_view_mode .
- events REFRESH .
- events ACTIVATE .
- events DEACTIVATE .
- events DELETE .
- events SELECT_ALL
- exporting
- value(ET_COLUMNS) type SALV_T_COLUMN .
- events DESELECT_ALL
- exporting
- value(ET_COLUMNS) type SALV_T_COLUMN .
- methods REFRESH_ALV .
- methods CONSTRUCTOR
- importing
- !IS_SEL type ZSP2PE312_SEL
- !IV_PROGRAM type PROGRAM .
- methods SHOW_ALV
- importing
- !IT_DATA type ref to DATA
- !IV_TITLE type LVC_TITLE
- !IV_MODE type CHAR1
- !IT_NSORT_AUTHORITY type ZIP2PE312_NSORT .
- methods ON_LINK_CLICK
- for event LINK_CLICK of CL_SALV_EVENTS_TABLE
- importing
- !ROW
- !COLUMN .
- protected section.
- private section.
- data MR_ALV type ref to CL_SALV_TABLE .
- data MV_PROGRAM type PROGRAM .
- data MS_SEL type ZSP2PE312_SEL .
- constants:
- BEGIN OF mcs_user_command,
- refresh TYPE salv_de_function VALUE 'REFRESH',
- active TYPE salv_de_function VALUE 'ACTIV',
- deactive TYPE salv_de_function VALUE 'DEACTIV',
- delete TYPE salv_de_function VALUE 'DELETE',
- select_all TYPE salv_de_function VALUE 'SEL_ALL',
- deselect_all TYPE salv_de_function VALUE 'SEL_CAN',
- END OF mcs_user_command .
- methods SET_FUNCTIONAL_SETTINGS .
- methods HANDLE_USER_COMMAND
- for event IF_SALV_EVENTS_FUNCTIONS~ADDED_FUNCTION of CL_SALV_EVENTS_TABLE
- importing
- !E_SALV_FUNCTION
- !SENDER .
- methods SET_COLUMNS
- importing
- !IV_MODE type CHAR1
- !IT_NSORT_AUTHORITY type ZIP2PE312_NSORT .
- ENDCLASS.
- CLASS ZCL_P2PE312_NOTIF_VIEW IMPLEMENTATION.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_P2PE312_NOTIF_VIEW->CONSTRUCTOR
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IS_SEL TYPE ZSP2PE312_SEL
- * | [--->] IV_PROGRAM TYPE PROGRAM
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- method CONSTRUCTOR.
- mv_program = iv_program.
- ms_sel = is_sel.
- endmethod.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Private Method ZCL_P2PE312_NOTIF_VIEW->HANDLE_USER_COMMAND
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] E_SALV_FUNCTION LIKE
- * | [--->] SENDER LIKE
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD handle_user_command.
- DATA(lr_selection) = mr_alv->get_selections( ).
- DATA(lt_columns) = lr_selection->get_selected_columns( ).
- DELETE lt_columns WHERE table_line NP 'SELECT_CB_*'.
- CASE e_salv_function.
- WHEN zcl_p2pe312_notif_view=>mcs_user_command-active.
- RAISE EVENT activate.
- WHEN zcl_p2pe312_notif_view=>mcs_user_command-deactive.
- RAISE EVENT deactivate.
- WHEN zcl_p2pe312_notif_view=>mcs_user_command-delete.
- RAISE EVENT delete.
- WHEN zcl_p2pe312_notif_view=>mcs_user_command-refresh.
- RAISE EVENT refresh.
- WHEN zcl_p2pe312_notif_view=>mcs_user_command-select_all.
- RAISE EVENT select_all
- EXPORTING
- et_columns = lt_columns.
- WHEN zcl_p2pe312_notif_view=>mcs_user_command-deselect_all.
- RAISE EVENT deselect_all
- EXPORTING
- et_columns = lt_columns.
- WHEN OTHERS.
- ENDCASE.
- mr_alv->refresh(
- EXPORTING
- s_stable = VALUE lvc_s_stbl( row = abap_true
- col = abap_true )
- refresh_mode = if_salv_c_refresh=>soft
- ).
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_P2PE312_NOTIF_VIEW->ON_LINK_CLICK
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] ROW LIKE
- * | [--->] COLUMN LIKE
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- method ON_LINK_CLICK.
- RAISE EVENT if_salv_events_actions_table~link_click
- EXPORTING
- row = row
- column = column.
- mr_alv->refresh(
- EXPORTING
- s_stable = VALUE lvc_s_stbl( row = abap_true
- col = abap_true )
- ).
- endmethod.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_P2PE312_NOTIF_VIEW->REFRESH_ALV
- * +-------------------------------------------------------------------------------------------------+
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- method REFRESH_ALV.
- mr_alv->refresh(
- EXPORTING
- s_stable = VALUE #( col = abap_true
- row = abap_true )
- ).
- endmethod.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Private Method ZCL_P2PE312_NOTIF_VIEW->SET_COLUMNS
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IV_MODE TYPE CHAR1
- * | [--->] IT_NSORT_AUTHORITY TYPE ZIP2PE312_NSORT
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD set_columns.
- DATA lr_column TYPE REF TO cl_salv_column_table.
- DATA(lr_columns) = mr_alv->get_columns( ).
- lr_columns->set_optimize( if_salv_c_bool_sap=>true ).
- TRY.
- lr_column ?= lr_columns->get_column( 'BWTAR' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'BSART' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'DOC_NUM' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'DOC_POS' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'DOC_TYPE' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'DOC_NUM_SEND' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'DOC_POS_SEND' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'RLGORT' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'ZMNFO_COPY' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'ZOTFO_COPY' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- lr_column ?= lr_columns->get_column( 'WAREHOUSE_MANAG_TAB' ).
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- CATCH cx_salv_not_found. "
- ENDTRY.
- LOOP AT it_nsort_authority ASSIGNING FIELD-SYMBOL(<ls_nsort>).
- TRY.
- lr_column ?= lr_columns->get_column( |SELECT_CB_{ <ls_nsort>-nsort }| ).
- lr_column->set_cell_type( if_salv_c_cell_type=>checkbox_hotspot ).
- CATCH cx_salv_not_found. "
- ENDTRY.
- ENDLOOP.
- DATA(lt_columns) = lr_columns->get( ).
- LOOP AT lt_columns ASSIGNING FIELD-SYMBOL(<ls_column>).
- lr_column ?= <ls_column>-r_column.
- DATA(lv_length) = strlen( <ls_column>-columnname ) - 3.
- IF <ls_column>-columnname+lv_length(1) = '_'.
- lv_length = lv_length + 1.
- IF <ls_column>-columnname+lv_length(2) NOT IN ms_sel-s_nsort[].
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- ENDIF.
- DATA(lv_add_text) = <ls_column>-columnname+lv_length(2).
- lr_column->set_short_text( |{ lr_column->get_short_text( ) } { lv_add_text }| ).
- lr_column->set_medium_text( |{ lr_column->get_medium_text( ) } { lv_add_text }| ).
- lr_column->set_long_text( |{ lr_column->get_long_text( ) } { lv_add_text }| ).
- lr_column->set_optimized( if_salv_c_bool_sap=>true ).
- ENDIF.
- IF <ls_column>-columnname CP 'SELECT_CB*'.
- * lr_column->set_cell_type( if_salv_c_cell_type=>checkbox_hotspot ).
- lr_column->set_output_length( '5' ).
- ENDIF.
- IF <ls_column>-columnname CP 'EVENT_ACT*'.
- lr_column->set_icon( if_salv_c_bool_sap=>true ).
- lr_column->set_output_length( '5' ).
- ENDIF.
- IF <ls_column>-columnname CP 'NSTAT_ICON*'.
- lr_column->set_icon( if_salv_c_bool_sap=>true ).
- lr_column->set_output_length( '5' ).
- ENDIF.
- IF <ls_column>-columnname CP 'EVENT_FLAG*'.
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- * lr_column->set_specific_group( id = 'GR1' ).
- ENDIF.
- IF <ls_column>-columnname CP 'NSORT_TXT*'.
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- ENDIF.
- IF <ls_column>-columnname CP 'EVENT_DATE*'.
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- ENDIF.
- * Скрываем столбцы со статусом подписки на уведомления при запуске по нескольким пользователям
- IF iv_mode = zcl_p2pe312_notif_view=>mcs_view_mode-multiple.
- IF <ls_column>-columnname CP 'NSTAT_*'.
- lr_column->set_technical( if_salv_c_bool_sap=>true ).
- ENDIF.
- ENDIF.
- ENDLOOP.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Private Method ZCL_P2PE312_NOTIF_VIEW->SET_FUNCTIONAL_SETTINGS
- * +-------------------------------------------------------------------------------------------------+
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD set_functional_settings.
- DATA(lr_functional_settings) = mr_alv->get_functional_settings( ).
- DATA(lr_tooltips) = lr_functional_settings->get_tooltips( ).
- TRY.
- lr_tooltips->add_tooltip(
- EXPORTING
- type = cl_salv_tooltip=>c_type_icon
- value = CONV lvc_value( icon_light_out )
- tooltip = text-000
- ).
- CATCH cx_salv_existing. "
- ENDTRY.
- TRY.
- lr_tooltips->add_tooltip(
- EXPORTING
- type = cl_salv_tooltip=>c_type_icon
- value = CONV lvc_value( icon_green_light )
- tooltip = text-001
- ).
- CATCH cx_salv_existing. "
- ENDTRY.
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_P2PE312_NOTIF_VIEW->SHOW_ALV
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IT_DATA TYPE REF TO DATA
- * | [--->] IV_TITLE TYPE LVC_TITLE
- * | [--->] IV_MODE TYPE CHAR1
- * | [--->] IT_NSORT_AUTHORITY TYPE ZIP2PE312_NSORT
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD show_alv.
- DATA: ls_key TYPE salv_s_layout_key.
- ASSIGN it_data->* TO FIELD-SYMBOL(<lt_data>).
- CHECK <lt_data> IS ASSIGNED.
- IF mr_alv IS NOT BOUND.
- TRY.
- cl_salv_table=>factory(
- IMPORTING
- r_salv_table = mr_alv
- CHANGING
- t_table = <lt_data>
- ).
- set_functional_settings( ).
- set_columns(
- EXPORTING
- iv_mode = iv_mode
- it_nsort_authority = it_nsort_authority
- ).
- DATA(lr_display_settings) = mr_alv->get_display_settings( ).
- lr_display_settings->set_striped_pattern( abap_true ) .
- lr_display_settings->set_list_header( iv_title ).
- DATA(lr_functions) = mr_alv->get_functions( ).
- lr_functions->set_all( abap_true ).
- DATA(lr_selections) = mr_alv->get_selections( ).
- lr_selections->set_selection_mode(
- value = if_salv_c_selection_mode=>row_column
- ).
- DATA(lr_layout) = mr_alv->get_layout( ).
- ls_key-report = mv_program.
- lr_layout->set_key( ls_key ).
- lr_layout->set_default( if_salv_c_bool_sap=>true ).
- lr_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
- mr_alv->set_screen_status(
- EXPORTING
- report = me->mv_program
- pfstatus = 'SALV_TABLE_STANDARD'
- set_functions = mr_alv->c_functions_all
- ).
- DATA(lr_events) = mr_alv->get_event( ).
- SET HANDLER me->handle_user_command FOR lr_events.
- SET HANDLER me->on_link_click FOR lr_events.
- CATCH cx_salv_msg INTO DATA(lr_salv_msg).
- DATA(lv_message) = CONV string( lr_salv_msg->get_text( ) ).
- MESSAGE lv_message TYPE 'I'.
- RETURN.
- ENDTRY.
- ENDIF.
- mr_alv->refresh( ).
- mr_alv->display( ).
- ENDMETHOD.
- ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement