Anda di halaman 1dari 15

*&---------------------------------------------------------------------*

*& Mdulo...........: SD
*& Programa.........: ZSDD_RPT_TRAZA
*& Autor............: Villarreal Murillo,Fredy (BIZ)
*& Fecha ..........: 15/11/2016
*& Descripcin......: Reporte de Trazabilidad SDD - ALV
*&---------------------------------------------------------------------*
REPORT zsdd_rpt_traza.
"**--Tables
tables : zrmm_sdd_mov_c , zrmm_sdd_mov_d.
"**-type-pools: slis.
"**-types :
"**-begin of ty_sdd_mov_c ,
cd
type zrmm_sdd_mov_c-cd,
"Centro Distribucion
tienda
type zrmm_sdd_mov_c-tienda,
"Tienda
tipo
type char7 ,
"Tipo E=Electro u B=Bazar
*
tipo
type zrmm_sdd_mov_c-tipo,
"Tipo E=Electro u B=Bazar
k_num_op type zrmm_sdd_mov_c-k_num_op, "Numero de Operacion
num_op_can type zrmm_sdd_mov_c-num_op_can, "Numero de Operacion de Cance
lacion
fecent
type zrmm_sdd_mov_c-fec_ent, "Numero de Operacion
pedido_sap type zrmm_sdd_mov_c-pedido_sap,"Pedido Venta
solped
type zrmm_sdd_mov_c-solped,
"Solicitud de Pedido
oc
type zrmm_sdd_mov_c-oc,
"Orden de Compra
end of ty_sdd_mov_c,
"**-begin of ty_sdd_tienda ,
werks
type zrmm_sdd_mov_c-tienda, "Tienda
name1
type t001w-name1,
"Descripcion
end of ty_sdd_tienda,
"**-*
BEGIN OF ty_sdd_doc_mt,
*
ebeln
TYPE ekbe-ebeln,
"Orden de Compra
*
belnr
TYPE ekbe-belnr,
"Documento de Material de Recep
cion de la OC
*
END OF ty_sdd_doc_mt,
*
**-*
BEGIN OF ty_sdd_desp_oc,
*
ebeln
TYPE ekbe-ebeln,
"Orden de Compra
*
cpudt
TYPE ekbe-cpudt,
"Recp.OC
*
cputm
TYPE ekbe-cputm,
"Hora recepcion OC
*
ernam
TYPE ekbe-ernam,
"Usuario recpcion OC
*
END OF ty_sdd_desp_oc,
"**-begin of ty_sdd_doc_mt,
ebeln
type ekbe-ebeln,
"Orden de Compra
belnr
type ekbe-belnr,
"Documento de Material de Recepc
ion de la OC
bwart
type ekbe-bwart,
"Orden de Compra
cpudt
type ekbe-cpudt,
"Recp.OC
cputm
type ekbe-cputm,
"Hora recepcion OC
ernam
type ekbe-ernam,
"Usuario recpcion OC
end of ty_sdd_doc_mt,
"**-begin of ty_sdd_carga,
numop
type zrmm_sdd2_d-numop,
"Numero de Operacion
carga
type zrmm_sdd2_d-carga,
"Numero de Carga del Desp

acho
mblnr

type zrmm_sdd2_d-mblnr,

"Numero de Carga del Des

