PDA

Ver la Versión Completa : Campos vacío en tabla interna


karvi
06/07/11, 10:57:27
Buenas, que tal :D

Quería saber si alguien conoce una forma de saber si una tabla interna tiene, en alguno de sus registros, un campo que este vacío (o en su defecto con un Work Area si no se puede con la tabla completa), sin tener que verificar con un LOOP y preguntando campo por campo :( .

Muchas gracias!!

Salu2!

kibo
06/07/11, 12:28:58
Creo que no existe una manera directa... deberas de controlar campo por campo.

A menos que todos tus campos sean numericos (supongo que no es asi) podrias multiplicar todos los campos y si el resultado es 0; es que hay alguno vacio :P

DavidXD_XD
06/07/11, 14:32:22
Lo puedes realizar con una rutina pequeña de esta manera:

DATA: l_ind TYPE char1. " Indicador si existe un campo vacio
FIELD-SYMBOLS: <fs>.

LOOP AT itab ASSIGNING <fs_itab>.
CLEAR l_ind.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <fs_itab> TO <fs>.

IF sy-subrc <> 0.
EXIT.
ELSE.
IF <fs> IS INITIAL.
l_ind = 'X'.
ENDIF.
ENDIF.
ENDDO.
* Con esta rutina, si l_ind esta marcado con 'X', quiere decir que uno de
* los campos se encuentra vacio, y si quieres saber cual de ellos es, es el
* campo numero 'sy-index' de la estructura de tu taba interna
ENDLOOP.

Espero te ayude :)

karvi
06/07/11, 14:55:01
Muchas gracias DavidXD_XD ;) , si lo hice con Field-Symbols finalmente, pero más que nada quería saber si existía alguna función o algo por el estilo que ya te lo diga :D!!

Saludos!!