PDA

Ver la Versión Completa : Eliminar columna vacia???


Driau
03/09/07, 12:17:47
Hola a todos!

Os queria hacer una consulta que aunque facil...a mi no me lo resulta mucho.
Tengo hecho un programa que al final saca un ALV de una tabla. La tabla es del tipo:

DATA: BEGIN OF IT_OUT OCCURS 0,
MAT1(50) TYPE C,
MAT2(50) TYPE C,
MAT3(15) TYPE C,
MAT4(15) TYPE C,
MAT5(15) TYPE C,
MAT6(15) TYPE C,
MAT7(15) TYPE C,
MAT8(15) TYPE C,
MAT9(15) TYPE C,
MAT10(15) TYPE C,
MAT11(15) TYPE C,
MAT12(15) TYPE C,
MAT13(15) TYPE C,
MAT14(15) TYPE C,
MAT15(15) TYPE C,
MAT16(15) TYPE C,
MAT17(15) TYPE C,
MAT18(15) TYPE C,
MAT19(15) TYPE C,
MAT20(15) TYPE C,
MAT21(15) TYPE C,
MAT22(15) TYPE C,
MAT23(15) TYPE C,
END OF TABLE IT_OUT.

El problema es que a veces (y ese es el funcionamiento normal del programa) hay columnas que no tienen ningun valor...pero es imprevisible saber qual.
Mi pregunta és...hay alguna funcion o apaño o lo que sea...que dada una tabla final antes de pasarla al ALV detecte que si una columna esta vacia no la saque???? O a lo mejor se puede crear algun filtro en la vista del ALV que elimine las tablas sin datos????

Ayuda por favor...ya tengo el progranma acabado...y solo me falta esto.

Grácias a todos!

ballan
03/09/07, 13:05:30
Una solucion "rapida" para saber si una columna esta vacia es la siguiente

SORT tabla by campo 1 ascending

read table index 1

if sy-subrc = 0 and tabla-campo1 = space.

SORT tabla by campo 1 descending

read table index 1

if sy-subrc = 0 and tabla-campo1 = space.
"la columna esta vacia
else.
"la columna no esta vacia
endif.

else.
"la columna no esta vacia
endif

Si no tendras que crearte algun algoritmo para comprobar si las columnas estan vacias, si detectas alguna columna que esta vacia solo tendras que marcar con una X el campo NO_OUT del catalogo que has rellenado al crear el alv

Driau
04/09/07, 13:28:42
Grácias! Creo que con esto me sirve!

Un saludo!