메뉴 건너뛰기

SAP 한국 커뮤니티

REPORT z18_038

sapjoy 2008.04.22 05:40 조회 수 : 2636

 

REPORT  z18_038                                                     .

DATA : con1_ref TYPE REF TO cl_gui_custom_container.

DATA : grid1  TYPE REF TO cl_gui_alv_grid,
       gs_variant     LIKE disvariant,
       gs_cs_variant  LIKE disvariant,
       gs_layout     TYPE lvc_s_layo,
       gs_toolbar    TYPE ui_functions,
       gt_sort       TYPE lvc_t_sort,
       gt_fieldcat   TYPE lvc_t_fcat.

DATABEGIN OF gt_sflight OCCURS 0.     "with header line
        INCLUDE STRUCTURE sflight.
DATAEND OF gt_sflight.

data : gt_modified_rows TYPE STANDARD TABLE OF sflight.

DATA: g_carrid LIKE sflight-carrid,
      g_connid LIKE sflight-connid.

TYPE-POOLS: icon.

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.
    METHODS:
      handle_data_changed
         FOR EVENT data_changed OF cl_gui_alv_grid
             IMPORTING er_data_changed.

ENDCLASS.
**---------------------------------------------------------
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_data_changed.
    DATA:
           ls_sflight TYPE sflight,
           ls_outtab LIKE LINE OF gt_sflight.

    FIELD-SYMBOLS: <fs> TYPE table.

    ASSIGN er_data_changed->mp_mod_rows->* TO <fs>.
    LOOP AT <fs> INTO ls_outtab.
      MOVE-CORRESPONDING ls_outtab TO ls_sflight.
      APPEND ls_sflight TO gt_modified_rows.
    ENDLOOP.

  ENDMETHOD.                    "handle_data_changed
endclass.
*-----------------------------------------------------------------------

*-------------------------------------------------------


  DATA: g_verifier TYPE REF TO lcl_event_receiver.

START-OF-SELECTION.
  SELECT * FROM sflight
  INTO CORRESPONDING FIELDS OF TABLE gt_sflight.

  CALL SCREEN 100.





*---------------------------------------------------------------------*
*  MODULE init_con OUTPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE init_con OUTPUT.

  IF con1_ref IS INITIAL.
    CREATE OBJECT con1_ref
    EXPORTING container_name = 'CON1'.


    CREATE OBJECT grid1
           EXPORTING
                i_parent = con1_ref.

    CREATE OBJECT g_verifier.
    SET HANDLER g_verifier->handle_data_changed FOR grid1.


    PERFORM setting_layout.
    PERFORM setting_catalog.
    PERFORM setting_toolbar.
    PERFORM setting_sort.
    PERFORM setting_event.

    CALL METHOD grid1->set_table_for_first_display
      EXPORTING
        i_structure_name     = 'SFLIGHT'
        i_save               = 'A'
        is_variant           = gs_variant  " variant display
        i_default            = ' '
        is_layout            = gs_layout
        it_toolbar_excluding = gs_toolbar
      CHANGING
        it_outtab            = gt_sflight[]
        it_fieldcatalog      = gt_fieldcat
        it_sort              = gt_sort.

*CALL METHOD GRID1->SET_READY_FOR_INPUT
*   EXPORTING I_READY_FOR_INPUT = 0.



  ENDIF.
ENDMODULE.                 " init_con  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'G100'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANC'.
      LEAVE TO SCREEN 0.
    WHEN 'SAVE'.
      DATA: l_valid TYPE c.
      CALL METHOD grid1->check_changed_data
        IMPORTING
          e_valid = l_valid.

      IF l_valid IS NOT INITIAL.

        PERFORM update_database.

      ENDIF.

  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Form  setting_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GS_LAYOCAT  text
*----------------------------------------------------------------------*
FORM setting_layout .
*- General display options
  gs_layout-cwidth_opt = 'X'.
* TITLE BAR
  gs_layout-grid_title = 'ALV GRID EDIT TEST'.
*  gs_layout-edit = 'X'.
* Selection modes for SEL_MODE
  gs_layout-sel_mode = 'D'.
