✒️ABAP POO El evento double click del ALV GRID CONTROL
ABAP POO El evento double click del ALV GRID CONTROL
Evento Double Click del ALV Grid Control
¿Cómo hacer que un informe de ALV responda a los clics de un punto de acceso? Una breve demostración sobre los clics en puntos de acceso, los clics dobles, las selecciones de ALV y las acciones del menú de manejo. Para los campos clave de otros documentos, puede hacer que el informe sea más interactivo con la función de desglose para obtener información más detallada. Para responder a un doble clic (o un solo clic / clic de otspot), deberá configurar un método al que se llamará responder al doble clic real. Para hacer esto, se agrega una clase local al programa completando su definición y su implementación.
1- Definir una clase local (controlador) - lcl_event_manager
2- El administrador de eventos debe tener un constructor y un método para manejar las acciones de los comandos del usuario, hacer doble clic y hacer clic en el punto de acceso. Cada método debe configurarse para responder a un evento (respectivamente: added_function, double_click o click_link)
3- El constructor debe "establecer controladores" para los eventos, lo que hará que la clase (local) responda a los eventos reales.
4- Cada método se activará cuando se lance el evento, y para cada método hay disponible un ejemplo de respuesta de procesamiento en el ejemplo.
5- El modo de selección para el total del ALV se estableció en 2, selección múltiple
6- El procesamiento de comandos de usuario ('DO_IT') se simula escribiéndolo directamente en el cuadro de comando (no es posible agregar un menú en un ejemplo de codificación abap "listo para copiar", por lo que tendrá que configurar su propio menú)
7- Tenga en cuenta que se debe establecer un campo en "hotspot" para que la configuración del enlace de clic funcione; en el ejemplo, esto se hizo con el campo matnr
Programa de Ejemplo.
*&---------------------------------------------------------------------*
*& Report ZALV_GRID_SFLIGHT4_ESTGB93C
*& Ejercicio 4 de ALV GRID
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZALV_GRID_SFLIGHT5_ESTGB93C.
TYPE-POOLS: slis,
icon,
col.
* Tabla de salida del ALV
DATA: BEGIN OF wa_vuelos,
icono_estado_vuelo TYPE icon-id, "Icono de estado del vuelo
carrid TYPE s_carr_id, "Denominación breve de la compañía aérea
connid TYPE s_conn_id, "Código de conexión de vuelo directo
fldate TYPE s_date, "Fecha de vuelo
price TYPE s_price, "Precio del vuelo
currency TYPE s_currcode, "Moneda local de la compañía aérea
planetype TYPE s_planetye, "Tipo de avión
seatsmax TYPE s_seatsmax, "Ocupación máxima en clase económica
seatsocc TYPE s_seatsocc, "Plazas ocupadas en clase económica
color(4) TYPE c, "Color de la lineas del ALV
END OF wa_vuelos.
*Tabla para la salida de SFLIGHTS en el ALV GRID pasada como parametro
DATA: it_sflight LIKE TABLE OF wa_vuelos,
linea_sflight LIKE LINE OF it_sflight,
*Tabla y estructura para el catalogo
it_catalogo TYPE lvc_t_fcat,
linea_catalogo LIKE LINE OF it_catalogo,
*Tabla para el Layout.
it_layout TYPE lvc_s_layo.
* Tabla y estructura de ordenamiento
DATA: ti_sort TYPE lvc_t_sort,
st_sort TYPE lvc_s_sort.
* Tabla para excluir botones
DATA: ti_excluir_funciones TYPE ui_functions.
DATA: ok_code TYPE sy-ucomm,
it_grid TYPE REF TO cl_gui_alv_grid,
it_container TYPE REF TO cl_gui_custom_container.
*----------------------------------------------------------------------*
* CLASS EVENTO_MANEJADOR DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_evento_manejador DEFINITION.
PUBLIC SECTION.
CLASS-METHODS on_doble_click FOR EVENT double_click
OF cl_gui_alv_grid
IMPORTING es_row_no e_column.
ENDCLASS. "EVENTO_MANEJADOR DEFINITION
*----------------------------------------------------------------------*
* CLASS evento_manejador IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_evento_manejador IMPLEMENTATION.
METHOD on_doble_click.
MESSAGE i000(z_mensaje) WITH 'Fila: ' es_row_no-row_id
'Columna: ' e_column-fieldname.
ENDMETHOD. "on_doble_click
"on_doble_click
ENDCLASS. "evento_manejador IMPLEMENTA
START-OF-SELECTION.
PERFORM leer_datos_sflight.
END-OF-SELECTION.
CALL SCREEN 0100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '0100'.
SET TITLEBAR '0100'.
 
 
 
Sobre el autor
Publicación académica de Enrique Horacio Lugo Lander, en su ámbito de estudios para el Máster ABAP POO.
Enrique Horacio Lugo Lander
Profesión: Tsu en Informática - Argentina - Legajo: GB93C
✒️Autor de: 30 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Enrique Lugo