report zsalv_045 .
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
class lcl_handle_events definition.
public section.
methods:
on_user_command for event added_function of cl_salv_events
importing e_salv_function.
endclass. "lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
method on_user_command.
perform handle_user_command using e_salv_function.
endmethod. "on_user_command
endclass. "lcl_handle_events IMPLEMENTATION
class lcl_report definition.
public section.
types: ty_t_sflights type standard table of sflights.
data: t_data type ty_t_sflights.
data: o_salv type ref to cl_salv_table.
data: o_salv_model type ref to lcl_salv_model.
methods:
get_data,
generate_output.
endclass. "lcl_report DEFINITION
data gt_itab type table of sflight.
data gr_table type ref to cl_salv_table.
data gr_event type ref to lcl_handle_events.
data gr_functions type ref to cl_salv_functions_list.
data gr_container type ref to cl_gui_custom_container.
data ok_code type syucomm.
start-of-selection.
select * from sflight into table gt_itab
up to 25 rows.
call screen 100.
*&---------------------------------------------------------------------*
*& Module 0100_PBO OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module 0100_pbo output.
set pf-status '0100'.
if gr_container is not bound.
*1. 컨테이너 생성
create object gr_container
exporting
container_name = 'CONTAINER'.
*2. ALV 테이블 및 데이터 전달
cl_salv_table=>factory(
exporting
r_container = gr_container
container_name = 'CONTAINER'
importing
r_salv_table = gr_table
changing
t_table = gt_itab ).
*3. ALV 기본 기능 버튼 설정
gr_functions = gr_table->get_functions( ).
* gr_functions->set_default( ).
gr_functions->set_all( abap_true ).
include <icon>.
data : l_icon type string.
l_icon = icon_refresh.
gr_functions->add_function(
name = 'REFRESH'
icon = l_icon
text = 'REFRESH'
tooltip = 'REFRESH'
position = if_salv_c_function_position=>right_of_salv_functions
).
*4. 이벤트 등록
data lr_event type ref to cl_salv_events_table.
lr_event = gr_table->get_event( ).
create object gr_event.
set handler gr_event->on_user_command for lr_event.
*5. ALV 호출
gr_table->display( ).
endif.
endmodule. " 0100_PBO OUTPUT
*&---------------------------------------------------------------------*
*& Module 0100_PAI INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module 0100_pai input.
case ok_code.
when 'BACK' or 'EXIT' or 'CANC'.
set screen 0.
leave screen.
endcase.
endmodule. " 0100_PAI INPUT
*&---------------------------------------------------------------------*
*& Form HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
form handle_user_command using p_function type salv_de_function.
data: lo_grid type ref to cl_gui_alv_grid,
lo_full_adap type ref to cl_salv_fullscreen_adapter.
data: ls_layout type lvc_s_layo.
data: lo_report type ref to lcl_report.
case p_function.
when 'REFRESH'.
* Contorller
call method lo_report->o_salv_model->grabe_controller.
* Adapter
call method lo_report->o_salv_model->grabe_adapter.
* Fullscreen Adapter (Down Casting)
lo_full_adap ?= lo_report->o_salv_model->o_adapter.
* Get the Grid
lo_grid = lo_full_adap->get_grid( ).
* Got the Grid .. ?
if lo_grid is bound.
* Editable ALV
ls_layout-edit = 'X'.
* Set the front layout of ALV
call method lo_grid->set_frontend_layout
exporting
is_layout = ls_layout.
* refresh the table
call method lo_grid->refresh_table_display.
endif.
when others.
endcase.
endform. "handle_user_command
*&---------------------------------------------------------------------*
*& Form REFRESH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form refresh .
select * from sflight
into corresponding fields of table gt_itab
up to 10 rows.
gr_table->refresh( ).
endform. " REFRESH
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
669 | REPORT Z06_01. | sapjoy | 2024.04.20 | 14 |
668 | REPORT z05_36 | sapjoy | 2023.02.07 | 243 |
667 | z15_21_drag | sapjoy | 2022.02.24 | 269 |
666 | Z18_06_DRAGCLASS | sapjoy | 2022.02.22 | 296 |
665 | API | sapjoy | 2022.11.02 | 316 |
664 | REPORT z10_02. | sapjoy | 2012.07.30 | 779 |
663 | REPORT Z11_09. | sapjoy | 2012.07.30 | 780 |
662 | REPORT Z11_04 . | sapjoy | 2012.07.30 | 786 |
661 | REPORT Z11_03. | sapjoy | 2012.07.30 | 795 |
660 | REPORT z11_05. | sapjoy | 2012.07.30 | 797 |
659 | REPORT z14_13. | sapjoy | 2012.08.01 | 798 |
658 | REPORT z14_09. | sapjoy | 2012.08.01 | 800 |
657 | REPORT Z11_08. | sapjoy | 2012.07.30 | 805 |
656 | REPORT z08_05. | sapjoy | 2012.07.30 | 809 |
655 | REPORT z10_06. | sapjoy | 2012.07.30 | 813 |
654 | REPORT z05_14. | sapjoy | 2012.07.30 | 814 |
653 | REPORT Z05_32. | sapjoy | 2012.07.30 | 816 |
652 | REPORT z08_03. | sapjoy | 2012.07.30 | 817 |
651 | REPORT z10_11. | sapjoy | 2012.07.30 | 817 |
650 | REPORT Z12_03 | sapjoy | 2012.07.30 | 818 |