Professional Documents
Culture Documents
TABLES
intern = excel
EXCEPTIONS
OTHERS = 1.
DATA: linea TYPE i.
CLEAR gt_outtab.
REFRESH gt_outtab.
linea = 1.
LOOP AT excel INTO w_excel.
IF linea NE w_excel-row.
APPEND gt_outtab.
CLEAR gt_outtab.
linea = w_excel-row.
ENDIF.
IF w_excel-col = 1.
WRITE w_excel-value TO gt_outtab-matnr.
* gt_outtab-matnr = w_excel-value.
ENDIF.
IF w_excel-col = 2.
gt_outtab-labst = w_excel-value.
ENDIF.
ENDLOOP.
APPEND gt_outtab.
ENDIF.
CLEAR makt.
SELECT SINGLE * FROM makt
WHERE matnr = gt_outtab-matnr
AND spras = sy-langu.
CLEAR marc.
SELECT SINGLE * FROM marc
WHERE matnr = gt_outtab-matnr
AND werks = werks.
CLEAR mard.
SELECT SINGLE * FROM mard
WHERE matnr = gt_outtab-matnr
AND werks = werks
AND lgort = lgort.
gt_outtab-werks = werks.
gt_outtab-lgort = lgort.
gt_outtab-maktx = makt-maktx. "Texto breve material
gt_outtab-labs2 = mard-labst. "Stock Sap
gt_outtab-meins = mara-meins. "Unidad de Medida
gt_outtab-difer = gt_outtab-labs2 - gt_outtab-labst. "Diferencia (Cantidad a
ajustar).
gt_outtab-lvorm = mara-lvorm. "Peticion borrado a nivel mdte
gt_outtab-mstae = mara-mstae. "Status material a nivel mdte
gt_outtab-lvorc = marc-lvorm. "Peticion borrado a nivel centro
gt_outtab-mmsta = marc-mmsta. "Status material a nivel centro
MODIFY gt_outtab.
ENDLOOP.
*---------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
*.............
PUBLIC SECTION.
METHODS:
handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed,
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column,
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
handle_user_command_2
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
handle_before_user_command_2
FOR EVENT before_user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,
handle_toolbar_2
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,
get_inserted_rows
EXPORTING
inserted_rows TYPE stock_keys,
get_modified_rows
EXPORTING
modified_rows TYPE sestr_alv,
get_deleted_rows
EXPORTING
deleted_rows TYPE stock_table,
set_toolbar_active,
set_toolbar_inactive,
cambiar_a_resumen,
cambiar_a_detalle,
refresh_delta_tables,
set_table_is_initial,
set_table_is_not_initial,
table_is_initial
RETURNING value(initial) TYPE char01,
handle_double_click_dbox
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column,
handle_close
FOR EVENT close OF cl_gui_dialogbox_container
IMPORTING sender.
*..............
PRIVATE SECTION.
* Indicador Salida final activado/desactivado
DATA: sf TYPE c.
DATA: toolbar_status.
* This flag signals that no records were read for the flight
* table initially:
DATA: initial_table TYPE c.
** Methods to modularize event handler method HANDLE_DATA_CHANGED:
*
METHODS:
update_delta_tables
IMPORTING
pr_data_changed TYPE REF TO cl_alv_changed_data_protocol.
METHODS:
perform_semantic_checks
IMPORTING
pr_data_changed TYPE REF TO cl_alv_changed_data_protocol.
METHODS:
get_cell_values
IMPORTING
row_id TYPE int4
pr_data_changed TYPE REF TO cl_alv_changed_data_protocol
EXPORTING
key TYPE stock_key.
*---------------------------------------------------------------------*
* MODULE PBO OUTPUT *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'MAIN100'.
IF g_custom_container IS INITIAL.
PERFORM create_and_init_alv CHANGING gt_outtab[]
gt_fieldcat.
ENDIF.
ENDMODULE. "pbo OUTPUT
*---------------------------------------------------------------------*
* MODULE PAI INPUT *
*---------------------------------------------------------------------*
MODULE pai INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
PERFORM exit_program.
* when 'SWITCH'.
* perform switch_edit_mode.
WHEN OTHERS.
* do nothing
ENDCASE.
ENDMODULE. "pai INPUT
*---------------------------------------------------------------------*
* Form VARIANT_INIT
*---------------------------------------------------------------------*
FORM variant_init.
CLEAR g_variant.
g_variant-report = g_repid.
ENDFORM. "variant_init
*---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*
FORM exit_program.
DATA: t_modified_rows TYPE TABLE OF estr_alv,
lineas TYPE i.
DATA: texto1(70), texto2(70),titulo(70),respuesta(1).
IF l_valid IS INITIAL.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = text-i06
txt1 = text-i07
txt2 = text-i08
txt3 = text-i09.
ENDIF.
CLEAR pt_fieldcat.
REFRESH pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'WERKS'.
ls_fcat-col_pos = 1.
ls_fcat-outputlen = 8.
ls_fcat-coltext = 'Centro'.
ls_fcat-scrtext_l = 'Centro'.
ls_fcat-scrtext_m = 'Centro'.
ls_fcat-scrtext_s = 'Centro'.
* ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'LGORT'.
ls_fcat-col_pos = 2.
ls_fcat-outputlen = 8.
ls_fcat-coltext = 'Almacen'.
ls_fcat-scrtext_l = 'Almacen'.
ls_fcat-scrtext_m = 'Almacen'.
ls_fcat-scrtext_s = 'Almacen'.
* ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MATNR'.
ls_fcat-col_pos = 3.
ls_fcat-outputlen = 8.
ls_fcat-coltext = 'Material'.
ls_fcat-scrtext_l = 'Material'.
ls_fcat-scrtext_m = 'Material'.
ls_fcat-scrtext_s = 'Material'.
ls_fcat-emphasize = 'C200'.
ls_fcat-no_zero = 'X'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MAKTX'.
ls_fcat-col_pos = 4.
ls_fcat-outputlen = 40.
ls_fcat-coltext = 'Descripcion'.
ls_fcat-scrtext_l = 'Descripcion'.
ls_fcat-scrtext_m = 'Descripcion'.
ls_fcat-scrtext_s = 'Descripcion'.
ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'LABS2'.
ls_fcat-col_pos = 4.
ls_fcat-outputlen = 15.
ls_fcat-coltext = 'Stock SAP'.
ls_fcat-scrtext_l = 'Stock SAP'.
ls_fcat-scrtext_m = 'Stock SAP'.
ls_fcat-scrtext_s = 'Stock SAP'.
ls_fcat-emphasize = 'C200'.
* ls_fcat-no_zero = 'X'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'LABST'.
ls_fcat-col_pos = 5.
ls_fcat-outputlen = 15.
ls_fcat-coltext = 'Stock Contado'.
ls_fcat-scrtext_l = 'Stock Contado'.
ls_fcat-scrtext_m = 'Stock Contado'.
ls_fcat-scrtext_s = 'Stock Contado'.
ls_fcat-emphasize = 'C200'.
* ls_fcat-no_zero = 'X'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'DIFER'.
ls_fcat-col_pos = 6.
ls_fcat-outputlen = 15.
ls_fcat-coltext = 'Difer.Stock'.
ls_fcat-scrtext_l = 'Difer.Stock'.
ls_fcat-scrtext_m = 'Difer.Stock'.
ls_fcat-scrtext_s = 'Difer.Stock'.
ls_fcat-emphasize = 'C200'.
* ls_fcat-no_zero = 'X'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'ERROR'.
ls_fcat-col_pos = 7.
ls_fcat-outputlen = 6.
ls_fcat-coltext = 'Error'.
ls_fcat-scrtext_l = 'Error'.
ls_fcat-scrtext_m = 'Error'.
ls_fcat-scrtext_s = 'Error'.
ls_fcat-emphasize = 'Error'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'DESC_ERROR'.
ls_fcat-col_pos = 8.
ls_fcat-outputlen = 40.
ls_fcat-coltext = 'Error'.
ls_fcat-scrtext_l = 'Error'.
ls_fcat-scrtext_m = 'Error'.
ls_fcat-scrtext_s = 'Error'.
ls_fcat-emphasize = 'Error'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'LVORM'.
ls_fcat-col_pos = 10.
ls_fcat-outputlen = 3.
ls_fcat-coltext = 'PB'.
ls_fcat-scrtext_l = 'PB'.
ls_fcat-scrtext_m = 'PB'.
ls_fcat-scrtext_s = 'PB'.
ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MSTAE'.
ls_fcat-col_pos = 11.
ls_fcat-outputlen = 3.
ls_fcat-coltext = 'ST'.
ls_fcat-scrtext_l = 'ST'.
ls_fcat-scrtext_m = 'ST'.
ls_fcat-scrtext_s = 'ST'.
ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'LVORC'.
ls_fcat-col_pos = 12.
ls_fcat-outputlen = 4.
ls_fcat-coltext = 'PBC'.
ls_fcat-scrtext_l = 'PBC'.
ls_fcat-scrtext_m = 'PBC'.
ls_fcat-scrtext_s = 'PBC'.
ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MMSTA'.
ls_fcat-col_pos = 13.
ls_fcat-outputlen = 4.
ls_fcat-coltext = 'STC'.
ls_fcat-scrtext_l = 'STC'.
ls_fcat-scrtext_m = 'STC'.
ls_fcat-scrtext_s = 'STC'.
ls_fcat-emphasize = 'C200'.
APPEND ls_fcat TO pt_fieldcat.
ENDFORM. "build_fieldcat
*&---------------------------------------------------------------------*
*& Form CREATE_AND_INIT_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_OUTTAB text
* <--P_GT_FIELDCAT text
* <--P_GS_LAYOUT text
*----------------------------------------------------------------------*
FORM create_and_init_alv CHANGING pt_outtab LIKE gt_outtab[]
pt_fieldcat TYPE lvc_t_fcat.
DATA: ll TYPE lvc_s_row,
cc TYPE lvc_s_col.
gs_layout-stylefname = 'CELLTAB'.
* gs_layout-grid_title =
* 'Traslado de Reservas Restauracin (Gestin)'.
gs_layout-ctab_fname = 'COLOR'.
gx_variant-variant = p_vari.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
it_toolbar_excluding = lt_exclude
is_layout = gs_layout
is_variant = gx_variant
i_save = x_save
CHANGING
it_fieldcatalog = pt_fieldcat
it_outtab = pt_outtab[].
ENDFORM. "CREATE_AND_INIT_ALV
*&---------------------------------------------------------------------*
*& Form select_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_OUTTAB text
*----------------------------------------------------------------------*
FORM select_data CHANGING pt_outtab LIKE gt_outtab[].
DATA: lt_stock TYPE TABLE OF stock,
ls_stock TYPE stock,
ls_outtab LIKE LINE OF gt_outtab,
l_index TYPE i,
lt_celltab TYPE lvc_t_styl,
lt_color TYPE lvc_s_scol,
num_lin TYPE i,
almacen LIKE mard-werks.
DATA: stock LIKE mard-labst.
* 3.Set all cells of the table non-editable by using the style table.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_graph.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_help.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_info.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_refresh.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_filter.
APPEND ls_exclude TO pt_exclude.
*&---------------------------------------------------------------------*
*& Form PIDE_CONFIRMAC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1131 text
* -->P_TEXTO1 text
* -->P_TEXTO2 text
* -->P_TITULO text
* <--P_RESPUESTA text
*----------------------------------------------------------------------*
* Funcion para pedir un mensaje de confirmacion (popup).
FORM pide_confirmac USING p_defecto "Opcin por defecto
p_texto1 "Texto1 dentro de la ventana
p_texto2 "Texto2 dentro de la ventana
p_titulo "Titulo de la ventana
CHANGING p_respuesta.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
defaultoption = p_defecto
textline1 = p_texto1
textline2 = p_texto2
titel = p_titulo
IMPORTING
answer = p_respuesta
EXCEPTIONS
OTHERS = 1.
**---------------------------------------------------------
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_data_changed.
*
DATA: ls_good TYPE lvc_s_modi,
ls_new TYPE lvc_s_moce.
error_in_data = space.
IF error_in_data = 'X'.
CALL METHOD er_data_changed->display_protocol.
ENDIF.
ENDMETHOD. "handle_data_changed
**---------------------------------------------------------
METHOD handle_double_click.
*
DATA: ls_stock LIKE LINE OF gt_outtab.
ENDMETHOD. "handle_double_click
*-----------------------------------------------------------------------
METHOD handle_toolbar.
* 2.In event handler method for event TOOLBAR: Append own functions
* by using event parameter E_OBJECT.
DATA: ls_toolbar TYPE stb_button.
*....................................................................
* E_OBJECT of event TOOLBAR is of type REF TO CL_ALV_EVENT_TOOLBAR_SET.
* This class has got one attribute, namly MT_TOOLBAR, which
* is a table of type TTB_BUTTON. One line of this table is
* defined by the Structure STB_BUTTON (see data deklaration above).
*
ENDMETHOD. "handle_toolbar
*-----------------------------------------------------------------------
METHOD handle_toolbar_2.
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
MOVE 'RESUM' TO ls_toolbar-function.
MOVE '@5A@' TO ls_toolbar-icon.
MOVE 'Resumen de Resultados'(111) TO ls_toolbar-quickinfo.
MOVE 'Resumen'(112) TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'DETAL' TO ls_toolbar-function.
MOVE '@59@' TO ls_toolbar-icon.
MOVE 'Detalle de Resultados'(111) TO ls_toolbar-quickinfo.
MOVE 'Detalle'(112) TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
*-------------------------------------------------------------------
METHOD handle_user_command.
DATA: ll TYPE lvc_s_row,
cc TYPE lvc_s_col,
ss TYPE lvc_s_stbl.
* 3.In event handler method for event USER_COMMAND: Query your
* function codes defined in step 2 and react accordingly.
CASE e_ucomm.
WHEN 'TRASPASO'.
* CALL METHOD g_grid->get_selected_rows
* IMPORTING
* et_index_rows = lt_rows.
* CALL METHOD cl_gui_cfw=>flush.
* IF sy-subrc NE 0.
** add your handling, for example
* CALL FUNCTION 'POPUP_TO_INFORM'
* EXPORTING
* titel = g_repid
* txt2 = sy-subrc
* txt1 = 'Error in Flush'(500).
* ELSE.
* Set editable cells to ready for input initially
CALL METHOD g_grid->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
CALL METHOD g_verifier->set_toolbar_inactive.
PERFORM generar_traspasos.
IF gt_proc_log IS NOT INITIAL.
IF dialogbox_status IS INITIAL.
dialogbox_status = 'X'.
PERFORM create_detail_list.
ELSE.
CALL METHOD dialogbox_container->set_visible
EXPORTING
visible = 'X'.
CALL METHOD grid2->refresh_table_display.
ENDIF.
ELSE.
CALL METHOD g_grid->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
CALL METHOD g_verifier->set_toolbar_active.
MESSAGE s008(zsistemas) WITH 'No hay nada que traspasar'.
ENDIF.
** Ok code here
* ENDIF.
ENDCASE.
ss-row = 'X'.
ss-col = 'X'.
CALL METHOD g_grid->refresh_table_display
EXPORTING
is_stable = ss.
* ll-index = 1.
* cc-fieldname = 'ERFMG'.
* CALL METHOD g_grid->set_current_cell_via_id
* EXPORTING
* is_row_id = ll
* is_column_id = cc.
ENDMETHOD. "handle_user_command
*-------------------------------------------------------------------
METHOD handle_user_command_2.
DATA: lt_rows TYPE lvc_t_row.
CASE e_ucomm.
WHEN 'RESUM'.
CALL METHOD g_verifier->cambiar_a_resumen.
WHEN 'DETAL'.
CALL METHOD g_verifier->cambiar_a_detalle.
WHEN 'EXIT'.
CALL METHOD g_verifier->handle_close
EXPORTING
sender = dialogbox_container.
ENDCASE.
ENDMETHOD. "handle_user_command_2
*-----------------------------------------------------------------------
METHOD handle_before_user_command_2.
* CASE e_ucomm.
* WHEN '&PRINT'.
* CALL METHOD g_grid->set_user_command
* EXPORTING
* i_ucomm = space.
* ENDCASE.
ENDMETHOD. "handle_before_user_command_2
*-----------------------------------------------------------------------
METHOD handle_close.
DATA: texto1(70), texto2(70),titulo(70),respuesta(1).
LEAVE TO SCREEN 0.
ENDIF.
* In this example closing the dialogbox leads
* to make it invisible. It is also conceivable to destroy it
* and recreate it if the user doubleclicks a line again.
* Displaying a great amount of data has a greater impact on performance.
ENDMETHOD. "handle_close
*-----------------------------------------------------------------------
METHOD handle_double_click_dbox.
*
DATA: ls_log LIKE LINE OF gt_proc_log.
DATA: ls_res LIKE LINE OF gt_proc_res.
IF dialogbox_tabla EQ 'D'.
READ TABLE gt_proc_log INDEX e_row-index INTO ls_log.
IF sy-subrc NE 0.
MESSAGE i000(0k) WITH text-e02. "Fehler beim Einfgen
ENDIF.
* RSPOS
CALL METHOD pr_data_changed->get_cell_value
EXPORTING
i_row_id = row_id
i_fieldname = 'MATNR'
IMPORTING
e_value = key-matnr.
IF sy-subrc NE 0.
MESSAGE i000(0k) WITH text-e02. "Fehler beim Einfgen
ENDIF.
ENDMETHOD. "get_cell_values
*---------------------------------------------------------
METHOD perform_semantic_checks.
DATA: ls_outtab LIKE LINE OF gt_outtab.
DATA: ls_good TYPE lvc_s_modi,
l_bdmng TYPE bdmng.
ENDMETHOD. "perform_semantic_checks
*------------------------------------------------------
METHOD get_inserted_rows.
inserted_rows = me->inserted_rows.
ENDMETHOD. "get_inserted_rows
*------------------------------------------------------
METHOD get_deleted_rows.
deleted_rows = me->deleted_rows.
ENDMETHOD. "get_deleted_rows
*------------------------------------------------------
METHOD get_modified_rows.
modified_rows = me->modified_rows.
ENDMETHOD. "get_modified_rows
*------------------------------------------------------
METHOD refresh_delta_tables.
CLEAR me->inserted_rows[].
CLEAR me->modified_rows[].
CLEAR me->deleted_rows[].
ENDMETHOD. "refresh_delta_tables
*------------------------------------------------------
METHOD set_toolbar_active.
CLEAR toolbar_status.
CALL METHOD g_grid->set_toolbar_interactive.
ENDMETHOD. "set_table_is_initial
*------------------------------------------------------
METHOD set_toolbar_inactive.
toolbar_status = 'X'.
CALL METHOD g_grid->set_toolbar_interactive.
ENDMETHOD. "set_table_is_not_initial
*------------------------------------------------------
METHOD set_table_is_initial.
initial_table = 'X'.
ENDMETHOD. "set_table_is_initial
*------------------------------------------------------
METHOD set_table_is_not_initial.
initial_table = space.
ENDMETHOD. "set_table_is_not_initial
*------------------------------------------------------
METHOD table_is_initial.
IF initial_table = 'X'.
initial = 'X'.
ELSE.
initial = space.
ENDIF.
ENDMETHOD. "table_is_initial
*&---------------------------------------------------------------------*
METHOD cambiar_a_resumen.
dialogbox_tabla = 'R'.
CALL METHOD grid2->set_table_for_first_display
* exporting i_structure_name = 'PROC_LOG'
* is_layout = gs_layout
CHANGING
it_fieldcatalog = res_fieldcat
it_outtab = gt_proc_res[].
ENDMETHOD. " cambiar_a_resumen
*&---------------------------------------------------------------------*
METHOD cambiar_a_detalle.
dialogbox_tabla = 'D'.
CALL METHOD grid2->set_table_for_first_display
* exporting i_structure_name = 'PROC_LOG'
* is_layout = gs_layout
CHANGING
it_fieldcatalog = log_fieldcat
it_outtab = gt_proc_log[].
ENDMETHOD. " cambiar_a_detalle
CLEAR litem.
litem-material = ls_outtab-matnr.
litem-ITEM_TEXT = ls_outtab-maktx.
litem-plant = ls_outtab-werks.
litem-stge_loc = ls_outtab-lgort.
litem-move_type = move_type.
litem-spec_stock = spec_stock.
litem-entry_qnt = ABS( ls_outtab-difer ).
litem-entry_uom = ls_outtab-meins.
litem-costcenter = kostl.
* litem-move_plant = ls_outtab-werkd.
* litem-move_stloc = ls_outtab-lgord.
* IF spec_stock = 'W'.
* litem-customer = ls_outtab-kunnr.
* CLEAR: litem-stge_loc, litem-move_stloc.
* ENDIF.
ENDIF.
* CLEAR gt_proc_log.
* LOOP AT gt_proc_log.
* READ TABLE gt_outtab WITH KEY rsnum = gt_proc_log-rsnum
* rspos = gt_proc_log-rspos
* INTO ls_outtab.
* IF sy-subrc EQ 0.
* gt_proc_log-matnr = ls_outtab-matnr.
* gt_proc_log-maktx = ls_outtab-maktx.
* gt_proc_log-erfmg = ls_outtab-erfmg.
* MODIFY gt_proc_log.
* ENDIF.
* ENDLOOP.
ENDFORM. " generar_traspasos
*&---------------------------------------------------------------------*
*& Form BUILD_LOG_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_FIELDCAT text
*----------------------------------------------------------------------*
FORM build_log_fieldcat CHANGING e01_lt_fieldcat TYPE lvc_t_fcat.
DATA ls_fieldcat TYPE lvc_s_fcat.
CLEAR e01_lt_fieldcat.
REFRESH e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ICON'.
ls_fieldcat-key = 'X'.
ls_fieldcat-icon = 'X'.
ls_fieldcat-outputlen = 2.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-coltext = 'Material'.
ls_fieldcat-scrtext_l = 'Material'.
ls_fieldcat-scrtext_m = 'Material'.
ls_fieldcat-scrtext_s = 'Material'.
ls_fieldcat-outputlen = 8.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MAKTX'.
ls_fieldcat-coltext = 'Descripcin'.
ls_fieldcat-scrtext_l = 'Descripcin'.
ls_fieldcat-scrtext_m = 'Descripcin'.
ls_fieldcat-scrtext_s = 'Descripcin'.
ls_fieldcat-outputlen = 15.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ERFMG'.
ls_fieldcat-coltext = 'Cantidad'.
ls_fieldcat-scrtext_l = 'cantidad'.
ls_fieldcat-scrtext_m = 'Cantidad'.
ls_fieldcat-scrtext_s = 'Cantidad'.
ls_fieldcat-decimals = 3.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'DOC-MAT_DOC'.
ls_fieldcat-coltext = 'Doc.Material'.
ls_fieldcat-scrtext_l = 'Doc.Material'.
ls_fieldcat-scrtext_m = 'Doc.Material'.
ls_fieldcat-scrtext_s = 'Doc.Material'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'DOC-DOC_YEAR'.
ls_fieldcat-coltext = 'Ejer.'.
ls_fieldcat-scrtext_l = 'Ejer.'.
ls_fieldcat-scrtext_m = 'Ejer.'.
ls_fieldcat-scrtext_s = 'Ejer.'.
ls_fieldcat-outputlen = 5.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'RETURN-MESSAGE'.
ls_fieldcat-coltext = 'Mensaje'.
ls_fieldcat-scrtext_l = 'Mensaje'.
ls_fieldcat-scrtext_m = 'Mensaje'.
ls_fieldcat-scrtext_s = 'Mensaje'.
ls_fieldcat-outputlen = 30.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. "build_log_fieldcat
*&---------------------------------------------------------------------*
*& Form BUILD_RES_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_FIELDCAT text
*----------------------------------------------------------------------*
FORM build_res_fieldcat CHANGING e01_lt_fieldcat TYPE lvc_t_fcat.
DATA ls_fieldcat TYPE lvc_s_fcat.
CLEAR e01_lt_fieldcat.
REFRESH e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-key = 'X'.
ls_fieldcat-coltext = 'Material'.
ls_fieldcat-scrtext_l = 'Material'.
ls_fieldcat-scrtext_m = 'Material'.
ls_fieldcat-scrtext_s = 'Material'.
ls_fieldcat-outputlen = 8.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'DOC-MAT_DOC'.
ls_fieldcat-coltext = 'Doc.Material'.
ls_fieldcat-scrtext_l = 'Doc.Material'.
ls_fieldcat-scrtext_m = 'Doc.Material'.
ls_fieldcat-scrtext_s = 'Doc.Material'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'DOC-DOC_YEAR'.
ls_fieldcat-coltext = 'Ejer.'.
ls_fieldcat-scrtext_l = 'Ejer.'.
ls_fieldcat-scrtext_m = 'Ejer.'.
ls_fieldcat-scrtext_s = 'Ejer.'.
ls_fieldcat-outputlen = 5.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ERROR'.
ls_fieldcat-coltext = 'Error'.
ls_fieldcat-scrtext_l = 'Error'.
ls_fieldcat-scrtext_m = 'Error'.
ls_fieldcat-scrtext_s = 'Error'.
ls_fieldcat-outputlen = 5.
ls_fieldcat-emphasize = 'C200'.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. "build_fieldcat
*&---------------------------------------------------------------------*
*& Form create_detail_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_detail_list.
* create dialogbox container as dynpro-instance
* When the user switches to another screen, it is
* destroyed by lifetime mangagement of CFW
CREATE OBJECT dialogbox_container
EXPORTING
top = 150
left = 150
lifetime = cntl_lifetime_dynpro
caption = 'Resultados'(200)
width = 800
height = 200.
CREATE OBJECT grid2
EXPORTING
i_parent = dialogbox_container.
SET HANDLER g_verifier->handle_toolbar_2 FOR grid2.
SET HANDLER g_verifier->handle_user_command_2 FOR grid2.
SET HANDLER g_verifier->handle_before_user_command_2 FOR grid2.
* controlamos el dbl-click en el Dialog-Box de los resultados.
SET HANDLER g_verifier->handle_double_click_dbox FOR grid2.
* Register ABAP OO event 'CLOSE'. It is not necessary to register this
* event at the frontend (this is done during creation).
SET HANDLER g_verifier->handle_close FOR dialogbox_container.
* display data
gs_layout-grid_title = space.
PERFORM build_log_fieldcat CHANGING log_fieldcat.
PERFORM build_res_fieldcat CHANGING res_fieldcat.
CALL METHOD g_verifier->cambiar_a_detalle.
* CALL METHOD grid2->set_table_for_first_display
** exporting i_structure_name = 'PROC_LOG'
** is_layout = gs_layout
* CHANGING
* it_fieldcatalog = log_fieldcat
* it_outtab = gt_proc_log[].
*
** Refresh Tootbar
* CALL METHOD grid2->set_toolbar_interactive.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid2.
ENDFORM. " create_detail_list