* Fala Galera, hoje vamos dar andamento do Post anterior onde vamos brincar
* um pouco mais com os Container criados e vamos colocar ações no alv Editável.
* - Primeira coisa vamos trabalhar com evento do ALV para identificar o Duplo
* clique.
* - Cada duplo clique identificado irá atualizar outro alv de outro container.
* Esse esquema de duplo clique faz com que os usuários te idolatrem, e
* não tem nada de difícil, então vamos pro código abaixo.
* Ahhhh.... Opinião, sugestão e críticas serão sempre bem vindas.... Valeo.
*&---------------------------------------------------------------------*
REPORT zcl_gui_splitter_container.
*Tipos
*&---------------------------------------------------------------------*
TYPES :
BEGIN OF ty_spfli,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF ty_spfli
.
* Criação da classe que identifica o Method com o evento do alv.
*----------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click_header
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no,
handle_double_click_item
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no.
ENDCLASS. "lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
METHOD
handle_double_click_header.
PERFORM f_handler_dp_header USING e_row e_column es_row_no.
ENDMETHOD. "handle_double_click_header
METHOD
handle_double_click_item.
PERFORM f_handler_dp_item USING e_row e_column es_row_no.
ENDMETHOD. "handle_double_click_item
ENDCLASS. "lcl_event_handler IMPLEMENTATION
* Tabelas internas
*&---------------------------------------------------------------------*
DATA :
t_spfli TYPE TABLE OF ty_spfli,
t_fcat_spfli TYPE TABLE OF lvc_s_fcat,
t_sflight TYPE TABLE OF sflight,
t_fcat_sflight TYPE TABLE OF lvc_s_fcat,
t_saplane TYPE TABLE OF saplane,
t_fcat_saplane TYPE TABLE OF lvc_s_fcat.
* Objetos
*&---------------------------------------------------------------------*
DATA :
o_docking TYPE REF TO cl_gui_docking_container,
o_splitter TYPE REF TO cl_gui_splitter_container
.
DATA :
o_container_spfli TYPE REF TO cl_gui_container,
o_container_sflight TYPE REF TO cl_gui_container,
o_container_saplane TYPE REF TO cl_gui_container,
o_alv_spfli TYPE REF TO cl_gui_alv_grid,
o_alv_sflight TYPE REF TO cl_gui_alv_grid,
o_alv_saplane TYPE REF TO cl_gui_alv_grid,
* olha aqui o objeto com referencia a classe que acabamos de criar acima.
o_handler TYPE REF TO lcl_event_handler
.
* um pouco mais com os Container criados e vamos colocar ações no alv Editável.
* - Primeira coisa vamos trabalhar com evento do ALV para identificar o Duplo
* clique.
* - Cada duplo clique identificado irá atualizar outro alv de outro container.
* Esse esquema de duplo clique faz com que os usuários te idolatrem, e
* não tem nada de difícil, então vamos pro código abaixo.
* Ahhhh.... Opinião, sugestão e críticas serão sempre bem vindas.... Valeo.
*&---------------------------------------------------------------------*
REPORT zcl_gui_splitter_container.
*Tipos
*&---------------------------------------------------------------------*
TYPES :
BEGIN OF ty_spfli,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF ty_spfli
.
* Criação da classe que identifica o Method com o evento do alv.
*----------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click_header
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no,
handle_double_click_item
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no.
ENDCLASS. "lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
METHOD
handle_double_click_header.
PERFORM f_handler_dp_header USING e_row e_column es_row_no.
ENDMETHOD. "handle_double_click_header
METHOD
handle_double_click_item.
PERFORM f_handler_dp_item USING e_row e_column es_row_no.
ENDMETHOD. "handle_double_click_item
ENDCLASS. "lcl_event_handler IMPLEMENTATION
* Tabelas internas
*&---------------------------------------------------------------------*
DATA :
t_spfli TYPE TABLE OF ty_spfli,
t_fcat_spfli TYPE TABLE OF lvc_s_fcat,
t_sflight TYPE TABLE OF sflight,
t_fcat_sflight TYPE TABLE OF lvc_s_fcat,
t_saplane TYPE TABLE OF saplane,
t_fcat_saplane TYPE TABLE OF lvc_s_fcat.
* Objetos
*&---------------------------------------------------------------------*
DATA :
o_docking TYPE REF TO cl_gui_docking_container,
o_splitter TYPE REF TO cl_gui_splitter_container
.
DATA :
o_container_spfli TYPE REF TO cl_gui_container,
o_container_sflight TYPE REF TO cl_gui_container,
o_container_saplane TYPE REF TO cl_gui_container,
o_alv_spfli TYPE REF TO cl_gui_alv_grid,
o_alv_sflight TYPE REF TO cl_gui_alv_grid,
o_alv_saplane TYPE REF TO cl_gui_alv_grid,
* olha aqui o objeto com referencia a classe que acabamos de criar acima.
o_handler TYPE REF TO lcl_event_handler
.