pacho
end of ty_sdd_carga,
"**-begin of ty_sdd_mov_d,
k_num_op type zrmm_sdd_mov_d-k_num_op,
"Numero de Operacion
matnr
type zrmm_sdd_mov_d-matnr,
"Material
qty
type zrmm_sdd_mov_d-qty,
"10.Cantidad
doc1
type zrmm_sdd_mov_d-doc1,
"Mov 252
doc2
type zrmm_sdd_mov_d-doc2,
"Mov 251
end of ty_sdd_mov_d,
"**-begin of ty_sdd_material,
matnr
type zrmm_sdd_mov_d-matnr,
"Material
maktx
type makt-maktx,
"Descripcion
end of ty_sdd_material,
"**-begin of ty_sdd_um,
matnr
type zrmm_sdd_mov_d-matnr,
"Material
meins
type mara-meins,
"Unidad de Medida Base
end of ty_sdd_um,
"**-begin of ty_sdd_mblnr,
mblnr
type mkpf-mblnr,
*
tienda
type zrmm_sdd_mov_c-tienda,
matnr
type zrmm_sdd_mov_d-matnr,
*
budat
TYPE mkpf-budat,
end of ty_sdd_mblnr,
"**-begin of ty_sdd_mov,
sel,
cd
type zrmm_sdd_mov_c-cd,
"1.Centro Distribucion
tienda
type zrmm_sdd_mov_c-tienda,
"2.Tienda
name1
type t001w-name1,
"3.Descripcion de la Tienda
tipo
type char7,
"4.Tipo E=Electro u B=Bazar
num_op
type zrmm_sdd_mov_c-k_num_op, "5.Numero de Operacion
num_op_can type zrmm_sdd_mov_c-num_op_can, "6.Numero de Operacion de Can
celacion
fecent
type zrmm_sdd_mov_c-fec_ent,
"7.Fecha Entrega
fecen5
type zrmm_sdd_mov_c-fec_ent,
"7.Fecha Entrega - 5 dias
matnr
type zrmm_sdd_mov_d-matnr,
"8.Material
maktx
type makt-maktx,
"9.Descripcion de Material
qty
type zrmm_sdd_mov_d-qty,
"10.Cantidad
meins
type mara-meins,
"11.Unidad de Medida Base
pventa
type zrmm_sdd_mov_c-pedido_sap, "12.Pedido Venta
solped
type zrmm_sdd_mov_c-solped,
"13.Solicitud de Pedido
oc
type zrmm_sdd_mov_c-oc,
"14.Orden de Compra
belnr
type ekbe-belnr,
"15.Documento de Material de l
a recepcion de la OC
cpudt
type ekbe-cpudt,
"16.Fecha OC
cputm
type ekbe-cputm,
"17.Hora OC
ernam
type ekbe-ernam,
"18.User OC
doc1
type zrmm_sdd_mov_d-doc1,
"19.Mov 252 (TD)
carga
type zrmm_sdd2_d-carga,
"20.Carga
doc2
type zrmm_sdd_mov_d-doc2,
"21.Mov 251 (CD)
mblnr
type mkpf-mblnr,
end of ty_sdd_mov.
data: "**--Work Areas -

wa_data1 type ty_sdd_mov_c,


wa_data2 type ty_sdd_tienda,
wa_data3 type ty_sdd_doc_mt,
wa_data4 TYPE ty_sdd_desp_oc,
wa_data5 type ty_sdd_carga,
wa_data6 type ty_sdd_mov_d,
wa_data7 type ty_sdd_material,
wa_data71 type ty_sdd_material,
wa_data8 type ty_sdd_um,
wa_data9 type ty_sdd_mblnr,

"**--Tabla Cabecera
"Tabla Descripcion Tienda
"Tabla Doc.Material
"Tabla Descripcion OC
"Tabla Carga
"**--Tabla Detalle - Mov
"Tabla Material - UM
"Tabla Material - UM
"Tabla UM
"Tabla Numero de Docuemento de

material
wa_out type ty_sdd_mov,
"**--Internal Tables ------------------------------------------it_data1 type standard table of ty_sdd_mov_c ,
"**--Tabla Cab
ecera
it_data2 type standard table of ty_sdd_tienda,

"Tabla Descripc

ion Tienda
it_data3 type standard table of ty_sdd_doc_mt,

"Tabla Doc.Mate

it_data4 type standard table of ty_sdd_doc_mt,

"Tabla Doc.Mate

rial
rial
*
cion OC

it_data4 TYPE STANDARD TABLE OF ty_sdd_desp_oc,

"Tabla Descrip

it_data5 type standard table of ty_sdd_carga,


it_data6 type standard table of ty_sdd_mov_d,

"Tabla Carga
"**--Tabla Deta

it_data7 type standard table of ty_sdd_material,

"Tabla Material

it_data71 type standard table of ty_sdd_material,

"Tabla Materia

lle - Mov
- UM
l - UM
it_data8 type standard table of ty_sdd_um,
it_data9 type standard table of ty_sdd_mblnr,
de Docuemento de material
it_out type table of ty_sdd_mov.
data:

"**-wa_fcat_out type slis_fieldcat_alv,


it_fcat_out type slis_t_fieldcat_alv,
wa_layout
wa_top

type slis_layout_alv,
type slis_listheader,

it_top

type slis_t_listheader,

wa_event
it_event

type slis_alv_event,
type slis_t_event,

r_ucomm
rs_selfield
v_selfield
v_prog
v_name

type
type
type
type
type

lv_lines

type i.