* Grid pattern
*  gs_layout-zebra      = 'X'.
ENDFORM.                    " setting_layout
*&---------------------------------------------------------------------*
*&      Form  setting_toolbar
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GS_TOOLBAR  text
*----------------------------------------------------------------------*
FORM setting_toolbar.
  DATA: l_exclude TYPE ui_func.

  l_exclude = cl_gui_alv_grid=>mc_fc_save_variant.
  APPEND l_exclude TO gs_toolbar.

  l_exclude = cl_gui_alv_grid=>mc_fc_maintain_variant.
  APPEND l_exclude TO gs_toolbar.

ENDFORM.                    " setting_toolbar
*&---------------------------------------------------------------------*
*&      Form  setting_sort
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM setting_sort .

  DATA : ls_sort TYPE lvc_s_sort.

  ls_sort-spos = '1'.
  ls_sort-fieldname = 'CARRID'.
  ls_sort-up = 'X'.
  ls_sort-subtot = 'X'.
  APPEND ls_sort TO gt_sort.

ENDFORM.                    " setting_sort
*&---------------------------------------------------------------------*
*&      Form  setting_event
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM setting_event .
*  CREATE OBJECT event_receiver.


ENDFORM.                    " setting_event
*&---------------------------------------------------------------------*
*&      Form  setting_catalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM setting_catalog .
  DATA ls_fieldcat  TYPE lvc_s_fcat.

  ls_fieldcat-fieldname = 'CARRID'.
  ls_fieldcat-coltext = 'Carrid ID'.
  ls_fieldcat-just = 'L'.
  ls_fieldcat-key = 'X'.
  ls_fieldcat-edit = ''.
  ls_fieldcat-outputlen = '2'.

  APPEND ls_fieldcat TO gt_fieldcat.


  ls_fieldcat-fieldname = 'CONNID'.
  ls_fieldcat-coltext = 'Flight Number'.
  ls_fieldcat-just = 'C'.
  ls_fieldcat-key = 'X'.
  ls_fieldcat-edit = 'X'.
  ls_fieldcat-outputlen = '4'.

  APPEND ls_fieldcat TO gt_fieldcat.

  ls_fieldcat-fieldname = 'PRICE'.
  ls_fieldcat-coltext = 'Airfare'.
  ls_fieldcat-just = 'R'.
  ls_fieldcat-key = ' '.
  ls_fieldcat-edit = 'X'.
  ls_fieldcat-outputlen = '15'.

  APPEND ls_fieldcat TO gt_fieldcat.


ENDFORM.                    " setting_catalog
*&---------------------------------------------------------------------*
*&      Form  update_database
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM update_database .

MODIFY  SFLIGHT FROM TABLE GT_MODIFIED_ROWS.
IF SY-SUBRC EQ 0.
    MESSAGE s000(0k) WITH 'SAVE OK'.
ENDIF.


ENDFORM.                    " update_database
번호 제목 글쓴이 날짜 조회 수
271 report zunicode_003. sapjoy 2008.11.22 2202
270 report zunicode_002 sapjoy 2008.11.22 2563
269 zunicode_001 sapjoy 2008.11.22 2397
268 REPORT Z07_024 sapjoy 2006.12.09 2474
267 REPORT z18_033 [47] sapjoy 2008.10.13 9044
266 REPORT Z13_021 [1] sapjoy 2008.09.29 2156
265 REPORT Z17_004. sapjoy 2007.02.12 2508
264 REPORT z19_005 [1] sapjoy 2007.04.04 2927
263 REPORT z18_035 sapjoy 2007.03.14 2450
262 REPORT z16_003 [1] sapjoy 2008.08.08 2551
261 REPORT z16_002 sapjoy 2008.08.08 2649
260 REPORT Z04_003 [9] sapjoy 2007.05.17 2561
259 <b>ABAP SOURCE는 교재에 사용된 소스들입니다.</b> [1] sapjoy 2006.12.03 3619
258 REPORT z18_037 [3] sapjoy 2008.04.22 2728
» REPORT z18_038 [2] sapjoy 2008.04.22 2636
256 REPORT Z07_031 [2] sapjoy 2006.12.09 2309
255 REPORT Z05_001 [3] sapjoy 2007.05.22 2881
254 REPORT Z05_003 sapjoy 2007.05.22 2406
253 REPORT Z15_027 . sapjoy 2007.02.01 2718
252 REPORT Z17_021 . sapjoy 2007.02.21 2388