PDA

Ver la Versión Completa : Consulta de lectura de tabla interna


Alfredosite
12/05/08, 21:19:43
Hola amigos tengo una consulta, tengo el sgte codigo:
Al momento de leer la tabla interna (t_ztb_prvac) ya cargada a travez de un loop con un where pernr EQ pernr-pernr, no obtiene los datos en la tabla gt_rep.

Por favor podrian orientarme si esta bien mi codigo o que sugerencia me darian ( mi objetivo es llenar una tabla interna recorrerla y obtener los datos y mostralos en otra tabla solo por su pernr (codigo de personal).


TABLES: pernr, ztb_prvac.
TYPES:
BEGIN OF gty_rep,
bukrs LIKE ztb_prvac-bukrs,
pernr LIKE ztb_prvac-pernr,
nomc(50) TYPE C,
begda LIKE ztb_prvac-begda,
endda LIKE ztb_prvac-endda,
tdias LIKE ztb_prvac-tdias,
tdliq LIKE ztb_prvac-tdliq,
tprov LIKE ztb_prvac-tprov,
tsalp LIKE ztb_prvac-tsalp,
END OF gty_rep.

DATA:
t_ztb_prvac TYPE TABLE OF ztb_prvac WITH HEADER LINE,
gt_rep TYPE STANDARD TABLE OF gty_rep WITH HEADER LINE.

START-OF-SELECTION.

REFRESH t_ztb_prvac.
CLEAR t_ztb_prvac.

SELECT * INTO CORRESPONDING FIELDS OF TABLE t_ztb_prvac
FROM ztb_prvac
WHERE bukrs in PNPBUKRS.

GET pernr.
rp-provide-from-last p0002 space pn-begda pn-endda.

PERFORM carga_datos.

END-OF-SELECTION.

FORM carga_datos .

REFRESH gt_rep.
CLEAR gt_rep.

LOOP AT t_ztb_prvac where pernr EQ pernr-pernr.

CONCATENATE p0002-vorna p0002-nachn p0002-name2 INTO v_nomc
SEPARATED BY SPACE.
TRANSLATE v_nomc TO UPPER CASE.
gt_rep-nomc = v_nomc.
gt_rep-bukrs = t_ztb_prvac-bukrs.
gt_rep-pernr = t_ztb_prvac-pernr.
gt_rep-begda = t_ztb_prvac-begda.
gt_rep-endda = t_ztb_prvac-endda.
gt_rep-tdias = t_ztb_prvac-tdias.
gt_rep-tdliq = t_ztb_prvac-tdliq.
gt_rep-tprov = t_ztb_prvac-tprov.
gt_rep-tsalp = t_ztb_prvac-tsalp.
APPEND gt_rep.
ENDLOOP.
ENDFORM. " carga_datos

Muchas Gracias :confused:

DavidXD_XD
12/05/08, 23:22:57
Cuando intentas debuggear, tu tabla interna contiene datos??, de ser asi la otra pregunta es si el campo pernr-pernr esta vacio o contiene valor'?

Alfredosite
12/05/08, 23:31:27
Cuando intentas debuggear, tu tabla interna contiene datos??, de ser asi la otra pregunta es si el campo pernr-pernr esta vacio o contiene valor'?

David siempre dando la mano, sabes ya descubri mi problema es que el problema era que cada vez que salgo del loop estaba declarando un refresh lo cual hacia que no me muestre la data de la tabla gt_rep :D .... osea solito me fregaba :rolleyes: jeje

START-OF-SELECTION.

REFRESH t_ztb_prvac.
CLEAR t_ztb_prvac.

SELECT * INTO CORRESPONDING FIELDS OF TABLE t_ztb_prvac
FROM ztb_prvac
WHERE bukrs in PNPBUKRS.

GET pernr.
rp-provide-from-last p0002 space pn-begda pn-endda.

PERFORM carga_datos.

END-OF-SELECTION.

FORM carga_datos .

REFRESH gt_rep.
CLEAR gt_rep.

LOOP AT t_ztb_prvac where pernr EQ pernr-pernr.

CONCATENATE p0002-vorna p0002-nachn p0002-name2 INTO v_nomc
SEPARATED BY SPACE.
TRANSLATE v_nomc TO UPPER CASE.
gt_rep-nomc = v_nomc.
gt_rep-bukrs = t_ztb_prvac-bukrs.
gt_rep-pernr = t_ztb_prvac-pernr.
gt_rep-begda = t_ztb_prvac-begda.
gt_rep-endda = t_ztb_prvac-endda.
gt_rep-tdias = t_ztb_prvac-tdias.
gt_rep-tdliq = t_ztb_prvac-tdliq.
gt_rep-tprov = t_ztb_prvac-tprov.
gt_rep-tsalp = t_ztb_prvac-tsalp.
APPEND gt_rep.
ENDLOOP.
ENDFORM. " carga_datos

Muchas gracias DAVID.

DavidXD_XD
14/05/08, 17:24:00
Estamos para eso .... :D , veo que también eres de lima :p , un saludo