Hacer no modificable solo una celda de ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Jesus_moreno
    Junior Member
    • sep
    • 25

    #1

    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
    Senior Member
    • may
    • 481

    #2
    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'.
    Editado por última vez por Mauricio Hidalgo; 26/09/2007, 21:20:24.

    Comentario

    Trabajando...