ALV: Cambiar nombres de cabeceras

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • yerotos
    Member
    • nov
    • 39

    #1

    ALV: Cambiar nombres de cabeceras

    Alguien sabe como cambiar los nombres de las cabeceras de ALV?

    Muchisisimas gracias.

    Un saludo

  • ibecerra

    #2
    Fijate en este codigo
    add 1 to ncol.
    CLEAR gt_fieldcat.
    gt_fieldcat-row_pos = nrow.
    gt_fieldcat-col_pos = ncol.
    gt_fieldcat-tabname = CABECERA.
    gt_fieldcat-fieldname = 'AUFNR'.
    gt_fieldcat-seltext_l = text-T01. ---> aqui se cambia la cabecera
    gt_fieldcat-seltext_m = text-T01. ---> o
    gt_fieldcat-seltext_s = text-T01.
    gt_fieldcat-outputlen = 12.
    APPEND gt_fieldcat.

    Comentario

    • yerotos
      Member
      • nov
      • 39

      #3
      Originalmente publicado por ibecerra
      Fijate en este codigo
      add 1 to ncol.
      CLEAR gt_fieldcat.
      gt_fieldcat-row_pos = nrow.
      gt_fieldcat-col_pos = ncol.
      gt_fieldcat-tabname = CABECERA.
      gt_fieldcat-fieldname = 'AUFNR'.
      gt_fieldcat-seltext_l = text-T01. ---> aqui se cambia la cabecera
      gt_fieldcat-seltext_m = text-T01. ---> o
      gt_fieldcat-seltext_s = text-T01.
      gt_fieldcat-outputlen = 12.
      APPEND gt_fieldcat.
      Muchas gracias, pero no todavia estoy muy verde en esto. Podrías extenderte un poco mas.

      Yo tengo esta tabla:

      it_tabla

      y cuando la mando al ALV, en el campo EDAD que es int2, me pone en la cabecera de esa columna INT2. Como y donde hago el cambio de "INT2" a "EDAD NIE"

      Muchisimas gracias

      Comentario

      • ibecerra

        #4
        puedes poner tu codigo abap para darle una revisado e indicarte exactamente lo q tienes q hacer...
        Saludos

        Comentario

        • yerotos
          Member
          • nov
          • 39

          #5
          Originalmente publicado por ibecerra
          puedes poner tu codigo abap para darle una revisado e indicarte exactamente lo q tienes q hacer...
          Saludos
          Te pongo un "resumen" de mi código:


          DATA it_zt7ehs00_cardio TYPE STANDARD TABLE OF zt7ehs00_cardio.

          START-OF-SELECTION.

          SELECT * FROM zt7ehs00_cardio INTO TABLE it_zt7ehs00_cardio.

          LOOP AT it_zt7ehs00_cardio INTO wa_zt7ehs00_cardio.

          "-- Buscamos los puntos según la edad
          SELECT SINGLE points FROM zt7ehs_ries_edad
          INTO wa_zt7ehs00_cardio-puntos_edad
          WHERE limit_low <= wa_zt7ehs00_cardio-edad
          AND limit_high > wa_zt7ehs00_cardio-edad.

          MODIFY zt7ehs00_cardio FROM wa_zt7ehs00_cardio.

          PERFORM load_data_into_grid.

          SET SCREEN 100.
          endloop
          END-OF-SELECTION.



          FORM load_data_into_grid .
          CREATE OBJECT gr_alvgrid
          EXPORTING
          i_parent = contenedor.

          CALL METHOD gr_alvgrid->set_table_for_first_display
          EXPORTING
          i_structure_name = 'ZT7EHS00_CARDIO'(002)
          CHANGING
          it_outtab = it_zt7ehs00_cardio.
          "it_fieldcatalog = P_prue_fieldcat.
          ENDFORM. " load_data_into_grid




          GRACIAS

          Comentario

          • ibecerra

            #6
            OK.. Mira te falta esto

            * Inicializar el Layout
            ******************************************
            CALL METHOD grid1->set_table_for_first_display
            EXPORTING
            i_structure_name = 'TI_ZTFACTRET'
            is_layout = gs_layout
            is_variant = gs_variant
            i_save = ''
            i_default = 'X'
            it_toolbar_excluding = lt_toolbar_excluding
            CHANGING
            it_outtab = TI_ZTFACTRET[]
            it_fieldcatalog = gt_fieldcat
            ************************************************
            donde:
            CHANGING
            it_outtab = TI_ZTFACTRET[]
            it_fieldcatalog = gt_fieldcat. ---> aqui es la estructura donde pones la cabecera

            y asi es como llenas los datos de la cabecera
            la declaracion es la siguiente
            data: gt_fieldcat type lvc_t_fcat.
            data: gs_fieldcat type lvc_s_fcat.

            FORM fill_catalog.
            DATA: l_tabname LIKE gs_fieldcat-tabname.
            l_tabname = 'TI_ZTFACTRET'.
            data ncol type i.
            *-Presentacion de Detalle de la Compra
            CLEAR gt_fieldcat. REFRESH gt_fieldcat.

            CLEAR gt_fieldcat.
            gs_fieldcat-row_pos = nrow.
            gs_fieldcat-col_pos = ncol.
            gs_fieldcat-tabname = CABECERA.
            gs_fieldcat-fieldname = 'AUFNR'.
            gs_fieldcat-seltext_l = 'xxxxxx' ---> aqui se cambia la cabecera
            gs_fieldcat-seltext_m = 'xxxxxx' ---> o
            gs_fieldcat-seltext_s = 'xxxxxx'.
            gs_fieldcat-outputlen = 12.


            APPEND gs_fieldcat TO gt_fieldcat.

            CLEAR gs_fieldcat.
            add 1 to ncol.
            gs_fieldcat-fieldname = 'ICON'.
            gs_fieldcat-tabname = l_tabname.
            gs_fieldcat-coltext = 'Estado.'.
            gs_fieldcat-col_pos = ncol.
            gs_fieldcat-fix_column = 'X'.
            gs_fieldcat-icon = 'X'.
            APPEND gs_fieldcat TO gt_fieldcat.
            CLEAR gs_fieldcat.
            add 1 to ncol.
            gs_fieldcat-tabname = l_tabname.
            gs_fieldcat-col_pos = ncol.
            gs_fieldcat-fix_column = 'X'.
            gs_fieldcat-fieldname = 'GJAHR'.
            gs_fieldcat-coltext = text-T02.
            gs_fieldcat-ref_table = 'ZTFCONSTDET'.
            APPEND gs_fieldcat TO gt_fieldcat.

            Comentario

            • yerotos
              Member
              • nov
              • 39

              #7
              Originalmente publicado por ibecerra
              OK.. Mira te falta esto

              * Inicializar el Layout
              ******************************************
              CALL METHOD grid1->set_table_for_first_display
              EXPORTING
              i_structure_name = 'TI_ZTFACTRET'
              is_layout = gs_layout
              is_variant = gs_variant
              i_save = ''
              i_default = 'X'
              it_toolbar_excluding = lt_toolbar_excluding
              CHANGING
              it_outtab = TI_ZTFACTRET[]
              it_fieldcatalog = gt_fieldcat
              ************************************************
              donde:
              CHANGING
              it_outtab = TI_ZTFACTRET[]
              it_fieldcatalog = gt_fieldcat. ---> aqui es la estructura donde pones la cabecera

              y asi es como llenas los datos de la cabecera
              la declaracion es la siguiente
              data: gt_fieldcat type lvc_t_fcat.
              data: gs_fieldcat type lvc_s_fcat.

              FORM fill_catalog.
              DATA: l_tabname LIKE gs_fieldcat-tabname.
              l_tabname = 'TI_ZTFACTRET'.
              data ncol type i.
              *-Presentacion de Detalle de la Compra
              CLEAR gt_fieldcat. REFRESH gt_fieldcat.

              CLEAR gt_fieldcat.
              gs_fieldcat-row_pos = nrow.
              gs_fieldcat-col_pos = ncol.
              gs_fieldcat-tabname = CABECERA.
              gs_fieldcat-fieldname = 'AUFNR'.
              gs_fieldcat-seltext_l = 'xxxxxx' ---> aqui se cambia la cabecera
              gs_fieldcat-seltext_m = 'xxxxxx' ---> o
              gs_fieldcat-seltext_s = 'xxxxxx'.
              gs_fieldcat-outputlen = 12.


              APPEND gs_fieldcat TO gt_fieldcat.

              CLEAR gs_fieldcat.
              add 1 to ncol.
              gs_fieldcat-fieldname = 'ICON'.
              gs_fieldcat-tabname = l_tabname.
              gs_fieldcat-coltext = 'Estado.'.
              gs_fieldcat-col_pos = ncol.
              gs_fieldcat-fix_column = 'X'.
              gs_fieldcat-icon = 'X'.
              APPEND gs_fieldcat TO gt_fieldcat.
              CLEAR gs_fieldcat.
              add 1 to ncol.
              gs_fieldcat-tabname = l_tabname.
              gs_fieldcat-col_pos = ncol.
              gs_fieldcat-fix_column = 'X'.
              gs_fieldcat-fieldname = 'GJAHR'.
              gs_fieldcat-coltext = text-T02.
              gs_fieldcat-ref_table = 'ZTFCONSTDET'.
              APPEND gs_fieldcat TO gt_fieldcat.


              Sería mucho pedir que me lo adaptaras a mi codigo? Siento ser tan pesado pero es que no consigo que me lo haga bien.

              El tema es que kiero q el campo edad de mi tabla IT_zt7ehs00_cardio en lugar de poner en la cabecera del alv INT2 (q es el tipo de datos de mi campo) ponga "EDAD"

              Si no puedes, te agradezco mucho de todas formas tu atención.

              Un saludo.

              Comentario

              • danny
                Member
                • mar
                • 36

                #8
                DATA: it_zt7ehs00_cardio TYPE STANDARD TABLE OF zt7ehs00_cardio.


                START-OF-SELECTION.

                SELECT * FROM zt7ehs00_cardio INTO TABLE it_zt7ehs00_cardio.

                LOOP AT it_zt7ehs00_cardio INTO wa_zt7ehs00_cardio.

                "-- Buscamos los puntos según la edad
                SELECT SINGLE points FROM zt7ehs_ries_edad
                INTO wa_zt7ehs00_cardio-puntos_edad
                WHERE limit_low <= wa_zt7ehs00_cardio-edad
                AND limit_high > wa_zt7ehs00_cardio-edad.

                MODIFY zt7ehs00_cardio FROM wa_zt7ehs00_cardio.

                PERFORM CARGA_ALV----CARGA TU ESTRUCTURA `PARA EL ALV
                PERFORM load_data_into_grid.

                SET SCREEN 100.
                endloop
                END-OF-SELECTION.



                FORM load_data_into_grid .
                CREATE OBJECT gr_alvgrid
                EXPORTING
                i_parent = contenedor.

                CALL METHOD gr_alvgrid->set_table_for_first_display
                EXPORTING
                i_default = 'X'
                CHANGING
                it_outtab = it_zt7ehs00_cardio.
                it_fieldcatalog = P_prue_fieldcat.
                ENDFORM. " load_data_into_grid

                FORM CARGA_ALV.

                * se supone k lo declaraste asi: P_prue_fieldcat TYPE lvc_t_fcat WITH HEADER LINE.


                Refresh P_prue_fieldcat.
                CLEAR P_prue_fieldcat.
                P_prue_fieldcat-fieldname = 'EDAD'.
                P_prue_fieldcat-coltext = 'Edad'.
                P_prue_fieldcat-outputlen = 6.
                APPEND P_prue_fieldcat.

                *asi lo haces para todos los campos de tu temporal it_zt7ehs00_cardio



                ENDFORM.

                Comentario

                • yerotos
                  Member
                  • nov
                  • 39

                  #9
                  Originalmente publicado por danny
                  DATA: it_zt7ehs00_cardio TYPE STANDARD TABLE OF zt7ehs00_cardio.


                  START-OF-SELECTION.

                  SELECT * FROM zt7ehs00_cardio INTO TABLE it_zt7ehs00_cardio.

                  LOOP AT it_zt7ehs00_cardio INTO wa_zt7ehs00_cardio.

                  "-- Buscamos los puntos según la edad
                  SELECT SINGLE points FROM zt7ehs_ries_edad
                  INTO wa_zt7ehs00_cardio-puntos_edad
                  WHERE limit_low <= wa_zt7ehs00_cardio-edad
                  AND limit_high > wa_zt7ehs00_cardio-edad.

                  MODIFY zt7ehs00_cardio FROM wa_zt7ehs00_cardio.

                  PERFORM CARGA_ALV----CARGA TU ESTRUCTURA `PARA EL ALV
                  PERFORM load_data_into_grid.

                  SET SCREEN 100.
                  endloop
                  END-OF-SELECTION.



                  FORM load_data_into_grid .
                  CREATE OBJECT gr_alvgrid
                  EXPORTING
                  i_parent = contenedor.

                  CALL METHOD gr_alvgrid->set_table_for_first_display
                  EXPORTING
                  i_default = 'X'
                  CHANGING
                  it_outtab = it_zt7ehs00_cardio.
                  it_fieldcatalog = P_prue_fieldcat.
                  ENDFORM. " load_data_into_grid

                  FORM CARGA_ALV.

                  * se supone k lo declaraste asi: P_prue_fieldcat TYPE lvc_t_fcat WITH HEADER LINE.


                  Refresh P_prue_fieldcat.
                  CLEAR P_prue_fieldcat.
                  P_prue_fieldcat-fieldname = 'EDAD'.
                  P_prue_fieldcat-coltext = 'Edad'.
                  P_prue_fieldcat-outputlen = 6.
                  APPEND P_prue_fieldcat.

                  *asi lo haces para todos los campos de tu temporal it_zt7ehs00_cardio



                  ENDFORM.
                  1 millon de gracias a los 2.
                  He adapatado el codigo a mi programa y al compilarlo me dice que el campo IT_FIELDCATALOG es desconocido. Como ten go que declarar esta tabla, yo pensaba q era publica con el metodo.

                  Comentario

                  • yerotos
                    Member
                    • nov
                    • 39

                    #10
                    Ups, ya se lo que era, era que había puesto un punto donde no debía, lo siento...

                    Ahora el mensaje que me da es:
                    "P_PRUE_FIELDCAT" is not type-compatible with formal parameter "IT_FIELDCATALOG".

                    Tengo P_PRUE_FIELDCAT declarado como tabla con header line.

                    Comentario

                    • yerotos
                      Member
                      • nov
                      • 39

                      #11
                      Por fin lo solucioné, ya di con el problema, muchisimas gracias a los 2.

                      Un saludo soy unos cracks.

                      Comentario

                      Trabajando...