Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *----------------------------------------------------------------------*
- * CLASS lcl_alv DEFINITION
- *----------------------------------------------------------------------*
- *
- *----------------------------------------------------------------------*
- CLASS lcl_alv DEFINITION.
- PUBLIC SECTION.
- METHODS: constructor IMPORTING ir_action TYPE REF TO lcl_action,
- show.
- PRIVATE SECTION.
- DATA: mt_data TYPE REF TO data,
- mr_tabledescr TYPE REF TO cl_abap_tabledescr,
- mr_action TYPE REF TO lcl_action,
- mr_table TYPE REF TO cl_salv_table,
- mr_functions TYPE REF TO cl_salv_functions,
- mr_sorts TYPE REF TO cl_salv_sorts,
- mr_display TYPE REF TO cl_salv_display_settings,
- mr_layout TYPE REF TO cl_salv_layout,
- mr_columns TYPE REF TO cl_salv_columns_table,
- mr_events TYPE REF TO cl_salv_events_table,
- mr_selections TYPE REF TO cl_salv_selections.
- METHODS: set_column_text IMPORTING i_colname TYPE lvc_fname
- i_stext TYPE any
- i_mtext TYPE any OPTIONAL
- i_ltext TYPE any OPTIONAL
- ,
- handle_button_click FOR EVENT added_function OF cl_salv_events
- IMPORTING e_salv_function,
- handle_doubleclick FOR EVENT double_click OF cl_salv_events_table
- IMPORTING row column,
- call_as03 IMPORTING is_data TYPE any,
- call_miro IMPORTING is_data TYPE any,
- call_me23n IMPORTING is_data TYPE any,
- bdc_field IMPORTING fnam TYPE any
- fval TYPE any
- CHANGING t_bdcdata TYPE bdcdata_tab,
- bdc_dynpro IMPORTING program TYPE any
- dynpro TYPE any
- CHANGING t_bdcdata TYPE bdcdata_tab.
- ENDCLASS. "lcl_alv DEFINITION
- *----------------------------------------------------------------------*
- * CLASS lcl_alv IMPLEMENTATION
- *----------------------------------------------------------------------*
- *
- *----------------------------------------------------------------------*
- CLASS lcl_alv IMPLEMENTATION.
- METHOD constructor.
- DATA: key TYPE salv_s_layout_key,
- lr_column TYPE REF TO cl_salv_column_table.
- DATA: lv_msg TYPE string,
- lo_salv_msg TYPE REF TO cx_salv_msg.
- FIELD-SYMBOLS <data> TYPE table.
- mr_action = ir_action.
- mr_tabledescr = mr_action->get_table_type( ).
- CREATE DATA mt_data TYPE HANDLE mr_tabledescr.
- ASSIGN mt_data->* TO <data>.
- mr_action->get_data( IMPORTING et_data = <data> ).
- TRY.
- cl_salv_table=>factory( IMPORTING r_salv_table = mr_table
- CHANGING t_table = <data> ).
- mr_functions = mr_table->get_functions( ).
- mr_functions->set_all( abap_true ).
- mr_columns = mr_table->get_columns( ).
- mr_columns->set_optimize( abap_true ).
- * CALL METHOD mr_columns->set_color_column
- * EXPORTING
- * value = 'STYLE'.
- * lr_column ?= mr_columns->get_column( 'GRPID' ).
- * lr_column->set_technical( abap_true ).
- * lr_column->set_key( abap_true ).
- * lr_column ?= mr_columns->get_column( 'STATUS' ).
- * lr_column->set_icon( abap_true ).
- IF p_showos IS INITIAL.
- DATA: lr_struc_descr TYPE REF TO cl_abap_structdescr,
- lt_comp TYPE cl_abap_structdescr=>component_table,
- ls_comp TYPE LINE OF cl_abap_structdescr=>component_table,
- lv_fnam TYPE lvc_fname.
- lr_struc_descr ?= cl_abap_structdescr=>describe_by_name( 'ZFIAA_MOVE_VNA_OS_DATA_S' ).
- lt_comp = lr_struc_descr->get_components( ).
- LOOP AT lt_comp INTO ls_comp.
- lv_fnam = ls_comp-name.
- TRY .
- lr_column ?= mr_columns->get_column( lv_fnam ).
- lr_column->set_visible( if_salv_c_bool_sap=>false ).
- CATCH cx_salv_not_found.
- ENDTRY.
- ENDLOOP.
- ENDIF.
- * set_column_text( i_colname = 'GLO_RUS_PRT_PRVG' i_stext = 'КодСокрИмщ'(s19) i_mtext = 'СокращНалогНаИмущ-во'(m19) i_ltext = 'Сокращение налога на имущество'(l19) ).
- mr_display = mr_table->get_display_settings( ).
- mr_display->set_striped_pattern( cl_salv_display_settings=>true ).
- mr_display->set_list_header( text-h00 ).
- mr_layout = mr_table->get_layout( ).
- key-report = sy-repid.
- mr_layout->set_key( key ).
- mr_layout->set_save_restriction( cl_salv_layout=>restrict_none ).
- mr_layout->set_default( cl_salv_layout=>true ).
- * mr_table->set_screen_status(
- * pfstatus = 'SALV'
- * report = sy-repid
- * set_functions = mr_table->c_functions_default ).
- mr_events = mr_table->get_event( ).
- SET HANDLER me->handle_button_click FOR mr_events.
- SET HANDLER me->handle_doubleclick FOR mr_events.
- mr_selections = mr_table->get_selections( ).
- mr_selections->set_selection_mode( ).
- mr_sorts ?= mr_table->get_sorts( ).
- * mr_sorts->add_sort( columnname = 'GRPID' obligatory = abap_true ).
- CATCH cx_salv_msg INTO lo_salv_msg.
- lv_msg = lo_salv_msg->get_text( ).
- MESSAGE lv_msg TYPE 'E'.
- ENDTRY.
- ENDMETHOD. "constructor
- METHOD show.
- mr_table->display( ).
- ENDMETHOD. "show
- METHOD handle_button_click.
- CASE e_salv_function.
- WHEN 'ZCOPY'.
- * WHEN 'ZLOG'.
- * DATA lv_hnd TYPE balloghndl.
- * DATA lt_hnd TYPE bal_t_logh.
- * lv_hnd = mr_data->get_log_handle( ).
- * APPEND lv_hnd TO lt_hnd.
- * CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
- * EXPORTING
- * i_t_log_handle = lt_hnd.
- WHEN OTHERS.
- ENDCASE.
- ENDMETHOD. "handle_button_click
- METHOD handle_doubleclick.
- FIELD-SYMBOLS: <table> TYPE table,
- <out> TYPE ANY,
- <details> TYPE ANY.
- DATA: ls_details TYPE REF TO data.
- ASSIGN mt_data->* TO <table>.
- READ TABLE <table> ASSIGNING <out> INDEX row.
- mr_action->get_details( EXPORTING is_out = <out>
- IMPORTING es_details_ref = ls_details ).
- ASSIGN ls_details->* TO <details>.
- CASE column.
- WHEN 'ANLN1'.
- call_as03( <details> ).
- WHEN 'ORDER'.
- call_me23n( <details> ).
- WHEN 'M_SGTXT'.
- call_miro( <details> ).
- WHEN OTHERS.
- ENDCASE.
- ENDMETHOD. "handle_doubleclick
- METHOD call_as03.
- TYPES: BEGIN OF ty_as03_data,
- bukrs TYPE bukrs,
- anln1 TYPE anln1,
- END OF ty_as03_data.
- DATA ls_as03_data TYPE ty_as03_data.
- MOVE-CORRESPONDING is_data TO ls_as03_data.
- SET PARAMETER ID: 'AN1' FIELD ls_as03_data-anln1,
- 'BUK' FIELD ls_as03_data-bukrs.
- CALL TRANSACTION 'AS03' AND SKIP FIRST SCREEN.
- ENDMETHOD. "call_as03
- METHOD call_miro.
- TYPES: BEGIN OF ty_miro_data,
- belnr TYPE rbkp-belnr,
- gjahr TYPE rbkp-gjahr,
- END OF ty_miro_data.
- DATA ls_miro_data TYPE ty_miro_data.
- MOVE-CORRESPONDING is_data TO ls_miro_data.
- SET PARAMETER ID: 'RBN' FIELD ls_miro_data-belnr,
- 'GJR' FIELD ls_miro_data-gjahr.
- CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
- ENDMETHOD. "call_miro
- METHOD call_me23n.
- TYPES: BEGIN OF ty_me23n_data,
- ebeln TYPE ebeln,
- END OF ty_me23n_data.
- DATA: ls_me23n_data TYPE ty_me23n_data.
- DATA: lt_bdcdata TYPE bdcdata_tab,
- ctu_params TYPE ctu_params.
- MOVE-CORRESPONDING is_data TO ls_me23n_data.
- ctu_params-dismode = 'E'.
- ctu_params-defsize = ' '.
- ctu_params-updmode = 'L'.
- CLEAR lt_bdcdata.
- bdc_dynpro( EXPORTING program = 'SAPLMEGUI' dynpro = '0014' CHANGING t_bdcdata = lt_bdcdata ).
- bdc_field( EXPORTING fnam = 'BDC_OKCODE' fval = '=MECHOB' CHANGING t_bdcdata = lt_bdcdata ).
- bdc_dynpro( EXPORTING program = 'SAPLMEGUI' dynpro = '0002' CHANGING t_bdcdata = lt_bdcdata ).
- bdc_field( EXPORTING fnam = 'MEPO_SELECT-EBELN' fval = ls_me23n_data-ebeln CHANGING t_bdcdata = lt_bdcdata ).
- bdc_field( EXPORTING fnam = 'BDC_OKCODE' fval = '=MEOK' CHANGING t_bdcdata = lt_bdcdata ).
- CALL TRANSACTION 'ME23N' USING lt_bdcdata OPTIONS FROM ctu_params.
- ENDMETHOD. "call_me23n
- METHOD bdc_field.
- DATA: wa_bdcdata LIKE LINE OF t_bdcdata.
- wa_bdcdata-fnam = fnam.
- wa_bdcdata-fval = fval.
- APPEND wa_bdcdata TO t_bdcdata.
- ENDMETHOD. "BDC_FIELD
- METHOD bdc_dynpro.
- DATA: wa_bdcdata LIKE LINE OF t_bdcdata.
- wa_bdcdata-program = program.
- wa_bdcdata-dynpro = dynpro.
- wa_bdcdata-dynbegin = 'X'.
- APPEND wa_bdcdata TO t_bdcdata.
- ENDMETHOD. "BDC_DYNPRO
- METHOD set_column_text.
- DATA lr_column TYPE REF TO cl_salv_column_table..
- lr_column ?= mr_columns->get_column( i_colname ).
- lr_column->set_short_text( i_stext ).
- IF i_mtext IS SUPPLIED.
- lr_column->set_medium_text( i_mtext ).
- ELSE.
- lr_column->set_medium_text( i_stext ).
- ENDIF.
- IF i_ltext IS SUPPLIED.
- lr_column->set_long_text( i_ltext ).
- ELSEIF i_mtext IS SUPPLIED.
- lr_column->set_long_text( i_mtext ).
- ELSE.
- lr_column->set_long_text( i_stext ).
- ENDIF.
- ENDMETHOD. "set_column_texts
- ENDCLASS. "lcl_alv IMPLEMENTATION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement