메뉴 건너뛰기

SAP 한국 커뮤니티

report zsalv_045 .

sapjoy 2010.08.20 11:01 조회 수 : 4262

 

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
번호 제목 글쓴이 날짜 조회 수
669 <b>easy abap 소스 전체 파일 입니다. [188] file sapjoy 2008.05.01 10120
668 REPORT z18_033 [47] sapjoy 2008.10.13 9031
667 REPORT Z15_003 [49] sapjoy 2008.04.15 7498
666 report zunicode_027. [4] sapjoy 2008.11.21 6262
665 REPORT Z20_01. sapjoy 2012.08.01 5056
664 REPORT z18_03. sapjoy 2012.08.01 4550
663 Z01_012 [9] sapjoy 2006.12.02 4543
662 Z_EXPORT_GRAPHIC_FROM_SE78 [1] sapjoy 2011.03.28 4443
661 report zsapdoi_002. sapjoy 2008.12.26 4405
660 REPORT zsmw0010 sapjoy 2010.10.11 4313
659 REPORT z18_028 sapjoy 2007.04.09 4278
» report zsalv_045 . sapjoy 2010.08.20 4262
657 Dynamic Table Maintenance [1] sapjoy 2006.12.04 4093
656 REPORT ZTABLE_UTIL sapjoy 2010.10.09 4010
655 REPORT Z19_02. sapjoy 2012.08.01 3921
654 report zsaptip_009 [1] sapjoy 2010.12.10 3852
653 INCLUDE ZXF04U01 sapjoy 2008.12.15 3695
652 REPORT ZTEST_ABAPTPDF sapjoy 2010.10.09 3691
651 REPORT Z_3DGRAPH. [1] sapjoy 2010.10.17 3659
650 REPORT zfalv_011. sapjoy 2011.02.16 3624