MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Ayuda LVC_FIELDCATALOG_MERGE (foro/showthread.php?t=28033)

miguel.esteban.martin 11/02/09 11:58:16

Ayuda LVC_FIELDCATALOG_MERGE
 
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


Husos Horarios son GMT. La hora en este momento es 14:35:53.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web