sy-ucomm,
slis_selfield,
slis_selfield-value,
sy-repid,
sy-uname,

field-symbols :<fs_it_data1> like line of it_data1,


<fs_it_data2> like line of it_data1,
<fs_it_data6> like line of it_data6,
<fs_it_out> like line of it_out.

"Tabla UM
"Tabla Numero

*---Event Initialization-----------------------------------------------*
initialization.
selection-screen begin of block b01 with frame title text-b01.
select-options:
s_cd
for zrmm_sdd_mov_c-cd,
"Centro Distribucion
s_tienda
for zrmm_sdd_mov_c-tienda,
"Tienda
s_tipo
for zrmm_sdd_mov_c-tipo,
"Tipo E=Electro u B=Ba
zar
s_num_op
for zrmm_sdd_mov_c-k_num_op, "Numero de Operacion
s_fecent
for zrmm_sdd_mov_c-fec_ent, "Numero de Operacion
s_matnr
for zrmm_sdd_mov_d-matnr,
"Material
s_pventa
for zrmm_sdd_mov_c-pedido_sap,"Pedido Venta
s_solped
for zrmm_sdd_mov_c-solped,
"Solicitud de Pedido
s_oc
for zrmm_sdd_mov_c-oc.
"Orden de Compra
selection-screen end of block b01.
*---Event Start of Selection-------------------------------------------*
start-of-selection.
perform get_mov_c.
perform get_mov_d.
perform prepare_output.
perform prepare_fieldcat.
perform prepare_layout.
perform event_data1.
perform alv_list_display.
perform ucomm_out using r_ucomm
changing rs_selfield.
top-of-page.
perform top_of_page.
form get_mov_c.
select a~cd a~tienda a~tipo a~k_num_op a~num_op_can a~fec_ent a~pedido
_sap a~solped a~oc
into table it_data1
from zrmm_sdd_mov_c as a
where a~cd
in s_cd and
a~tienda
in s_tienda and
a~tipo
in s_tipo and
a~k_num_op
in s_num_op and
a~fec_ent
in s_fecent and
a~pedido_sap in s_pventa and
a~solped
in s_solped and
a~oc
in s_oc.
select f~werks f~name1

"name1 - Descripcion de la Ti

enda
into table it_data2
from t001w as f
for all entries in it_data1
where werks = it_data1-tienda.
*
SELECT g~ebeln g~belnr
"belnr - Documento de Materi
al de Recepcion de la OC
*
INTO TABLE it_data3
*
FROM ekbe as g
*
FOR ALL ENTRIES IN it_data1
*
WHERE g~ebeln = it_data1-oc AND
*
g~bwart IN ('101', '102', '105', '106').
select g~ebeln g~belnr g~bwart g~cpudt g~cputm g~ernam "belnr - Docu
mento de Material de Recepcion de la OC

into table it_data3


from ekbe as g
for all entries in it_data1
where g~ebeln = it_data1-oc and
g~bwart in ('101', '102', '105', '106').
sort it_data3 by belnr descending.
delete adjacent duplicates from it_data3 comparing ebeln belnr bwart.
*
SELECT a~ebeln a~cpudt a~cputm a~ernam "cpudt-Fec. Recp.OC "cputm-Ho
r.recp.OC "ernam-User.recp OC
*
INTO TABLE it_data4
*
FROM ekbe as a
*
FOR ALL ENTRIES IN it_data1
*
WHERE a~ebeln = it_data1-oc.
"Definimos el numero de operacion con ceros a la izquierda
loop at it_data1 assigning <fs_it_data1>.
"**-case <fs_it_data1>-tipo.
when 'E'.
<fs_it_data1>-tipo = 'ELECTRO'.
when 'B'.
<fs_it_data1>-tipo = 'BAZAR'.
when others.
endcase.
"**-call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = <fs_it_data1>-k_num_op
importing
output = <fs_it_data1>-k_num_op.
endloop.
select h~numop h~carga h~mblnr
into table it_data5
from zrmm_sdd2_d as h
for all entries in it_data1
where h~numop = it_data1-k_num_op.
"Definimos el numero de operacion sin ceros a la izquierda
loop at it_data1 assigning <fs_it_data2>.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = <fs_it_data2>-k_num_op
importing
output = <fs_it_data2>-k_num_op.
endloop.
*

