Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: asclevius en 18 de Agosto de 2011, 10:48:19 pm

Título: Duda
Publicado por: asclevius en 18 de Agosto de 2011, 10:48:19 pm
Hola a todos llevo 2 dias estudiando abap, es que tengo una duda, estoy en una subrutina y hago el siguiente select:


SELECT kunag fkdat fktyp waerk netwr INTO TABLE IT_vbrk
      from VBRK FOR ALL ENTRIES IN IT_client
      WHERE fktyp = tipofact  AND
            kunag <> IT_client-kunag.



ahora el problema es que no se como imprimir el resultado del select???? si alguien me puede ayudar se lo agradecería.
Título: Re:Duda
Publicado por: Enrique.Borroni en 18 de Agosto de 2011, 11:50:15 pm
Estimado...lo puedes hacer de la siguiente forma....no es la mejor ni la mas bonita...pero funciona....espero te ayude.

LOOP AT it_vbrk.

  WRITE :/001 it_vbrk-kunag,
          015 it_vbrk-fkdat,
          025 it_vbrk-fktyp,
          035 it_vbrk-waerk,
          055 it_vbrk-netwr.
ENDLOOP.
Título: Re:Duda
Publicado por: Carlos en 19 de Agosto de 2011, 08:30:33 am
Hola,

Aparte de lo que comenta Enrique (que esta perfecto), quiero puntualizar un consejo.

Cuando utilices la instrucción FOR ALL ENTRIES IN it_client, como sugerencia debes de meter dentro de un IF el SELECT.

IF it_client[] IS NOT INITIAL.
  SELECT kunag fkdat fktyp waerk netwr INTO TABLE it_vbrk
    FROM vbrk FOR ALL ENTRIES IN it_client
   WHERE fktyp = tipofact
     AND kunag <> IT_client-kunag.
ENDIF.


De esta manera conseguimos que si tu tabla interna (en este caso... it_client) no tuviera resultados evitamos que entre al SELECT porque te seleccionaría todos los resultados.



Título: Re:Duda
Publicado por: asclevius en 13 de Septiembre de 2011, 05:36:25 am
carlos enrique muchas gracias por su ayuda han sido de mucha utilidad
 :D