Creación de una tabla dinámica

Administrador mayo 29, 2022


Una tabla dinámica se puede crear desde dos diferentes maneras:  

  • A través del Catalogo del ALV 
  • Agregando campos uno a uno 

Catalogo ALV 

  DATA: l_dr_i_table    TYPE REF TO data.               “Tabla de Referencia 

* Creacion de la Tabla 

  CALL METHOD cl_alv_table_create=>create_dynamic_table 

    EXPORTING 

      i_style_table             = c_x 

      it_fieldcatalog           = fp_l_i_fieldcat 

    IMPORTING 

      ep_table                  = l_dr_i_table 

    EXCEPTIONS 

      generate_subpool_dir_full = 1 

      OTHERS                    = 2. 

* Asignacion de la Tabla 

  ASSIGN l_dr_i_table->* TO <i_market_alv>. 

Agregar Campos uno a uno 

  DATA: l_dr_table   TYPE REF TO cl_rs_struc,     “Str Class 

        l_dr_data    TYPE REF TO data.            “Table Data 

* Create Object for Dynamic Structure 

  CREATE OBJECT l_dr_table. 

* Add Fields 

  CALL METHOD l_dr_table->add_element 

    EXPORTING 

      i_sconame = c_locno 

      i_type    = ‘/SAPAPO/LOCNO’. 

  DO p_weeks TIMES. 

    l_v_week = l_v_week + 1. 

    IF l_v_week+4(2) GT 52. 

      l_v_week+4(2) = ’01’. 

      l_v_week(4) = l_v_week(4) + 1. 

    ENDIF. 

    l_v_title = l_v_week+4(2). 

    CALL METHOD l_dr_table->add_element 

      EXPORTING 

        i_sconame = l_v_title 

        i_type    = ‘/SCL/MRP_MARKETRET’. 

  ENDDO. “DO p_weeks TIMES. 

* Create Structure 

  CALL METHOD l_dr_table->create 

    EXPORTING 

      i_dynamic              = space 

    RECEIVING 

      r_r_data               = l_dr_data 

    EXCEPTIONS 

      wrong_struc_definition = 1 

      no_struc_definition    = 2 

      OTHERS                 = 3. 

  ASSIGN l_dr_data->* TO <l_wa_table>. 


Temas