if sy-subrc eq 0.
sort it_data1 by k_num_op.
else.
message 'Numero de Operacion no existe' type 'I'.
endif.
endform.
form get_mov_d.
if it_data1 is not initial.
select b~k_num_op b~matnr b~qty b~doc1 b~doc2
into table it_data6
from zrmm_sdd_mov_d as b

for all entries in it_data1


where b~k_num_op = it_data1-k_num_op.
loop at it_data6 assigning <fs_it_data6>.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = <fs_it_data6>-matnr
importing
output = <fs_it_data6>-matnr.
endloop.
select a~matnr a~maktx
into table it_data7
from makt as a
for all entries in it_data6
where a~matnr = it_data6-matnr.
select b~matnr b~meins
into table it_data8
from mara as b
for all entries in it_data6
where b~matnr = it_data6-matnr.

if sy-subrc eq 0.
endif.
endif.
endform.

*
form prepare_output.
"**-if it_data1 is not initial.

loop at it_data1 into wa_data1.


wa_out-cd
= wa_data1-cd.
wa_out-tienda
= wa_data1-tienda.
wa_out-tipo
= wa_data1-tipo.
wa_out-num_op
= wa_data1-k_num_op.
wa_out-num_op_can = wa_data1-num_op_can.
wa_out-fecent
= wa_data1-fecent.
"Funcion de -5 Dias
CALL FUNCTION 'CALCULATE_DATE'
EXPORTING
days
= '-5'
MONTHS
= '0'
start_date
= wa_data1-fecent
IMPORTING
result_date
= wa_out-fecen5.
wa_out-fecen5
= wa_data1-fecent.
wa_out-pventa
= wa_data1-pedido_sap.
wa_out-solped
= wa_data1-solped.
wa_out-oc
= wa_data1-oc.
read table it_data2 into wa_data2
with key werks = wa_data1-tienda .
if sy-subrc eq 0.
wa_out-name1
= wa_data2-name1.
endif.

*
*

READ TABLE it_data3 into wa_data3


WITH KEY ebeln = wa_data1-oc BINARY SEARCH .

*
*
*

IF sy-subrc eq 0.
wa_out-belnr
= wa_data3-belnr.
ENDIF.
data : i type i.

*
*

APPEND LINES OF it_data3 TO it_data3.


it_data4 = it_data3.

*
*
*
*
*

LOOP AT it_data3 WHERE ebeln eq wa_data1-oc .


IF sy-subrc eq 0.
DESCRIBE TABLE it_data3 LINES lv_lines.
ENDIF.
ENDLOOP.

*
*
*
*
*

READ TABLE it_data4 into wa_data3


WITH KEY ebeln = wa_data1-oc BINARY SEARCH .
DESCRIBE TABLE it_data4 LINES lv_lines.
IF sy-subrc eq 0.
ENDIF.

*
*
*
*

READ TABLE it_data3 into it_data4


WITH KEY ebeln = wa_data1-oc BINARY SEARCH .
IF sy-subrc eq 0.
DESCRIBE TABLE it_data3 LINES lv_lines.

read table it_data3 into wa_data3


with key ebeln = wa_data1-oc ."binary search .
append : wa_data3 to it_data4.
describe table it_data4 lines lv_lines.
if sy-subrc eq 0.
i = lv_lines mod 2.
if i = 0.
wa_out-belnr
= ''.
wa_out-cpudt
= ''.
wa_out-cputm
= ''.
wa_out-ernam
= ''.
else.
wa_out-belnr
= wa_data3-belnr.
wa_out-cpudt
= wa_data3-cpudt.
wa_out-cputm
= wa_data3-cputm.
wa_out-ernam
= wa_data3-ernam.
endif.
endif.
ENDIF.

*
*
*
*
*
*
*

READ TABLE it_data4 into wa_data4


WITH KEY ebeln = wa_data1-oc BINARY SEARCH .
IF sy-subrc eq 0.
wa_out-cpudt
= wa_data4-cpudt.
wa_out-cputm
= wa_data4-cputm.
wa_out-ernam
= wa_data4-ernam.
ENDIF.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = wa_data1-k_num_op
importing
output = wa_data1-k_num_op.
read table it_data5 into wa_data5

*
*
*
*
*
*
*
*

*
*
*
*
*
*
*
*

with key numop = wa_data1-k_num_op ."binary search .


