PDA

Ver la Versión Completa : Ayuda LVC_FIELDCATALOG_MERGE


miguel.esteban.martin
11/02/09, 11:58:16
tengo un porblema con un campo qeu me me muestra mi alv.
antes el catalogo de datos lo hacia a mano introduciendo cada campo en el fieldcat.

tengo un campo del tipo numc10 y antes para que en vez de ponerme un 1 me pusiera 00000001 lo convertia yo mismo antes de meterlo en el fieldcat pero ahora al usar la funcion LVC_FIELDCATALOG_MERGE todo esto es automatico y no se como convertir el numero para uqe me lo muestre con los 0 delante.
me podeis esplicar si hay alguna manera de convertir este numero

muchas gracias

Mauricio Hidalgo
11/02/09, 15:42:31
Deja el atributo <tu_catalogo>-no_zero = space. en los campos que necesites ver los ceros.

Saludos

miguel.esteban.martin
11/02/09, 15:52:04
pero como se cual es el campo que quiero cambiar dentro del catalogo.
yo e echo esto pero no sale.

loop at gt_fieldcat.
if gt_fieldcat-fieldname = 'BULTO'.
gt_fieldcat-no_zero = space.
endif.
endloop.

yo quiero que mi campo bulto muestre los ceros.

ballan
11/02/09, 16:15:26
Sustituye esto

loop at gt_fieldcat.
if gt_fieldcat-fieldname = 'BULTO'.
gt_fieldcat-no_zero = space.
endif.
endloop.

por esto

field-symbols: <linea> type any.

loop at gt_fieldcat assigning <linea>.

if <linea>-fieldname = 'BULTO'.

<linea>-no_zero = space.

endif.

endloop.

miguel.esteban.martin
11/02/09, 16:31:17
me da un error.
<LINEA> is neither specified under "TABLES" nor definde as an internal table.
puedes esplicarme porque?

ballan
11/02/09, 17:04:18
Si tu haces

LOOP AT tabla.

tabla-campo1 = 'Valor'.

ENDLOOP.

observaras que no se reflejan los cambios dentro de tu tabla interna, es porque te falta utilizar la instruccion MODIFY, tendrias que hacer esto:

LOOP AT tabla.

tabla-campo1 = 'Valor'.

MODIFY tabla.

ENDLOOP.

Y ahora si verias actualizado el campo en tu tabla interna

Una manera de hacer este proceso mas rapido es utilizando field-symbols, que resumiendo son al ABAP IV lo que a otros lenguajes de programacion son los punteros, lo harias asi.

*Aqui declaras el field-symbols, tiene que ir obligatoriamente con los < y >
field-symbols: <linea> type any.

loop at tabla assigning <linea>.

<linea>-campo = 'Valor'.

endloop.

Como el field-symbol apunta directamente al contenido de la tabla no tienes que utilizar MODIFY