Buenas tardes. Espero que te sea util, nose si sera la solucion que necesitas pero por lo menos es algo:
*&---------------------------------------------------------------------*
*& Report YTEMPO
*&
*&---------------------------------------------------------------------*
REPORT YTEMPO.
TYPES:BEGIN OF ty_table,
asig(3) TYPE C,
cege(4) TYPE C,
fondo(4) TYPE C,
importe TYPE DMBTR,
doc(4) TYPE C,
END OF ty_table.
TYPES:BEGIN OF ty_docs,
doc(4) TYPE C,
END OF ty_docs.
DATA:BEGIN OF td_aux_table.
INCLUDE TYPE ty_table.
DATA st_doc TYPE STANDARD TABLE OF ty_docs INITIAL SIZE 0.
DATA:END OF td_aux_table.
DATA: it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,
wa_table LIKE LINE OF it_table,
it_aux_table LIKE STANDARD TABLE OF td_aux_table INITIAL SIZE 0,
wa_aux_table LIKE LINE OF it_aux_table,
wa_doc TYPE ty_docs.
FIELD-SYMBOLS: <fs_aux_table> LIKE LINE OF it_aux_table.
START-OF-SELECTION.
wa_table-asig = '543'.
wa_table-cege = '1J03'.
wa_table-fondo = '1160'.
wa_table-importe = '20.0'.
wa_table-doc = '1001'.
APPEND wa_table TO it_table.
wa_table-asig = '543'.
wa_table-cege = '1J03'.
wa_table-fondo = '1160'.
wa_table-importe = '10.0'.
wa_table-doc = '1002'.
APPEND wa_table TO it_table.
wa_table-asig = '543'.
wa_table-cege = '1J03'.
wa_table-fondo = '1160'.
wa_table-importe = '50.0'.
wa_table-doc = '1003'.
APPEND wa_table TO it_table.
CLEAR wa_table.
LOOP AT it_table INTO wa_table.
READ TABLE it_aux_table ASSIGNING <fs_aux_table> WITH KEY asig = wa_table-asig.
IF sy-subrc EQ 0.
<fs_aux_table>-importe = <fs_aux_table>-importe + wa_table-importe.
wa_doc = wa_table-doc.
APPEND wa_doc TO <fs_aux_table>-st_doc.
UNASSIGN <fs_aux_table>.
ELSE.
wa_aux_table-asig = wa_table-asig.
wa_aux_table-cege = wa_table-cege.
wa_aux_table-fondo = wa_table-fondo.
wa_aux_table-importe = wa_table-importe.
wa_doc = wa_table-doc.
APPEND:wa_doc TO wa_aux_table-st_doc,
wa_aux_table TO it_aux_table.
ENDIF.
CLEAR:wa_table,wa_aux_table,wa_doc.
ENDLOOP.
PD: Para ver como funciona seguirlo por debug.
Saludos.
Úlima edición por omegaotaku fecha: 31/03/16 a las 11:55:00.
|