Zmmajuste Inventario
Zmmajuste Inventario
Zmmajuste Inventario
TABLES: mara, mard, marc, makt, msku , t001l, kna1, mbew, *mbew, *marc.
TYPE-POOLS vrm.
* Definicion de datos para carga el Excel.
TYPES kcde_row_col(4) TYPE n.
TYPES: kcde_intern_value(32).
TYPES: BEGIN OF kcde_intern_struc,
row TYPE kcde_row_col,
col TYPE kcde_row_col,
value TYPE kcde_intern_value,
END OF kcde_intern_struc.
TYPES: kcde_intern TYPE kcde_intern_struc OCCURS 0.
DATA: excel TYPE kcde_intern,
w_excel TYPE kcde_intern_struc.
DATA: contador TYPE i.
*local class to handle semantic checks
CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA: g_verifier TYPE REF TO lcl_event_receiver.
DATA pr_data_changed.
DATA: ok_code LIKE sy-ucomm,
save_ok LIKE sy-ucomm,
g_container TYPE scrfname VALUE 'BCALV_GRID',
g_grid TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container,
gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo,
g_max TYPE i VALUE 100,
g_success TYPE c.
TYPES: BEGIN OF proc_log,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
erfmg LIKE goitem-erfmg,
doc LIKE bapi2017_gm_head_ret, "Documento Creado
return LIKE bapiret2,
"Errores devueltos
icon TYPE iconname,
END OF proc_log.
DATA: eproc_log TYPE proc_log.
DATA: grid2 TYPE REF TO cl_gui_alv_grid,
*
reference to dialogbox container.
dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
log_fieldcat TYPE lvc_t_fcat,
res_fieldcat TYPE lvc_t_fcat.
DATA: BEGIN OF gt_proc_log OCCURS 0.
INCLUDE STRUCTURE eproc_log.
DATA: END OF gt_proc_log.
DATA: BEGIN OF gt_proc_res OCCURS 0,
matnr LIKE mara-matnr,
doc LIKE bapi2017_gm_head_ret,
error TYPE i,
END OF gt_proc_res.
* Variables para gestin de variantes en ALV.
DATA: x_save VALUE 'A'.
DATA: g_repid TYPE sy-repid.
DATA: gx_variant LIKE disvariant,
g_variant LIKE disvariant,
g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c.
TYPES: BEGIN OF stock,
werks LIKE marc-werks,
lgort LIKE mard-lgort,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
labst LIKE mard-labst,
labs2 LIKE mard-labst,
meins LIKE mara-meins,
difer LIKE mard-labst,
lvorm LIKE mara-lvorm,
mstae LIKE mara-mstae,
lvorc LIKE marc-lvorm,
mmsta LIKE marc-mmsta,
error(1),
desc_error(30),
END OF stock.
"Material
"Texto breve material
"Stock
"Stock Sap
"Unidad de Medida
"Diferencia (Cantidad a ajustar).
"Peticion borrado a nivel mdte
"Status material a nivel mdte
"Peticion borrado a nivel centro
"Status material a nivel centro
mtart LIKE
matnr LIKE
maktx LIKE
bklas LIKE
peinh LIKE
END OF alv.
mara-mtart,
mara-matnr,
makt-maktx,
mbew-bklas,
mbew-peinh,
*Resultados de la comprobacion
DATA: BEGIN OF alv2 OCCURS 0,
mtart LIKE mara-mtart,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
texto(40),
END OF alv2.
***************************************************************
* Selection Screen
*------------------------------------------SELECTION-SCREEN: BEGIN OF BLOCK sele0 WITH FRAME TITLE text-000.
PARAMETERS:
nom_fic LIKE rlgrap-filename OBLIGATORY.
PARAMETERS: p_fecha LIKE sy-datum DEFAULT sy-datum OBLIGATORY,
p_texto TYPE bktxt DEFAULT 'Introduzca texto' OBLIGATORY.
*SELECT-OPTIONS: matnr FOR mara-matnr.
PARAMETERS: werks LIKE t001l-werks DEFAULT '1003' OBLIGATORY,
lgort LIKE t001l-lgort DEFAULT '1003' OBLIGATORY,
kostl LIKE csks-kostl DEFAULT '1003300001' OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK sele0.
SELECTION-SCREEN SKIP 1.
PARAMETERS: p_vari LIKE disvariant-variant. " ALV Variant
SELECTION-SCREEN SKIP 1.
*INCLUDE bdcrecxx.
*---------------------------------------------------------------------*
*
MAIN
*
*---------------------------------------------------------------------*
INITIALIZATION.
g_repid = sy-repid.
g_save = 'A'.
PERFORM variant_init.
* Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save
= g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
* Para que aparezca el dilogo de peticin de fichero a cargar.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR nom_fic .
* achtung: die hilfe zeigt das dateisystem des prsentationsservers
MESSAGE i041(du).
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename
def_path
mask
mode
title
IMPORTING
filename
EXCEPTIONS
inv_winsys
no_batch
selection_cancel
selection_error
=
=
=
=
=
nom_fic
'/'
',*.*,*.*.'
'O'
text-dsp
= nom_fic
=
=
=
=
01
02
03
04.
START-OF-SELECTION.
* Leo la tabla de saldos de.
CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
EXPORTING
filename
= nom_fic
* Migracion Enterprise
i_begin_col = 1
i_begin_row = 1
i_end_col = 2
i_end_row = 25000
*
RANGE_BEGIN = 'A1'
*
RANGE_END = 'O9999'
* Migracion Enterprise
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.
*
*
*
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
gt_outtab-matnr = w_excel-value.
ENDIF.
IF w_excel-col = 2.
gt_outtab-labst = w_excel-value.
ENDIF.
ENDLOOP.
APPEND gt_outtab.
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
*.............
PUBLIC SECTION.
TYPES: BEGIN OF stock_key.
TYPES: lgort TYPE lgort.
TYPES: matnr TYPE matnr.
TYPES: kunnr TYPE kunnr.
TYPES: END OF stock_key.
TYPES: stock_keys TYPE STANDARD TABLE OF stock_key,
stock_table TYPE STANDARD TABLE OF stock,
sestr_alv
TYPE STANDARD TABLE OF estr_alv.
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.
*
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.
ENDCLASS.
"lcl_event_receiver DEFINITION
**************************************************************
*---------------------------------------------------------------------*
*
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).
DATA: l_valid TYPE c.
*
CALL METHOD g_grid->check_changed_data
IMPORTING
e_valid = l_valid.
IF l_valid IS INITIAL.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = text-i06
txt1 = text-i07
txt2 = text-i08
txt3 = text-i09.
ENDIF.
CALL METHOD g_verifier->get_modified_rows
IMPORTING
modified_rows = t_modified_rows.
DESCRIBE TABLE t_modified_rows LINES lineas.
IF lineas > 0.
texto1 = ' Desea Salir ?'.
texto2 = space.
titulo = 'Confirmacin Salida de Pantalla'.
PERFORM pide_confirmac USING 'N' texto1 texto2 titulo
CHANGING respuesta.
IF respuesta = 'J'.
LEAVE TO SCREEN 0.
ENDIF.
ELSE.
LEAVE TO SCREEN 0.
ENDIF.
ENDFORM.
"exit_program
*&---------------------------------------------------------------------*
*&
Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
<--P_GT_FIELDCAT text
*----------------------------------------------------------------------*
FORM build_fieldcat CHANGING pt_fieldcat TYPE lvc_t_fcat.
DATA ls_fcat TYPE lvc_s_fcat.
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
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
ls_fcat-no_zero
APPEND ls_fcat TO
= 'MATNR'.
= 3.
= 8.
= 'Material'.
= 'Material'.
= 'Material'.
= 'Material'.
= 'C200'.
= 'X'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
APPEND ls_fcat TO
= 'MAKTX'.
= 4.
= 40.
= 'Descripcion'.
= 'Descripcion'.
= 'Descripcion'.
= 'Descripcion'.
= 'C200'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
* ls_fcat-no_zero
APPEND ls_fcat TO
=
=
=
=
=
=
=
=
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
* ls_fcat-no_zero
APPEND ls_fcat TO
=
=
=
=
=
=
=
=
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
=
=
=
=
=
'LABS2'.
4.
15.
'Stock SAP'.
'Stock SAP'.
'Stock SAP'.
'Stock SAP'.
'C200'.
= 'X'.
pt_fieldcat.
'LABST'.
5.
15.
'Stock Contado'.
'Stock Contado'.
'Stock Contado'.
'Stock Contado'.
'C200'.
= 'X'.
pt_fieldcat.
'DIFER'.
6.
15.
'Difer.Stock'.
'Difer.Stock'.
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
* ls_fcat-no_zero
APPEND ls_fcat TO
= 'Difer.Stock'.
= 'Difer.Stock'.
= 'C200'.
= 'X'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
APPEND ls_fcat TO
= 'ERROR'.
= 7.
= 6.
= 'Error'.
= 'Error'.
= 'Error'.
= 'Error'.
= 'Error'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
APPEND ls_fcat TO
= 'DESC_ERROR'.
= 8.
= 40.
= 'Error'.
= 'Error'.
= 'Error'.
= 'Error'.
= 'Error'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
APPEND ls_fcat TO
= 'LVORM'.
= 10.
= 3.
= 'PB'.
= 'PB'.
= 'PB'.
= 'PB'.
= 'C200'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
APPEND ls_fcat TO
= 'MSTAE'.
= 11.
= 3.
= 'ST'.
= 'ST'.
= 'ST'.
= 'ST'.
= 'C200'.
pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname
ls_fcat-col_pos
ls_fcat-outputlen
ls_fcat-coltext
ls_fcat-scrtext_l
ls_fcat-scrtext_m
ls_fcat-scrtext_s
ls_fcat-emphasize
=
=
=
=
=
=
=
=
'LVORC'.
12.
4.
'PBC'.
'PBC'.
'PBC'.
'PBC'.
'C200'.
= 'MMSTA'.
= 13.
= 4.
= 'STC'.
= 'STC'.
= 'STC'.
= 'STC'.
= 'C200'.
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.
DATA: lt_exclude TYPE ui_functions.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_custom_container.
* Create Objekt to verify input values.
* (This object is already needed in form SELECT_DATA).
CREATE OBJECT g_verifier.
SET HANDLER g_verifier->handle_user_command FOR g_grid.
SET HANDLER g_verifier->handle_data_changed FOR g_grid.
SET HANDLER g_verifier->handle_double_click FOR g_grid.
SET HANDLER g_verifier->handle_toolbar FOR g_grid.
PERFORM select_data CHANGING pt_outtab[].
* Build fieldcat and set columns PLANETYPE and SEATSOCC
* edit enabled.
PERFORM build_fieldcat CHANGING pt_fieldcat.
PERFORM exclude_tb_functions CHANGING lt_exclude.
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
is_layout
is_variant
i_save
CHANGING
it_fieldcatalog
it_outtab
=
=
=
=
lt_exclude
gs_layout
gx_variant
x_save
= pt_fieldcat
= pt_outtab[].
"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.
LOOP AT pt_outtab INTO ls_outtab.
l_index = sy-tabix.
IF ls_outtab-error = 'X'.
lt_color-fname = 'MATNR'.
lt_color-nokeycol = 'X'.
lt_color-color-col = 6.
ENDFORM.
" EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*&
Form switch_edit_mode
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
*FORM switch_edit_mode .
* IF g_grid->is_ready_for_input( ) eq 0.
** set edit enabled cells ready for input
*
CALL METHOD g_grid->set_ready_for_input
*
EXPORTING i_ready_for_input = 1.
*
* ELSE.
** lock edit enabled cells against input
*
CALL METHOD g_grid->set_ready_for_input
*
EXPORTING i_ready_for_input = 0.
* ENDIF.
*
*ENDFORM.
" switch_edit_mode
*&---------------------------------------------------------------------*
*&
Form f4_for_variant
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f4_for_variant .
*
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant
= g_variant
i_save
= g_save
*
it_default_fieldcat =
IMPORTING
e_exit
= g_exit
es_variant
= gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S'
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM.
" f4_for_variant
*&---------------------------------------------------------------------*
*&
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.
ENDFORM.
" PIDE_CONFIRMAC
"handle_data_changed
**--------------------------------------------------------METHOD handle_double_click.
*
DATA: ls_stock LIKE LINE OF gt_outtab.
DATA: garg TYPE eqegraarg, contador TYPE i.
DATA: enq TYPE STANDARD TABLE OF seqg3.
* 4.The event DOUBLE_CLICK provides parameters for row and column
* of the click. Use row parameter to select a line of the
* corresponding internal table.
* read selected row from internal table gt_sflight
READ TABLE gt_outtab INDEX e_row-index INTO ls_stock.
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).
*
* A remark to the flag E_INTERACTIVE:
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
'e_interactive' is set, if this event is raised due to
*
the call of 'set_toolbar_interactive' by the user.
*
You can distinguish this way if the event was raised
*
by yourself or by ALV
*
(e.g. in method 'refresh_table_display').
*
An application of this feature is still unknown... :-)
* append a separator to normal toolbar
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
* append an icon to put all to nothing
* append a separator to normal toolbar
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
* append an icon to make doc. material
CLEAR ls_toolbar.
MOVE 'TRASPASO' TO ls_toolbar-function.
MOVE '@K5@' TO ls_toolbar-icon.
MOVE 'Generar Ajuste Inventario'(111) TO ls_toolbar-quickinfo.
MOVE 'Inventario'(112) TO ls_toolbar-text.
MOVE toolbar_status TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
"handle_toolbar
*----------------------------------------------------------------------METHOD handle_toolbar_2.
DATA: ls_toolbar TYPE stb_button.
* append a separator to normal toolbar
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
* append an icon to put all to nothing
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.
*
*
*
*
*------------------------------------------------------METHOD update_delta_tables.
DATA: l_ins_row TYPE lvc_s_moce,
l_mod_row TYPE stock,
l_del_row TYPE lvc_s_moce,
ls_key TYPE stock_key,
ls_stock TYPE stock,
ls_outtab LIKE LINE OF gt_outtab.
FIELD-SYMBOLS: <fs> TYPE ANY.
ASSIGN pr_data_changed->mp_mod_rows->* TO <fs>.
modified_rows = <fs>.
ENDMETHOD.
"update_delta_tables
*--------------------------------------------------------METHOD get_cell_values.
* get values of key cells of row ROW_ID
TYPES: kunnr TYPE kunnr.
* RSNUM
CALL METHOD pr_data_changed->get_cell_value
EXPORTING
i_row_id
= row_id
i_fieldname = 'LGORT'
IMPORTING
e_value
= key-lgort.
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
ENDCLASS.
"lcl_event_receiver IMPLEMENTATION
*&---------------------------------------------------------------------*
*&
Form generar_traspasos
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM generar_traspasos .
DATA: header LIKE bapi2017_gm_head_01.
DATA: code LIKE bapi2017_gm_code.
DATA: item LIKE TABLE OF bapi2017_gm_item_create.
DATA: litem LIKE LINE OF item.
DATA: docs LIKE bapi2017_gm_head_ret.
DATA: return LIKE TABLE OF bapiret2.
DATA: lreturn LIKE LINE OF return.
DATA: ls_outtab LIKE LINE OF gt_outtab.
DATA: numl TYPE i.
DATA: x VALUE 'X'.
DATA: nerr TYPE i.
DATA: contador TYPE i.
DATA: move_type TYPE bwart,
spec_stock TYPE sobkz.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
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.
APPEND litem TO item.
*
*
*
*
contador = contador + 1.
IF contador = 300.
DESCRIBE TABLE item LINES numl.
CHECK numl GT 0.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header
= header
goodsmvt_code
= code
TESTRUN
= ' '
IMPORTING
goodsmvt_headret
= docs
MATERIALDOCUMENT
=
MATDOCUMENTYEAR
=
TABLES
goodsmvt_item
= item
GOODSMVT_SERIALNUMBER
=
return
= return.
LOOP AT item INTO litem.
CLEAR gt_proc_log.
gt_proc_log-matnr = litem-material.
gt_proc_log-maktx = litem-ITEM_TEXT.
gt_proc_log-erfmg = litem-entry_qnt.
gt_proc_log-doc = docs.
IF return IS INITIAL.
gt_proc_log-icon = '@5B@'.
ELSE.
READ TABLE return WITH KEY row = sy-tabix INTO lreturn.
IF sy-subrc EQ 0.
gt_proc_log-return = lreturn.
gt_proc_log-icon = '@5C@'.
ELSE.
gt_proc_log-icon = '@5D@'.
ENDIF.
ENDIF.
APPEND gt_proc_log.
CLEAR gt_proc_res.
gt_proc_res-matnr = litem-material.
gt_proc_res-doc = docs.
DESCRIBE TABLE return LINES gt_proc_res-error.
APPEND gt_proc_res.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
contador = 1.
ENDIF.
ENDLOOP.
* Ejecuto el ultimo lote de materiales al salir.
IF contador <> 1.
DESCRIBE TABLE item LINES numl.
CHECK numl GT 0.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header
= header
goodsmvt_code
= code
*
TESTRUN
= ' '
IMPORTING
goodsmvt_headret
= docs
*
MATERIALDOCUMENT
=
*
MATDOCUMENTYEAR
=
TABLES
goodsmvt_item
= item
*
GOODSMVT_SERIALNUMBER
=
return
= return.
LOOP AT item INTO litem.
CLEAR gt_proc_log.
gt_proc_log-matnr = litem-material.
gt_proc_log-maktx = litem-ITEM_TEXT.
gt_proc_log-erfmg = litem-entry_qnt.
gt_proc_log-doc = docs.
IF return IS INITIAL.
gt_proc_log-icon = '@5B@'.
ELSE.
READ TABLE return WITH KEY row = sy-tabix INTO lreturn.
IF sy-subrc EQ 0.
gt_proc_log-return = lreturn.
gt_proc_log-icon = '@5C@'.
ELSE.
gt_proc_log-icon = '@5D@'.
ENDIF.
ENDIF.
APPEND gt_proc_log.
CLEAR gt_proc_res.
gt_proc_res-matnr = litem-material.
gt_proc_res-doc = docs.
DESCRIBE TABLE return LINES gt_proc_res-error.
APPEND gt_proc_res.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
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
ls_fieldcat-key
ls_fieldcat-icon
ls_fieldcat-outputlen
APPEND ls_fieldcat TO
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-no_zero
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
= 'ICON'.
= 'X'.
= 'X'.
= 2.
e01_lt_fieldcat.
=
=
=
=
=
=
'MATNR'.
'Material'.
'Material'.
'Material'.
'Material'.
8.
= 'X'.
= 'C200'.
e01_lt_fieldcat.
= 'MAKTX'.
= 'Descripcin'.
= 'Descripcin'.
= 'Descripcin'.
= 'Descripcin'.
= 15.
= 'C200'.
e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ERFMG'.
ls_fieldcat-coltext = 'Cantidad'.
ls_fieldcat-scrtext_l = 'cantidad'.
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-decimals
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
= 'Cantidad'.
= 'Cantidad'.
= 3.
= 'C200'.
e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
= 'DOC-MAT_DOC'.
= 'Doc.Material'.
= 'Doc.Material'.
= 'Doc.Material'.
= 'Doc.Material'.
= 10.
= 'C200'.
e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
= 'DOC-DOC_YEAR'.
= 'Ejer.'.
= 'Ejer.'.
= 'Ejer.'.
= 'Ejer.'.
= 5.
= 'C200'.
e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
ENDFORM.
= 'RETURN-MESSAGE'.
= 'Mensaje'.
= 'Mensaje'.
= 'Mensaje'.
= 'Mensaje'.
= 30.
= 'C200'.
e01_lt_fieldcat.
"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
ls_fieldcat-key
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-no_zero
ls_fieldcat-emphasize
=
=
=
=
=
=
=
=
=
'MATNR'.
'X'.
'Material'.
'Material'.
'Material'.
'Material'.
8.
'X'.
'C200'.
= 'DOC-MAT_DOC'.
= 'Doc.Material'.
= 'Doc.Material'.
= 'Doc.Material'.
= 'Doc.Material'.
= 10.
= 'C200'.
e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
= 'DOC-DOC_YEAR'.
= 'Ejer.'.
= 'Ejer.'.
= 'Ejer.'.
= 'Ejer.'.
= 5.
= 'C200'.
e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname
ls_fieldcat-coltext
ls_fieldcat-scrtext_l
ls_fieldcat-scrtext_m
ls_fieldcat-scrtext_s
ls_fieldcat-outputlen
ls_fieldcat-emphasize
APPEND ls_fieldcat TO
= 'ERROR'.
= 'Error'.
= 'Error'.
= 'Error'.
= 'Error'.
= 5.
= 'C200'.
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.