Ver Mensaje Individual
  #1  
Viejo 29/04/08, 15:00:40
camaron camaron is offline
Junior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 14
Angry S.o.s. Con Reporte

Hola a todos como estan? tengo un problemita con un reporte resulta que tengo una tabla interna con n registros, donde tengo que sumar el monto de cada oferta por codigo de material y mostar la cantidad mas grande con ese codigo, (pueden varias cantidades con el mismo codigo de material) por
el momento estoy perdido, alguien me puede ayudar??? el codigo es el siguiente:


REPORT zmm_resumen_economico.
*&---------------------------------------------------------------------*
* DECLARACION DE TABLAS Y VARIABLES
**&---------------------------------------------------------------------*
DATA: ti_header TYPE zmmt_chrg_ofer_h OCCURS 0 WITH HEADER LINE.
DATA: ti_detail TYPE zmmt_chrg_ofer_d OCCURS 0 WITH HEADER LINE.
DATA: it_struc TYPE zmm_carofertas OCCURS 0 WITH HEADER LINE.
DATA: ti_items TYPE zmmt_chrg_ofer_i OCCURS 0 WITH HEADER LINE.
DATA: wa_items TYPE zmmt_chrg_ofer_i OCCURS 0 WITH HEADER LINE.
DATA: vfuncion TYPE rs38l_fnam,
cparam TYPE ssfctrlop,
outop TYPE ssfcompop,
fm_name TYPE rs38l_fnam,
vtot TYPE mkpf-frath,
vgara TYPE mkpf-frath.
data: bandera1(01).
*----------------------------------------------------------------------*
* PANTALLA DE SELECCION CON PARAMETROS
*----------------------------------------------------------------------*
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
PARAMETERS: p_lifnr LIKE lfa1-lifnr OBLIGATORY,
p_submi LIKE zmmt_chrg_ofer_h-submi OBLIGATORY.
SELECTION-SCREEN END OF BLOCK a1.
*----------------------------------------------------------------------*
* SELECCION DE DATOS
*----------------------------------------------------------------------*
START-OF-SELECTION.

*----------------------------------------------------------------------*
* SUBRUTINA PARA LA OBTENCION DE DATOS
*----------------------------------------------------------------------*
PERFORM call_info.

*----------------------------------------------------------------------*
* SUBRUTINA PARA IMPRECION DEL FORMULARIO
*----------------------------------------------------------------------*
PERFORM print_info.
*&---------------------------------------------------------------------*
*& Form call_info
*&---------------------------------------------------------------------*
FORM call_info .
*SELECCION DE DATOS DE CABECERA
SELECT SINGLE *
FROM zmmt_chrg_ofer_h
INTO ti_header
WHERE lifnr EQ p_lifnr
AND submi EQ p_submi.

*SELECCION DE DATOS POR ITEM
SELECT *
FROM zmmt_chrg_ofer_i
INTO TABLE ti_items
WHERE lifnr EQ ti_header-lifnr
AND ebeln EQ ti_header-ebeln
AND tipo NE space.

*SELECCION DE DETALLE
SELECT *
FROM zmmt_chrg_ofer_d
INTO TABLE ti_detail
WHERE lifnr EQ ti_header-lifnr
AND ebeln EQ ti_header-ebeln
AND tipo NE space.
*--------------------------------------------------------------------*
*ORDENACION DE TALAS INTERNAS ITEMS Y DETALLES
**--------------------------------------------------------------------*
SORT ti_detail BY ebeln ebelp.
SORT ti_items BY ebeln ebelp.

*LIMPIANDO WA WA_ITEMS Y VARIABLES
REFRESH wa_items.
CLEAR: vtot, vgara.

*PASANDO DATOS A LA TABLA DE WA
LOOP AT ti_items INTO wa_items.

*LEYENDO TABLA INTERNA TI_DETAIL CN LLAVE PRIMARIA EBELN Y EBELP
READ TABLE ti_detail WITH KEY ebeln = wa_items-ebeln
ebelp = wa_items-ebelp BINARY SEARCH.
IF sy-subrc EQ 0.
it_struc-nocom = ti_detail-nocom.
MOVE-CORRESPONDING wa_items TO it_struc.
ENDIF.
APPEND it_struc.

SORT it_struc by matnr totpr totfi.
at new matnr.
IF it_struc-totpr > vtot.
vtot = it_struc-totpr + vtot .
ENDIF.
IF it_struc-totfi > vgara.
vgara = it_struc-totfi + vgara.
ENDIF.
ENDAT.
ENDLOOP.
ENDFORM. " traer_info

saludos amigos,
Responder Con Cita