Ver Mensaje Individual
  #7  
Viejo 08/08/12, 15:41:25
lucia7272 lucia7272 is offline
Junior Member
 
Fecha de Ingreso: ago 2012
Mensajes: 6
ayuda para llenar una tabla


Hola a todos, recien me inicio en esto de sap, tengo que llenar una tabla por medio de un loop con un append a gt_alv que es donde tengo mi estructura del alv, realmente estoy bastante perdida con esto, enviare parte de mi código quiza alguien que me pueda ayudar, esto tiene fecha de entrega y estoy muy presionada

Method search_data.

Data: lt_lfa1 type table of lfa1,
lt_bkpf type table of bkpf,
lt_rbkp type table of rbkp,
lt_t001 type table of t001,
lt_vbsegk type table of vbsegk,
lt_rseg type table of rseg,
lt_gjahr type bkpf-gjahr,
lt_zt1_pagos type table of zt1_pagos.



Field-symbols: <wa_bkpf> like lt_bkpf,
<lf> like line of lt_lfa1,
<vb> like line of lt_vbsegk,
<zp> like line of lt_zt1_pagos,
<bk> like line of lt_bkpf,
<rb> like line of lt_rbkp.


Data:lt_budat type table of bkpf.

Field-symbols: <wa_budat> like line of gs_param-budat.

*Tabla del ALV.

Data: lt_data type table of zstr_alv_pagos.
Field-symbols: <wa_data> type zstr_alv_pagos.

*Para el id de contraseña

Data: NI(10) type N,
NE(10) TYPE C.


READ TABLE gs_param-budat ASSIGNING <wa_budat> INDEX 1.
*ASSIGN gs_param-budat to <wa_budat>.

if sy-subrc = 0.

if <wa_budat>-low is not initial.
lt_gjahr = <wa_budat>-low(4).
ELSEIF
<wa_budat>-high is not initial.
lt_gjahr = <wa_budat>-high(4).
endif.

endif.

CLEAR: lt_lfa1, lt_bkpf, lt_t001, lt_vbsegk.


*Para bkpf:

select *
into table lt_bkpf
from bkpf
where bukrs EQ gs_param-bukrs and
budat in gs_param-budat and
gjahr EQ lt_gjahr and
belnr in gs_param-belnr and "factura
( bstat = 'V' or bstat = 'W' or bstat = 'Z').


*Para rbkp:
select *
into table lt_rbkp
from rbkp
where budat in gs_param-budat and
gjahr EQ lt_gjahr and
belnr in gs_param-belnr and "factura
( rbstat = 'A' or rbstat = 'B' or rbstat = 'C' or
rbstat = 'D' or rbstat = 'E').


*Para vbsegk:
SELECT *
INTO TABLE lt_vbsegk
FROM vbsegk
FOR ALL ENTRIES IN lt_rbkp
WHERE vbsegk~belnr EQ lt_rbkp-belnr AND
vbsegk~gjahr EQ lt_rbkp-gjahr AND
bukrs EQ gs_param-bukrs AND
belnr IN gs_param-belnr AND
Lifnr IN gs_param-lifnr.


*Para rseg:

SELECT *
INTO TABLE lt_rseg
FROM rseg
FOR ALL ENTRIES IN lt_rbkp
WHERE rseg~belnr EQ lt_rbkp-belnr AND
rseg~Gjahr EQ lt_rbkp-gjahr AND
Lifnr IN gs_param-lifnr.


*Acreedor
LOOP AT lt_lfa1 ASSIGNING <lf>.

write: / <lf>-lifnr.

ENDLOOP.


* Nombre del acreedor

SELECT lifnr name1 INTO CORRESPONDING FIELDS OF TABLE lt_lfa1
FROM lfa1
FOR ALL ENTRIES IN lt_VBSEGK
WHERE lifnr = lt_VBSEGK-lifnr.

*Numero del Documento

SELECT lifnr belnr INTO CORRESPONDING FIELDS OF TABLE lt_rbkp
FROM rbkp
FOR ALL ENTRIES IN lt_vbsegk
WHERE lifnr = lt_VBSEGK-lifnr.

*Referencia

SELECT bukrs xblnr INTO CORRESPONDING FIELDS OF TABLE lt_bkpf
FROM bkpf
FOR ALL ENTRIES IN lt_rbkp
WHERE bukrs = lt_rbkp-bukrs.

"posicion

LOOP AT lt_vbsegk ASSIGNING <vb>.

write: / <vb>-sgtxt.

ENDLOOP.

*Numero Interno

SELECT MAX( NUM_I ) into NI from zt2_pagos
where zt2_pagos~sociedad = gs_param-BUKRS.

ni = ni + 1.

en este parte de aca iniciaría mi loop con un append a la gt_alv porfavor si me dan una idea de como continuar
Responder Con Cita