Foro de programación ABAP

Programación => Programación ABAP => Mensaje iniciado por: asclevius en 18 Ago 2011, 22:48

Título: Duda
Publicado por: asclevius en 18 Ago 2011, 22:48
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 Ago 2011, 23:50
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 Ago 2011, 08:30
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 Sep 2011, 05:36
carlos enrique muchas gracias por su ayuda han sido de mucha utilidad
:D