ALV no Muestra todos los Campos

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • gercho79
    Junior Member
    • sep
    • 20

    #1

    ALV no Muestra todos los Campos

    Me esta pasando lo siguiente en un ALV tengo 56 columnas a mostrar pero solo me muestra 44 hay 12 columnas que no las muestra y cuando hace el append al fieldcat para todas las columnas las hace de la misma manera.

    Alguien sabe decirme el porque me sucede esto?


    Muchas Gracias.
  • Gatini28
    Junior Member
    • ago
    • 23

    #2
    Columnas en Alv

    Hola,
    lo que debes hacer es agrandar el ancho de tu pagina a traves de la sentencia LINE-SIZE. Ejemplo:

    REPORT <nombre_programa> NO STANDARD PAGE HEADING
    LINE-COUNT 65
    LINE-SIZE 300.


    Suerte.

    Comentario

    • Hector Serrano
      Junior Member
      • jul
      • 6

      #3
      AlV no salen todas las columans

      Alguien sabe porque no se ven todas las columnas en un ALV pero por Objetos, no a la antiguita.
      saludos.
      Hector Serrano
      hserrano@abap.es
      Monterrey,N.L.

      Comentario

      • calin
        Member
        • jul
        • 52

        #4
        hola Hector

        podrias compartirnos la rutina en la que llenas la tabla de fieldcat?

        saludos.

        Comentario

        • Hector Serrano
          Junior Member
          • jul
          • 6

          #5
          La tabla T_dfies es una tabla con el nombre de todos los campos que necesito, en este caso son al rededor de 240 campos,
          en pantalla necesito mostrar al menos 120 (entiendo que no es funcional pero asi lo pidieron), el detalle es que no importa lo que haga siempre me muestra 90 columnas solamente.
          Lo que pienso es que talvez exista otro objeto que si permita mas de 90 columnas, encontre uno ( cl_salv_table ) pero no me permite darle formato a las celdas ni incluir la barra de herramientas.



          el objeto alv es de la clase
          DATA: v_grid_200 TYPE REF TO cl_gui_alv_grid.

          el layout es
          DATA: lw_fieldcat TYPE lvc_s_fcat.


          LOOP AT t_dfies
          INTO lw_dfies.

          lv_pos = lv_pos + 1.

          IF sy-tabix <= lv_cant.

          * Se construye el layout del reporte del ALV
          lw_fieldcat-fieldname = lw_dfies-fieldname.
          lw_fieldcat-col_pos = lv_pos.
          lw_fieldcat-col_opt = c_x.
          lw_rel_field-field = lw_fieldcat-fieldname.
          lw_rel_field-fecha = lv_fecha.


          * Se valida el fieldcat
          PERFORM f_val_fieldcat
          USING lw_dfies
          lv_fecha
          CHANGING lw_fieldcat
          lw_rel_field-tipo.

          APPEND LINES OF w_estr-style
          TO lt_styles.

          APPEND lw_rel_field
          TO t_rel_field.

          APPEND lw_fieldcat
          TO t_fieldcat_100.

          CLEAR lw_fieldcat.

          ELSE.

          * Se construye el layout del reporte del ALV
          lw_fieldcat-fieldname = lw_dfies-fieldname.
          lw_fieldcat-col_pos = lv_pos.
          lw_fieldcat-no_out = c_x.

          APPEND lw_fieldcat
          TO t_fieldcat_100.

          CLEAR lw_fieldcat.

          ENDIF.
          ENDLOOP.




          la carga del metodo
          * Se muestra el grid por primera vez
          CALL METHOD v_grid_200->set_table_for_first_display
          EXPORTING
          i_structure_name = 'TY_ESTR'
          is_layout = w_layout
          it_toolbar_excluding = t_excl_100
          CHANGING
          it_fieldcatalog = t_fieldcat_100
          it_outtab = t_estr.

          Gracias.
          Hector Serrano
          hserrano@abap.es
          Monterrey,N.L.

          Comentario

          • asclevius
            Member
            • ago
            • 54

            #6
            lo primero que debes hacer es definir si lo que necesitas es un alv editable o uno no editable

            si lo necesitas editable utilizas la clase cl_gui_alv_grid
            si lo necesitas no editable utilizas la clase cl_salv_table

            y para el catalogo te recomiendo que los declares uno a uno, por que ese loop presenta problemas.

            Comentario

            • Hector Serrano
              Junior Member
              • jul
              • 6

              #7
              Es editable.

              por otro lado, si tengo el mapeo del layout contra una tabla
              pero dependiendo de la seleccion de datos
              se muestra la cantidad de columnas
              Es un listado de Empleados que por cada Empleado
              se ve el horario de Entrada y salida de los dias seleccionados
              entonces por cada dia son 5 columnas por 5, 7, 10, 15 ,20 o hasta 31 dias
              ya que el usuario quere ver toda la informacion.
              cuando 10 dias pues son 50 columnas y no hay problema
              pero cuando son 20 dias ya son 100 y el ALV solo muestra 90.

              El Llenado de la tabla y del layout no tiene problema
              simplemente el ALV no muestra todos los campos.
              Hector Serrano
              hserrano@abap.es
              Monterrey,N.L.

              Comentario

              • Hector Serrano
                Junior Member
                • jul
                • 6

                #8
                Ya lo resolvi
                Resulta que haciendo un refresh se actualiza el grid


                CALL METHOD v_grid_200->set_frontend_fieldcatalog
                EXPORTING
                it_fieldcatalog = t_fieldcat_100.

                CALL METHOD v_grid_200->refresh_table_display.
                Hector Serrano
                hserrano@abap.es
                Monterrey,N.L.

                Comentario

                • DCErick
                  Moderator
                  • mar
                  • 1090

                  #9
                  Originalmente publicado por Hector Serrano
                  Alguien sabe porque no se ven todas las columnas en un ALV pero por Objetos, no a la antiguita.
                  saludos.
                  Originalmente publicado por Hector Serrano
                  Ya lo resolvi
                  Resulta que haciendo un refresh se actualiza el grid


                  CALL METHOD v_grid_200->set_frontend_fieldcatalog
                  EXPORTING
                  it_fieldcatalog = t_fieldcat_100.

                  CALL METHOD v_grid_200->refresh_table_display.
                  Creo que tu problema


                  No fue bien planteado, por la solucion que le diste supongo que el problema era al regerenar el ALV osease que de un inicio salía bien pero al actualizar el ALV con nuevos datos/campos seguias viendo los mismos de la ejecución anterior.

                  Originalmente publicado por Hector Serrano
                  ALV pero por Objetos, no a la antiguita.
                  <<<<<--------------
                  -------------------
                  ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                  Comentario

                  Trabajando...