*&---------------------------------------------------------------------*
*& Report ZCL_SALV_TABLE_2
*&
*&---------------------------------------------------------------------*
*&Manejo de ALV con la clase cl_salv_table
*&Mas Funciones de la clase para editar y colorear celdas
*&---------------------------------------------------------------------*
REPORT ZCL_SALV_TABLE_2.
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
g_color TYPE lvc_s_colo. "Estructura para agregar color a las columnas
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_table. "Referencia para editar columnas
* edit ALV columns
lr_columns = alv_table->get_columns( ).
*----------------------------------------------------------------------*
* 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' ).
"Para poner color a una columna
lr_column ?= lr_columns->get_column( 'CONNID' ).
g_color-col = '6'.
g_color-int = '1'.
g_color-inv = '0'.
lr_column->set_color( g_color ).
CATCH cx_salv_not_found.
CATCH cx_salv_existing.
CATCH cx_salv_data_error.
ENDTRY.
* optimize output
lr_columns->set_optimize( 'X' ). "quito espacios en las celdas q muestran los datos
*----------------------------------------------------------------------*
* 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

No hay comentarios:
Publicar un comentario