lunes, 13 de septiembre de 2010

la clase cl_salv_table

*&---------------------------------------------------------------------*
*& Report  ZCL_SALV_TABLE_1
*&
*&---------------------------------------------------------------------*
*&Manejo de ALV con la clase cl_salv_table
*&Uso simple
*&---------------------------------------------------------------------*

REPORT  ZCL_SALV_TABLE_1.

DATA: alv_table type REF TO cl_salv_table, "referencia a la clase table del alv
      it_sflight TYPE TABLE OF sflight.    "Tabla Interna para el query


  SELECT * INTO CORRESPONDING FIELDS OF TABLE it_sflight
                  FROM sflight WHERE carrid = 'AA'.

*TRY.
  CALL METHOD CL_SALV_TABLE=>FACTORY
  EXPORTING
    LIST_DISPLAY   = abap_true "Modo Lista
*    R_CONTAINER    =
*    CONTAINER_NAME =
    IMPORTING
      R_SALV_TABLE   = alv_table "importo el alv creado por la clase
    CHANGING
      T_TABLE        = it_sflight. "tabla interna de datos
  .
* CATCH CX_SALV_MSG .
*ENDTRY.

  DATA: lr_columns TYPE REF TO cl_salv_columns_table,
     lr_column  TYPE REF TO cl_salv_column.
* edit ALV columns
 lr_columns = alv_table->get_columns( ).
* optimize output
 lr_columns->set_optimize( 'X' ).

*----------------------------------------------------------------------*
*  Doy datos a la cabecera de las columnas
*----------------------------------------------------------------------*
 TRY.
     lr_column = lr_columns->get_column( 'CARRID' ).
     lr_column->set_long_text( 'Vuelos' ).
     lr_column->set_medium_text( 'Vuelos' ).
     lr_column->set_short_text( 'Vuelos' ).
     lr_column = lr_columns->get_column( 'MANDT' ).
     lr_column->set_long_text( 'Cliente' ).
     lr_column->set_medium_text( 'Cliente' ).
     lr_column->set_short_text( 'Cliente' ).
   CATCH cx_salv_not_found.
   CATCH cx_salv_existing.
   CATCH cx_salv_data_error.
 ENDTRY.

*----------------------------------------------------------------------*
* Establezco los botones default de un alv standart
*----------------------------------------------------------------------*
  data: gr_functions type ref to cl_salv_functions_list.
  gr_functions = alv_table->get_functions( ).
  gr_functions->set_default( ).
* gr_functions->set_all( ).

  CALL METHOD alv_table->DISPLAY( ). "Muestro ALV

1 comentario: