Programa que muesra fecha pedido,proveedor por tipo de liberación
Ahi les va para todos.......espero les sirvaaaaaaa
:*&---------------------------------------------------------------------*
*& Report ZMM_R02
*&*& 14.06.2007
*&---------------------------------------------------------------------*
REPORT ZMM_R02.
TYPE-POOLS: SLIS.
tables: T16FC.
************* MIS ESTRUCTURAS **********************
****************************************************
* Estrategias de liberación
data: begin of st16f,
zfrggr like t16fs-frggr, "Grupo de liberacion
zfrgsx like t16fs-frgsx, "Estrategia de liberacion
end of st16f.
* Cabecera de documento de compras
data: begin of stekko,
zfrggr like ekko-frggr, "Grupo de liberación
zfrgsx like ekko-frgsx, "Estrategia de liberacion
zebeln like ekko-ebeln, "Numero de documento de compras
zbedat like ekko-bedat, "Fecha de documento de compras
zlifnr like ekko-lifnr, "Numero de proveedor
end of stekko.
* Cabecera y detalle de factura
data: begin of stfactura,
* Cabecera
zvbeln like vbrk-vbeln, "Factura
zfkart like vbrk-fkart, "Clase de factura
zfkdat like vbrk-fkdat, "Fecha
zknumv like vbrk-knumv, "Nro de condicion de documento
* Posicion
zposnr like vbrp-posnr, "Posicion
zfkimg like vbrp-fkimg, "Cantidad facturada
zvrkme like vbrp-vrkme, "Unidad de medida de venta
zmeins like vbrp-meins, "Unidad de medida base
znetwr like vbrp-netwr, "Valor neto de la posicion en la factura
zmatnr like vbrp-matnr, "Numero de material
end of stfactura.
* Datos a mostrar
data: begin of stdata,
zfrggr like ekko-frggr, "Grupo de liberación
zfrgsx like ekko-frgsx, "Estrategia de liberacion
zebeln like ekko-ebeln, "Numero de documento de compras
zbedat like ekko-bedat, "Fecha de documento de compras
zxblnr like rbkp-xblnr, "Nro documento de ventas (factura proveedor)
zlifnr like ekko-lifnr, "Numero de proveedor
zname1 like lfa1-name1, "Nombre del proveedor
end of stdata.
types: begin of ty_stdata,
zfrggr like ekko-frggr, "Grupo de liberación
zfrgsx like ekko-frgsx, "Estrategia de liberacion
zebeln like ekko-ebeln, "Numero de documento de compras
zbedat like ekko-bedat, "Fecha de documento de compras
zxblnr like rbkp-xblnr, "Nro documento de ventas (factura proveedor)
zlifnr like ekko-lifnr, "Numero de proveedor
zname1 like lfa1-name1, "Nombre del proveedor
end of ty_stdata.
************* MIS VARIABLES ************************
****************************************************
data: tstekko like standard table of stekko,
tstdata like standard table of stdata,
tst16f like standard table of st16f,
tstfactura like standard table of stfactura.
************* MIS CONSTANTES ***********************
****************************************************
************* VARIABLES ALV ************************
****************************************************
* Layout, deberá ser una para cada tabla
data: layout_data type slis_layout_alv.
* Tabla de salida, aqui están los datos a mostrar, deberá ser una para cada tabla
data: gt_data type standard table of ty_stdata with header line.
* Arreglos de campos para cada tabla que se va a mostrar.
data: gt_fieldcat_data type slis_t_fieldcat_alv with header line.
* Donde se guarda la data cuando se muestra en la tabla. Esta variable usa el ALV
* en el momento que se ordena, suma, etc, de tal forma que se lo pueda hacer de forma independiente.
data: data_data like stdata occurs 0 with header line.
* Arreglo de eventos de tabla, debera ser una para cada tabla
data: events_data type slis_t_event.
* Otros
data: EVENTS TYPE SLIS_T_EVENT,
HEADING TYPE SLIS_T_LISTHEADER.
data: v_event type slis_alv_event.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_XEVENTS TYPE SLIS_T_EVENT.
DATA: GT_PRINT TYPE SLIS_PRINT_ALV.
DATA: REPID LIKE SY-REPID.
data: PFSTATUS TYPE SLIS_FORMNAME value 'PF_STATUS_SET'.
************* CAMPOS DE SELECCION ******************
****************************************************
SELECTION-SCREEN BEGIN OF BLOCK Database-selection WITH FRAME TITLE TEXT-001.
selection-screen begin of line.
selection-screen comment (20) text-001.
select-options: zcodlib for t16fc-frgco no-extension no intervals obligatory.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment (20) text-002.
select-options: zdatum for sy-datum no-extension obligatory.
selection-screen end of line.
SELECTION-SCREEN END OF BLOCK Database-selection.
****************** MIS SUBRUTINAS *****************
****************************************************
Form SetTitulo.
sy-title = 'Documentos de compras según código de liberación'.
Endform.
********
********
Form FormatDate using p_entrada p_salida.
data: anio type string,
mes type string,
dia type string.
anio = p_entrada(4).
mes = p_entrada+4(2).
dia = p_entrada+6(2).
concatenate dia mes anio into p_salida separated by '/'.
Endform.
********
********
Form FormatTime using p_entrada p_salida.
data: hora type string,
min type string,
seg type string.
hora = p_entrada(2).
min = p_entrada+2(2).
seg = p_entrada+4(2).
concatenate hora min seg into p_salida separated by ':'.
Endform.
********
********
Form CargarEstratxCodigos using p_codlib.
select frggr frgsx
into table tst16f
from
t16fs
where
frgc1 = p_codlib or
frgc2 = p_codlib or
frgc3 = p_codlib or
frgc4 = p_codlib or
frgc5 = p_codlib or
frgc6 = p_codlib or
frgc7 = p_codlib or
frgc8 = p_codlib.
Endform.
********
********
Form CargarDocCompras.
data: st1 like stdata.
loop at tst16f into st16f.
clear tstekko.
select frggr frgsx ebeln bedat lifnr
into table tstekko
from ekko
where
bedat in zdatum and
frgrl = ' ' and
frggr = st16f-zfrggr and
frgsx = st16f-zfrgsx and
bstyp in ('F', 'L') and (
loekz in (' ') and
procstat in ('02',' ','03','05') or procstat is null ).
loop at tstekko into stekko.
st1-zfrggr = stekko-zfrggr.
st1-zfrgsx = stekko-zfrgsx.
st1-zebeln = stekko-zebeln.
st1-zbedat = stekko-zbedat.
st1-zlifnr = stekko-zlifnr.
append st1 to tstdata.
endloop.
endloop.
Endform.
********
********
Form CargarFactura.
data: v_belnr like ekbe-belnr,
v_xblnr like rbkp-xblnr,
sum type p decimals 2,
idx type i.
* Buscar el nro de factura
loop at tstdata into stdata.
clear v_belnr.
select single belnr
into v_belnr
from ekbe
where
vgabe = '2' and
ebeln = stdata-zebeln.
if sy-subrc = 0.
select single xblnr into v_xblnr
from rbkp
where
belnr = v_belnr.
stdata-zxblnr = v_xblnr.
modify tstdata index sy-tabix from stdata.
endif.
endloop.
Endform.
********
********
Form CargarProveedor.
data: v_name1 like lfa1-name1.
loop at tstdata into stdata.
select single name1 into v_name1
from lfa1
where
lifnr = stdata-zlifnr.
stdata-zname1 = v_name1.
modify tstdata index sy-tabix from stdata.
endloop.
Endform.
********
********
Form Ordenar.
sort tstdata by zbedat ascending.
Endform.
********
********
Form Ejecutar.
perform CargarEstratxCodigos using zcodlib-low.
perform CargarDocCompras.
perform CargarFactura.
perform CargarProveedor.
perform Ordenar.
Endform.
********************* MAIN *************************
****************************************************
initialization.
REPID = SY-REPID.
perform SetTitulo.
start-of-selection.
perform SetTitulo.
perform Ejecutar.
perform CargarALV.
end-of-selection.
***************** FUNCIONES ALV ********************
****************************************************
Form CargarALV.
* Primero se guarda la diferente data en los diferentes objeto gt_*.
perform ConstruirGTs.
perform BUILD_EVENTTAB USING GT_XEVENTS[].
perform BUILD_COMMENT USING HEADING[].
perform ConstruirEventos.
perform ConstruirCampos.
* Mostrar barra de herramientas
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_PF_STATUS_SET = PFSTATUS.
* Data
clear layout_data.
layout_data-zebra = 'X'.
layout_data-edit = 'X'.
layout_data-f2code = '&ETA'.
layout_data-detail_popup = 'X'.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
it_fieldcat = gt_fieldcat_data[]
is_layout = layout_data
i_tabname = 'data_data'
it_events = events_data
i_text = text-010
tables
t_outtab = gt_data.
GT_PRINT-RESERVE_LINES = 2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
IS_PRINT = GT_PRINT.
Endform.
********
********
Form ConstruirGTs.
* Primero se guarda la diferente data en los diferentes objeto gt_*.
loop at tstdata into stdata.
gt_data = stdata.
append gt_data.
endloop.
Endform.
********
********
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'REFR'.
RS_SELFIELD-REFRESH = 'X'.
WHEN OTHERS.
ENDCASE.
ENDFORM.
********
********
FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD' EXCLUDING EXTAB.
ENDFORM.
********
********
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
ENDFORM.
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C,
SEP(10) TYPE C.
CLEAR: HLINE, TEXT.
HLINE-TYP = 'H'.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
ENDFORM.
********
********
Form ConstruirEventos.
* Eventos que se pueden usar: SLIS_EV_TOP_OF_PAGE; SLIS_EV_TOP_OF_LIST;
* SLIS_EV_END_OF_PAGE; SLIS_EV_END_OF_LIST;
* Data
clear v_event.
v_event-name = SLIS_EV_TOP_OF_PAGE.
v_event-form = 'DATA_TOP_OF_PAGE'.
append v_event to events_data.
clear v_event.
v_event-name = SLIS_EV_END_OF_LIST.
v_event-form = 'DATA_END_OF_PAGE'.
append v_event to events_data.
Endform.
********
********
Form ConstruirCampos.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZFRGGR'.
gt_fieldcat_data-seltext_m = 'Grupo Liberación'.
gt_fieldcat_data-outputlen = 17.
append gt_fieldcat_data.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZFRGSX'.
gt_fieldcat_data-seltext_m = 'Estrategia'.
gt_fieldcat_data-outputlen = 12.
append gt_fieldcat_data.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZEBELN'.
gt_fieldcat_data-seltext_m = 'Nro.Pedido'.
gt_fieldcat_data-outputlen = 12.
append gt_fieldcat_data.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZBEDAT'.
gt_fieldcat_data-seltext_m = 'Fecha Pedido'.
gt_fieldcat_data-outputlen = 12.
append gt_fieldcat_data.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZXBLNR'.
gt_fieldcat_data-seltext_m = 'Nro.Factura'.
gt_fieldcat_data-outputlen = 16.
append gt_fieldcat_data.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZLIFNR'.
gt_fieldcat_data-seltext_m = 'Cod. Provedor'.
gt_fieldcat_data-outputlen = 15.
append gt_fieldcat_data.
clear gt_fieldcat_data.
gt_fieldcat_data-fieldname = 'ZNAME1'.
gt_fieldcat_data-seltext_m = 'Nombre'.
gt_fieldcat_data-outputlen = 50.
append gt_fieldcat_data.
Endform.
********
********
Form DATA_TOP_OF_PAGE.
data: texto type string,
f1 type string,
f2 type string.
concatenate ' ' text-003 zcodlib-low into texto separated by ' '.
write: / texto.
Endform.
********
********
Form DATA_END_OF_PAGE.
data: texto type string,
f type string,
t type string.
concatenate ' Usuario:' sy-uname into texto separated by ' '.
translate texto to upper case.
write: / texto.
perform FormatDate using sy-datum f.
perform FormatTime using sy-uzeit t.
concatenate ' Fecha:' f t into texto separated by ' '.
translate texto to upper case.
write: / texto.
Endform.
|