if sy-subrc eq 0.
wa_out-carga
= wa_data5-carga.
wa_out-doc2
= wa_data5-mblnr.
endif.
loop at it_data1 assigning <fs_it_data2>.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = wa_data1-k_num_op
importing
output = wa_data1-k_num_op.
endloop.
loop at it_data6 into wa_data6 where k_num_op eq wa_data1-k_num_op .
wa_out-qty
= wa_data6-qty.
wa_out-matnr
= wa_data6-matnr.
wa_out-doc1
= wa_data6-doc1.
wa_out-doc2
= wa_data6-doc2.
read table it_data7 into wa_data7
with key matnr = wa_data6-matnr binary search.
if wa_data7 IS INITIAL.
wa_out-maktx
= wa_data7-maktx.
else.
wa_out-maktx
= 'Matr. no definido'.
endif.
read table it_data7 into wa_data7
with key matnr = wa_data6-matnr. "binary search .
if sy-subrc eq 0.
wa_out-maktx
= wa_data7-maktx.
else.
wa_out-maktx
= 'Matr. no definido'.
endif.
LOOP AT it_data7 INTO wa_data7 WHERE matnr eq wa_data6-matnr.
if sy-subrc eq 0.
wa_out-maktx
= wa_data7-maktx.
else.
wa_out-maktx
= 'Matr. no definido'.
endif.
ENDLOOP.
read table it_data8 into wa_data8
with key matnr = wa_data6-matnr .
if sy-subrc eq 0.
wa_out-meins
= wa_data8-meins.
else.
wa_out-meins
= ''.
endif.
append : wa_out to it_out.

if it_out-doc2 IS NOT INITIAL.


SELECT m~mblnr s~matnr "s~werks s~matnr
into wa_data9
from mkpf as m
inner join mseg as s

on

m~mandt = s~mandt and


m~mblnr = s~mblnr and
m~mjahr = s~mjahr
for all entries in it_out
where
s~werks = it_out-tienda and
s~bwart = '251' and
s~matnr = it_out-matnr and
( m~budat >= it_out-fecen5 and m~budat <= it_out-fecent ).
ENDSELECT.
*

move it_data9 TO wa_data9.


if wa_data9 is not INITIAL.
READ TABLE it_out ASSIGNING <fs_it_out> WITH KEY matnr = wa_data9-ma
tnr. ""tienda = it_data9-tienda .
<fs_it_out>-mblnr = wa_data9-mblnr.
endif.
*
endif.
*
LOOP AT .
*

clear : wa_data6,wa_data7,wa_data8,wa_data9.
refresh : it_data9.
endloop.
clear : wa_out,lv_lines,wa_data1,wa_data2,wa_data3,wa_data5.
endloop.
endif.
endform.
form prepare_fieldcat.
clear wa_fcat_out.
refresh it_fcat_out.
if it_out is not initial.
data: lv_col type i value 0.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'CD'.
= 'IT_OUT'.
= 'Centro'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'TIENDA'.
= 'IT_OUT'.
= 'Tienda'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'NAME1'.
= 'IT_OUT'.
= 'Descripcion Tienda'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'TIPO'.
= 'IT_OUT'.
= 'Tipo Venta'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'NUM_OP'.
= 'IT_OUT'.
= 'N.Op.'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'NUM_OP_CAN'.
= 'IT_OUT'.
= 'N.Op.Canc.'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'FECENT'.
= 'IT_OUT'.
= 'Fecha Entrega'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'MATNR'.
= 'IT_OUT'.
= 'Material'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'MAKTX'.
= 'IT_OUT'.
= 'Descripcin Material'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'QTY'.
= 'IT_OUT'.
= 'Cantidad'.
it_fcat_out.

lv_col
= 1 + lv_col.
wa_fcat_out-col_pos = lv_col.
wa_fcat_out-fieldname = 'MEINS'.

wa_fcat_out-tabname = 'IT_OUT'.
wa_fcat_out-seltext_l = 'UM'.
append wa_fcat_out to it_fcat_out.
clear wa_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'PVENTA'.
= 'IT_OUT'.
= 'Pedido SAP'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'SOLPED'.
= 'IT_OUT'.
= 'Solicitud Pedido'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'OC'.
= 'IT_OUT'.
= 'Orden de Compra'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'BELNR'.
= 'IT_OUT'.
= 'Doc. OC'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'CPUDT'.
= 'IT_OUT'.
= 'Fecha OC'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'CPUTM'.
= 'IT_OUT'.
= 'Hora. OC'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'ERNAM'.
= 'IT_OUT'.
= 'User OC'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'DOC1'.
= 'IT_OUT'.
= 'Mov. 252(TD)'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'CARGA'.
= 'IT_OUT'.
= 'Carga'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'DOC2'.
= 'IT_OUT'.
= 'Mov. 251(CD)'.
it_fcat_out.

lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
append wa_fcat_out to
clear wa_fcat_out.

= 1 + lv_col.
= lv_col.
= 'MBLNR'.
= 'IT_OUT'.
= 'Mov251(TD)'.
it_fcat_out.

endif.
endform.

form alv_list_display.
v_prog = sy-repid.
v_name = sy-uname.
if it_out is not initial
and it_fcat_out is not initial.
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program
= v_prog
i_callback_user_command
= 'UCOMM_OUT'
i_callback_top_of_page
= 'TOP_OF_PAGE'
is_layout
= wa_layout
it_fieldcat
= it_fcat_out
it_events
= it_event
i_save
= 'X'
tables
t_outtab
= it_out[]
exceptions
program_error
= 1

others
if sy-subrc <> 0.
exit.
endif.
endif.
endform.

= 2.

form top_of_page.
clear wa_top.
refresh it_top.
data v_date type char12.
call function 'CONVERT_DATE_TO_EXTERNAL'
exporting
date_internal
= sy-datum
importing
date_external
= v_date
exceptions
date_internal_is_invalid
= 1
others
= 2.

*
*
*
.

wa_top-typ
wa_top-info
append wa_top to it_top.
clear wa_top.

= 'H'.
= 'Reporte de Trazabilidad SDD'.

wa_top-typ
wa_top-info
concatenate wa_top-info v_prog
into wa_top-info.
append wa_top to it_top.
clear wa_top.

= 'S'.
= 'Programa : '.

wa_top-typ
wa_top-info
concatenate wa_top-info v_date
into wa_top-info.
append wa_top to it_top.
clear wa_top.

= 'S'.
= 'Fecha : '.

call function 'REUSE_ALV_COMMENTARY_WRITE'


exporting
it_list_commentary
= it_top
I_LOGO
=
I_END_OF_LIST_GRID
=
I_ALV_FORM
=
endform.
form prepare_layout.
wa_layout-zebra
wa_layout-colwidth_optimize
wa_layout-box_fieldname
endform.
form event_data1 .
refresh it_event.

= 'X'.
= 'X'.
= 'SEL'.

*
*

call function 'REUSE_ALV_EVENTS_GET'


EXPORTING
I_LIST_TYPE
= 0
importing
et_events
= it_event
exceptions
list_type_wrong
= 1
others
= 2.
if it_event is not initial.
clear wa_event.
read table it_event into wa_event
with key name = 'USER_COMMAND'.
if sy-subrc = 0.
wa_event-form = 'UCOMM_OUT'.
modify it_event from wa_event
index sy-tabix transporting form.
endif.
endif.
endform.
form ucomm_out using
r_ucomm_out
type sy-ucomm
changing rs_selfield_out1 type slis_selfield.
case r_ucomm_out.
when '&IC1'.
if rs_selfield_out1-fieldname = 'PVENTA'.
set parameter id 'AUN'
field rs_selfield_out1-value.
call transaction 'VA03' and skip first screen.
elseif rs_selfield_out1-fieldname = 'SOLPED'.
set parameter id 'BAN'
field rs_selfield_out1-value.
call transaction 'ME53N'.
"**-elseif rs_selfield_out1-fieldname = 'OC'.
set parameter id 'BES'
field rs_selfield_out1-value.
call transaction 'ME23N'.
"**-elseif rs_selfield_out1-fieldname = 'BELNR'.
set parameter id 'MBN'
field rs_selfield_out1-value.
call transaction 'MIGO' and skip first screen.
"**-elseif rs_selfield_out1-fieldname = 'DOC1'.
set parameter id 'MBN'
field rs_selfield_out1-value.
call transaction 'MIGO' and skip first screen.
"**-elseif rs_selfield_out1-fieldname = 'DOC2'.
set parameter id 'MBN'
field rs_selfield_out1-value.
call transaction 'MIGO' and skip first screen.
"**-elseif rs_selfield_out1-fieldname = 'MBLNR'.

set parameter id 'MBN'


field rs_selfield_out1-value.
call transaction 'MIGO' and skip first screen.
else.
message 'Invalid Field' type 'S'.
endif.
endcase.
endform.

Anda mungkin juga menyukai