Ayuda - ALV OO con una sola celda de color

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • CarlitosCepeda
    Junior Member
    • nov
    • 8

    #1

    Ayuda - ALV OO con una sola celda de color

    Hola a todos.
    Espero que esten muy bien.
    Una consulta, alguien tiene el conocimiento de crear un ALV OO y que esta atravez de una condición, se coloree una celda.

    Me explico con el caso que tengo.
    Tengo un ALV OO que es para taller. El ALV muestra los 5 primeros días hábiles como columnas, dentro de cada columna van los números de entrega.
    Pero anterior a la primera fecha, existen entregas atrasadas, que no se completaron anteriormente, por lo que el usuario quiere que coloree aquellos son de ese tipo.
    Espero que me puedan ayudar, saludos...
    y muchas gracias.
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Holas, primero q nada debes agregar dentro de tu tabla interna una tabla interna en el cual se almacenara los campos y los colores que tu quieres q se coloreen por cada registro, y tbm agregar el pool de tipos SLIS, de esta forma

    Código:
    TYPE-POOLS: slis.
    
    TYPES: BEGIN OF ty_itab,
             campo1 TYPE i,
             campo2 TYPE i,
             campo3 TYPE i,
             field_col TYPE slis_t_specialcol_alv,
           END OF ty_itab.
    
    DATA: itab TYPE TABLE OF ty_itab WITH HEADER LINE,
          ls_color TYPE slis_specialcol_alv,
          l_res TYPE i.
    
    START-OF-SELECTION.
    
    DO 10 TIMES.
      CLEAR itab.
      itab-campo1 = sy-index.
      itab-campo2 = sy-index * 2.
      itab-campo3 = sy-index ** 3.
    [COLOR="Blue"]* Colocar en color rojo las celdas que son pares para los campos 1 y 2[/COLOR]
      l_res =  itab-campo1 MOD 2.
      IF l_res = 0.
        CLEAR ls_color.
        ls_color-fieldname = 'CAMPO1'.
        ls_color-color-col = 5.
        ls_color-color-int = 0.
        ls_color-color-inv = 0.
        APPEND ls_color TO itab-field_col.
      ENDIF.
      l_res =  itab-campo2 MOD 2.
      IF l_res = 0.
        CLEAR ls_color.
        ls_color-fieldname = 'CAMPO2'.
        ls_color-color-col = 5.
        ls_color-color-int = 0.
        ls_color-color-inv = 0.
        APPEND ls_color TO itab-field_col.
      ENDIF.
    ENDDO.
    Y cuando llenes el layout para el ALV debes llenar el siguiente atributo

    Código:
    gs_layout-ctab_fname = 'FIELD_COL'.
    Y ahi despliegas el ALV con el set_table_for_first_display, la idea es llenar esa tablita interna que va dentro de la tabla interna justo cuando valides cada campo, espero te pueda servir ...
    David Carballido Córdova

    Comentario

    • CarlitosCepeda
      Junior Member
      • nov
      • 8

      #3
      gracias

      Muchas gracias Men
      te pasaste

      Saludos.

      Comentario

      • cmayka
        Junior Member
        • jul
        • 3

        #4
        Alv Oo

        Hola a todos,

        Quiero hacerles una consulta: tengo un ALV OO de 96 columnas pero sólo me muestra las primeras 90 columnas. Alguien sabe por qué?

        Reviso el catálogo y este tiene todos los campos, es decir las 96 columnas pero cuando el ALV sale por pantalla sólo muestra 90, no muestra las últimas 6.

        Agradezco su ayuda.

        Gracias de antemano.

        Comentario

        Trabajando...