Ver Mensaje Individual
  #8  
Viejo 05/07/07, 20:07:46
monteroy monteroy is offline
Junior Member
 
Fecha de Ingreso: mar 2007
Mensajes: 26
Talking 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.
Responder Con Cita