MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Hacer no modificable solo una celda de ALV (foro/showthread.php?t=7984)

Jesus_moreno 26/09/07 20:15:08

Hacer no modificable solo una celda de ALV
 
Hola
Es posible en un ALV hacer que sólo un campo de un registro sea no modificable y el mismo campo para el resto de registros si.
Gracias.

Mauricio Hidalgo 26/09/07 21:13:40

Sí es posible.

1. Agregar a la estructura de tu tabla que tiene los datos a mostrar lo siguiente.
cellstyles type lvc_t_styl

2. En una subrutina recorre tu tabala de datos, y dependiendo de las condiciones para dejar editable o no editable una celda (campo). Pones lo siguiente: En este caso ti_nsl es mi tabla de datos de salida. La constante mc_style_disabled deja el dato no editable y mc_style_enabled lo deja editable.

loop at ti_nsl.
...
...
ls_style-fieldname = 'FACTURAMATRIZ'.
ls_style-style = oAlv->mc_style_disabled.
append ls_style to ti_nsl-cellstyles.
...
...
endloop.

3. En el alv tienes que usar el parámetro relativo al layout. No se si usas funciones o metodos..pero ambos lo tienen. En esa estructura layout llena el atributo siguiente

* CELLSTILES es el campo que añadimos a la tabla interna de datos

gs_layout-stylefname = 'CELLSTYLES'.

Y con eso deberias lograrlo.

PS: Si estas usando funciones REUSE la constante
oAlv->mc_style_disabled es igual a '00100000'
oAlv->mc_style_enabled es igual a '00080000'.


Husos Horarios son GMT. La hora en este momento es 16:29:26.

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