- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ include ZXXXXXXX_CLS.
- CLASS zMAIN_msg DEFINITION.
- PUBLIC SECTION.
- TYPES: BEGIN OF ty_msg,
- text TYPE char100sm,
- msgid TYPE symsgid,
- msgty TYPE symsgty,
- msgno TYPE symsgno,
- msgv1 TYPE symsgv,
- msgv2 TYPE symsgv,
- msgv3 TYPE symsgv,
- msgv4 TYPE symsgv,
- END OF ty_msg.
- DATA: t_msg TYPE STANDARD TABLE OF ty_msg.
- METHODS: msg_add_sys IMPORTING iv_msgid TYPE symsgid
- iv_msgno TYPE symsgno
- iv_msgty TYPE symsgty
- iv_msgv1 TYPE symsgv OPTIONAL
- iv_msgv2 TYPE symsgv OPTIONAL
- iv_msgv3 TYPE symsgv OPTIONAL
- iv_msgv4 TYPE symsgv OPTIONAL,
- msg_add_txt IMPORTING iv_text TYPE string
- iv_msgty TYPE symsgty,
- msg_display IMPORTING iv_popup TYPE boolean,
- msg_refresh,
- msg_check_error RETURNING value(rv_result) TYPE boolean.
- ENDCLASS. "ZCL_MSG DEFINITION
- CLASS ZMAIN_msg IMPLEMENTATION.
- METHOD msg_check_error.
- DATA: l_msg TYPE ty_msg.
- READ TABLE t_msg WITH KEY msgty = 'E' TRANSPORTING NO FIELDS.
- IF sy-subrc = 0.
- rv_result = 'X'.
- ELSE.
- rv_result = ' '.
- ENDIF.
- ENDMETHOD. "msg_check_error
- METHOD msg_refresh.
- REFRESH t_msg.
- ENDMETHOD. "msg_refresh
- METHOD msg_display.
- TYPE-POOLS esp1.
- DATA: lt_message_tab TYPE esp1_message_tab_type,
- ls_message_tab TYPE LINE OF esp1_message_tab_type,
- l_msg TYPE ty_msg,
- l_lineno TYPE mesg-zeile.
- CHECK t_msg[] IS NOT INITIAL.
- l_lineno = LINES( t_msg ).
- IF iv_popup = 'X' OR l_lineno > 1.
- LOOP AT t_msg INTO l_msg.
- IF l_msg-msgid IS INITIAL.
- *--[ Si es sólo texto lo maquillamos
- l_msg-msgid = '00'.
- l_msg-msgno = '398'.
- ENDIF.
- MOVE-CORRESPONDING l_msg TO ls_message_tab.
- l_lineno = l_lineno + 1.
- ls_message_tab-lineno = l_lineno.
- INSERT ls_message_tab INTO TABLE lt_message_tab.
- ENDLOOP.
- CALL FUNCTION 'C14Z_MESSAGES_SHOW_AS_POPUP'
- TABLES
- i_message_tab = lt_message_tab.
- ELSEIF iv_popup IS INITIAL OR l_lineno = 1.
- READ TABLE t_msg INTO l_msg INDEX 1.
- IF l_msg-msgid IS INITIAL.
- *--[ Si es sólo texto lo maquillamos
- l_msg-msgid = '00'.
- l_msg-msgno = '398'.
- ENDIF.
- MESSAGE ID l_msg-msgid TYPE l_msg-msgty NUMBER l_msg-msgno WITH l_msg-msgv1 l_msg-msgv2 l_msg-msgv3 l_msg-msgv4.
- ENDIF.
- ENDMETHOD. "msg_display
- METHOD msg_add_txt.
- *--[ Sólo metemos texto sin importar código
- DATA: l_msg TYPE ty_msg,
- l_string TYPE string.
- l_msg-msgv1 = l_string = l_msg-text = iv_text.
- l_msg-msgty = iv_msgty.
- SHIFT l_string LEFT BY 50 PLACES.
- l_msg-msgv2 = l_string.
- INSERT l_msg INTO TABLE t_msg.
- ENDMETHOD. "msg_add_txt
- METHOD msg_add_sys.
- *--[ Metemos todo el mensaje completo
- DATA: l_msg TYPE ty_msg.
- l_msg-msgid = iv_msgid .
- l_msg-msgno = iv_msgno .
- l_msg-msgty = iv_msgty .
- l_msg-msgv1 = iv_msgv1 .
- l_msg-msgv2 = iv_msgv2 .
- l_msg-msgv3 = iv_msgv3 .
- l_msg-msgv4 = iv_msgv4 .
- MESSAGE ID iv_msgid TYPE l_msg-msgty
- NUMBER l_msg-msgno
- INTO l_msg-text
- WITH l_msg-msgv1
- l_msg-msgv2.
- INSERT l_msg INTO TABLE t_msg.
- ENDMETHOD. "MSG_ADD
- ENDCLASS.
- CLASS zmain_alv_fast DEFINITION.
- PUBLIC SECTION.
- CLASS-METHODS:
- alv_paint IMPORTING iV_popup TYPE any
- CHANGING it_tab TYPE ANY TABLE.
- ENDCLASS.
- CLASS zmain_alv_fast IMPLEMENTATION.
- METHOD alv_paint.
- DATA go_alv TYPE REF TO cl_salv_table.
- TRY.
- cl_salv_table=>factory(
- IMPORTING
- r_salv_table = go_alv
- CHANGING
- t_table = it_tab[] ).
- CATCH cx_salv_msg.
- ENDTRY.
- * DATA: lr_functions TYPE REF TO cl_salv_functions_list.
- DATA(lr_functions) = go_alv->get_functions( ).
- lr_functions->set_all( 'X' ).
- DATA(ob_salv_selections) = go_alv->get_selections( ).
- ob_salv_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
- go_alv->get_columns( )->set_optimize( ).
- * DATA(lr_column) = go_alv->get_columns( )->get_column( columnname = 'FLG' ).
- * lr_column->set_visible( value = if_salv_c_bool_sap=>false ).
- * lr_column = go_alv->get_columns( )->get_column( columnname = 'ORDENADOR_P' ).
- * lr_column->set_visible( value = if_salv_c_bool_sap=>false ).
- DATA(gr_display) = go_alv->get_display_settings( ).
- * gr_display->set_list_header( 'Seleccione firmantes' ).
- IF NOT iV_popup IS INITIAL.
- go_alv->set_screen_popup(
- start_column = 5
- end_column = 90
- start_line = 5
- end_line = 25 ).
- ENDIF.
- go_alv->display( ).
- ENDMETHOD.
- ENDCLASS.
- CLASS zmain_report DEFINITION.
- PUBLIC SECTION.
- CLASS-METHODS:
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Estructurales
- eve_initialization,
- eve_start_of_selection,
- eve_end_of_selection,
- eve_selection_screen_out,
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Operacionales
- data_load,
- data_list,
- data_save.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- PRIVATE SECTION.
- CLASS-DATA:
- my_sy TYPE syst,
- g_error TYPE sy-subrc, "<-- Control de errores
- g_alv_fast TYPE REF TO zmain_alv_fast,
- G_MSG type REF TO ZMAIN_MSG.
- ENDCLASS.
- CLASS zmain_report IMPLEMENTATION.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Operacionales
- METHOD data_load.
- ENDMETHOD.
- METHOD data_list.
- ENDMETHOD.
- METHOD data_save.
- ENDMETHOD.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Estructurales
- METHOD eve_end_of_selection.
- ENDMETHOD.
- METHOD eve_start_of_selection.
- ENDMETHOD.
- METHOD eve_selection_screen_out.
- ENDMETHOD.
- METHOD eve_initialization.
- MOVE-CORRESPONDING syst TO my_sy.
- CREATE OBJECT g_alv_fast.
- create object G_MSG.
- ENDMETHOD.
- ENDCLASS.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ include ZXXXXXXX_TOP.
- DATA: g_main TYPE REF TO zmain_report.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ include ZXXXXXXX_EVE.
- INITIALIZATION.
- CREATE OBJECT g_main.
- g_main->eve_initialization( ).
- AT SELECTION-SCREEN OUTPUT.
- g_main->eve_selection_screen_out( ).
- START-OF-SELECTION.
- g_main->eve_start_of_selection( ).
- END-OF-SELECTION.
- g_main->eve_end_of_selection( ).
Última modificación de la página el 21 January 2022 a las 07h46
Powered by
PmWiki