Que ocurre en el fieldcatalog de mi ALV GRID?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • vic3
    Member
    • mar
    • 33

    #1

    Que ocurre en el fieldcatalog de mi ALV GRID?

    Buenos días,

    tengo creada una Librería con rutinas y eventos de mi ALV GRID

    En mi Form: ALV_GRID_GET_FIELD_CATALOG

    ************************************************** ************************************************** ********************
    FORM ALV_GRID_GET_FIELD_CATALOG USING P_NOMBRE_TABLA CHANGING CT_FIELDCATALOG TYPE LVC_T_FCAT.

    FIELD-SYMBOLS <TABLE> TYPE ANY. "TABLE.
    FIELD-SYMBOLS <LS_FCAT> TYPE LVC_S_FCAT.

    DATA SALV_TABLE TYPE REF TO CL_SALV_TABLE.

    REFRESH CT_FIELDCATALOG.

    UNASSIGN <TABLE>.
    ASSIGN (P_NOMBRE_TABLA) TO <TABLE>.

    TRY.
    CL_SALV_TABLE=>FACTORY( IMPORTING
    R_SALV_TABLE = SALV_TABLE
    CHANGING
    T_TABLE = <TABLE> ).

    ----------------------------------------------------------
    CT_FIELDCATALOG = CL_SALV_CONTROLLER_METADATA=>GET_LVC_FIELDCATALOG(
    r_column = SALV_TABLE->get_columns( )
    R_AGGREGATIONS = SALV_TABLE->GET_AGGREGATIONS( )
    ).

    ----------------------------------------------------------

    CATCH CX_ROOT.
    MESSAGE E001(00) WITH 'Error programacion: Error al obtener el Field Catalog'.
    ENDTRY.

    DELETE CT_FIELDCATALOG WHERE FIELDNAME = 'MANDT'.

    LOOP AT CT_FIELDCATALOG ASSIGNING <LS_FCAT> WHERE REPTEXT = ''.
    <LS_FCAT>-REPTEXT = <LS_FCAT>-FIELDNAME.
    ENDLOOP.

    ENDFORM. " ALV_GRID_GET_FIELD_CATALOG
    ************************************************** ************************************************** ********************


    Tengo problemas en la parte del código señalada y no se por que... Agradecería vuestra ayuda, un saludo
    Editado por última vez por vic3; 25/04/2017, 10:24:53.
    Consultor técnico SAP
  • omegaotaku
    Member
    • nov
    • 43

    #2
    Originalmente publicado por vic3
    Buenos días,

    tengo creada una Librería con rutinas y eventos de mi ALV GRID

    En mi Form: ALV_GRID_GET_FIELD_CATALOG

    ************************************************** ************************************************** ********************
    FORM ALV_GRID_GET_FIELD_CATALOG USING P_NOMBRE_TABLA CHANGING CT_FIELDCATALOG TYPE LVC_T_FCAT.

    FIELD-SYMBOLS <TABLE> TYPE ANY. "TABLE.
    FIELD-SYMBOLS <LS_FCAT> TYPE LVC_S_FCAT.

    DATA SALV_TABLE TYPE REF TO CL_SALV_TABLE.

    REFRESH CT_FIELDCATALOG.

    UNASSIGN <TABLE>.
    ASSIGN (P_NOMBRE_TABLA) TO <TABLE>.

    TRY.
    CL_SALV_TABLE=>FACTORY( IMPORTING
    R_SALV_TABLE = SALV_TABLE
    CHANGING
    T_TABLE = <TABLE> ).

    ----------------------------------------------------------
    CT_FIELDCATALOG = CL_SALV_CONTROLLER_METADATA=>GET_LVC_FIELDCATALOG(
    r_column = SALV_TABLE->get_columns( )
    R_AGGREGATIONS = SALV_TABLE->GET_AGGREGATIONS( )
    ).

    ----------------------------------------------------------

    CATCH CX_ROOT.
    MESSAGE E001(00) WITH 'Error programacion: Error al obtener el Field Catalog'.
    ENDTRY.

    DELETE CT_FIELDCATALOG WHERE FIELDNAME = 'MANDT'.

    LOOP AT CT_FIELDCATALOG ASSIGNING <LS_FCAT> WHERE REPTEXT = ''.
    <LS_FCAT>-REPTEXT = <LS_FCAT>-FIELDNAME.
    ENDLOOP.

    ENDFORM. " ALV_GRID_GET_FIELD_CATALOG
    ************************************************** ************************************************** ********************


    Tengo problemas en la parte del código señalada y no se por que... Agradecería vuestra ayuda, un saludo
    Buenos días. Por empezar a CL_SALV_TABLE le tiene que pasar una tabla no una estructura:

    MAL:

    CL_SALV_TABLE=>FACTORY( IMPORTING
    R_SALV_TABLE = SALV_TABLE
    CHANGING
    T_TABLE = <TABLE> ).

    BIEN

    cl_salv_table=>factory( IMPORTING
    r_salv_table = salv_table
    CHANGING
    t_table = p_nombre_tabla ).

    p_nombre_tabla debe ser del mismo tipo que recibe.

    Y tenes otro error de ortografía en r_column:

    MAL:

    ct_fieldcatalog = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
    r_column = salv_table->get_columns( )
    r_aggregations = salv_table->get_aggregations( )
    ).

    BIEN:

    ct_fieldcatalog = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
    r_columns = salv_table->get_columns( )
    r_aggregations = salv_table->get_aggregations( )
    ).

    Saludos.

    Comentario

    • vic3
      Member
      • mar
      • 33

      #3
      Originalmente publicado por omegaotaku
      Buenos días. Por empezar a CL_SALV_TABLE le tiene que pasar una tabla no una estructura:

      MAL:

      CL_SALV_TABLE=>FACTORY( IMPORTING
      R_SALV_TABLE = SALV_TABLE
      CHANGING
      T_TABLE = <TABLE> ).

      BIEN

      cl_salv_table=>factory( IMPORTING
      r_salv_table = salv_table
      CHANGING
      t_table = p_nombre_tabla ).

      p_nombre_tabla debe ser del mismo tipo que recibe.

      Y tenes otro error de ortografía en r_column:

      MAL:

      ct_fieldcatalog = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
      r_column = salv_table->get_columns( )
      r_aggregations = salv_table->get_aggregations( )
      ).

      BIEN:

      ct_fieldcatalog = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
      r_columns = salv_table->get_columns( )
      r_aggregations = salv_table->get_aggregations( )
      ).

      Saludos.

      Gracias por la respuesta, se agradece tu atención. Un saludo.
      Consultor técnico SAP

      Comentario

      Trabajando...