Mete esos dos dentro del loop
APPEND WA_DATOS TO T_DATOS.
CLEAR WA_DATOS.
Algo asi:
FORM PIDE_DATOS.
SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART
FROM BKPF INTO TABLE T_BKPF
WHERE
BUKRS EQ P_BUKRS
AND BELNR IN S_BELNR
AND GJAHR IN S_GJAHR.
IF T_BKPF[] IS NOT INITIAL.
SELECT BUKRS BELNR GJAHR SGTXT PRCTR
FROM BSEG INTO TABLE T_BSEG
FOR ALL ENTRIES IN T_BKPF
WHERE
BUKRS EQ T_BKPF-BUKRS
AND BELNR EQ T_BKPF-BELNR
AND GJAHR EQ T_BKPF-GJAHR.
ENDIF.
LOOP AT T_BKPF INTO WA_BKPF.
WA_DATOS-BUKRS = WA_BKPF-BUKRS.
WA_DATOS-BELNR = WA_BKPF-BELNR.
WA_DATOS-GJAHR = WA_BKPF-GJAHR.
WA_DATOS-XBLNR = WA_BKPF-XBLNR.
WA_DATOS-BKTXT = WA_BKPF-BKTXT.
WA_DATOS-BLART = WA_BKPF-BLART.
WA_DATOS-BUDAT = WA_BKPF-BUDAT.
WA_DATOS-BLDAT = WA_BKPF-BLDAT.
aqui pon un read table a la t_bseg
IF SY-SUBRC EQ 0.
WA_DATOS-SGTXT = WA_BSEG-SGTXT.
WA_DATOS-PRCTR = WA_BSEG-PRCTR.
ENDIF.
Aqui sobreescribes la work area wa_bkpf
READ TABLE T_BKPF INTO WA_BKPF
WITH KEY BUKRS = WA_BKPF-BUKRS
BELNR = WA_BKPF-BELNR
GJAHR = WA_BKPF-GJAHR.
seleccionas el registro y lluego??
Metiendo estos aca almacenas los registros uno a uno en t_datos
APPEND WA_DATOS TO T_DATOS.
CLEAR WA_DATOS.
ENDLOOP.
ENDFORM.
Espero te sirva, saludos!
|