Ver Mensaje Individual
  #12  
Viejo 07/09/15, 21:42:05
FFARRO FFARRO is offline
Junior Member
 
Fecha de Ingreso: nov 2013
Mensajes: 11
La forma correcta de hacerlo es:

Primero: Haces tu select para traer todos tus registros con casi todos los campos que necesitas.

SELECT mandt kunnr name1 zsd_fecha_nac zsd_doc_ident zsd_dom_parti
zsd_dom_comer zsd_est_civil zsd_nacional zsd_ruc
zsd_telefono zsd_celular zsd_email zsd_localidad
FROM zsd_det_cliente
INTO TABLE gt_det_cliente
WHERE kunnr IN p_kunnr
AND name1 IN so_name1
AND zsd_fecha_nac IN so_fnaci
AND zsd_doc_ident IN so_dni
AND zsd_dom_parti IN so_dompa
AND zsd_dom_comer IN so_domco
AND zsd_est_civil IN so_estci
AND zsd_nacional IN so_nacio
AND zsd_ruc IN so_ruc
AND zsd_telefono IN so_telef
AND zsd_celular IN so_celul
AND zsd_email IN so_email
AND zsd_localidad IN so_local.

Segundo: Llenas otra tabla con el codigo de cliente y el nombre.

if gt_det_cliente is not initial.

SELECT mandt kunnr name1
FROM kna1
INTO TABLE t_kna1
FOR ALL ENTRIES gt_det_cliente
WHERE kunnr EQ gt_det_cliente-kunnr.

endif.

Finalmente: recorres tu tabla colocandole el valor correcto en name1.

LOOP AT gt_det_cliente ASSIGNING <fs_det>.

read table t_kna1 into wa_kna1 with key kunnr = <fs_det>-kunnr.
if sy-subrc = 0.
<fs_det>-name1 = wa_kna1-name1.
endif.

ENDLOOP.

Espero te ayude.

Freddy Farro
Programador ABAP
Responder Con Cita