메뉴 건너뛰기

SAP 한국 커뮤니티



제가 했던소스입니다..복사해서 올립니다.

피크민 2008.06.16 10:08 조회 수 : 3451

REPORT  ZFITESTH_18027 message-id ok                          .


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.


DATA: BEGIN OF gt_sflight OCCURS 0.     "with header line
        INCLUDE STRUCTURE sflight.
DATA: END 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 : event_receiver TYPE REF TO lcl_event_receiver.
  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 = ''.
  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 = 'X'.
  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

번호 제목 글쓴이 날짜 조회 수
공지 e-abap에서 출간된 책 소개 [8] 양키 2013.01.31 11758
45 95페이지 예제소스 오류 [2] 아밥또퍼 2008.07.07 3175
44 [요청]BDC프로그램(페이지 768) 문의드립니다~~ [2] 아밥초짜 2008.07.04 2920
43 <b>[완료]</b>같은 ALV를 참조하는 이벤트처리변수가 2개로 선언해주는 이유가 궁금합니다. [1] 하오 2008.07.02 3150
42 p. 238 실행시 생성 실패 되었다는 결과가 나옵니다. [1] 도움이 2008.07.01 3107
41 <b>[완료]</b>[교재1089p]ASSIGN er_data_changed->mp_mod_rows->* TO <fs>. 에서 * 가 무엇인지 궁금합니다. [2] 하오 2008.06.30 4856
40 <b>[완료]</b>이지아밥 930p 예제 17-4-2 을 보고 궁금한게 생겨서요. [2] 하오 2008.06.27 6674
39 <b>[완료]</b>P372~373 예제 7-8-2에서 CLEAR 구문이 없는데요 [2] 은근 2008.06.23 3120
38 <b>[완료]</b>교재 679~680페이지 예제 15-3-1소스내용에.. [4] 앙리 2008.06.17 3130
37 [요청]P. 828 결과화면에서 Flight ID 필드가 출력전용으로 되지 않습니다 [1] 도움이 2008.06.17 2956
36 <b>[완료]</b>CLIENT SPECIFIED 에 관해 좀더 상세한 설명좀 부탁드려요 [2] 냐옹이 2008.06.15 4079
35 [요청]18_027에서 EDIT = 'X'를 먹지를 않는거 같습니다.. [3] 피크민 2008.06.12 2976
» 제가 했던소스입니다..복사해서 올립니다. [3] 피크민 2008.06.16 3451
33 [요청]172페이지 예제 4-2-9 중에 ' 설명 부탁드립니다 [2] vava76 2008.06.12 3349
32 [요청]abap oop에서 casting 기호(?)에 대해서 자세히 알고싶습니다. [1] kkk 2008.06.11 4082
31 [요청]아밥클래스에서 inheriting from 구문관련 질문드립니다. [3] kkk 2008.06.11 3730
30 [요청]ENQUEUE_EZ_SFLIGHT 사용에 대해... [1] 앙리 2008.06.09 2538
29 [요청]교재 p 154 에 Report z04_003. (예제 4-2-3) [3] 효방 2008.06.04 3061
28 [요청]LOCK 생성에 관한 질문입니다.(P551~555) [1] 로미오 2008.06.03 3109
27 [re] 뭐가 잘못됐는지 확인부탁합니다. [1] 로미오 2008.06.04 3196
26 [요청]정말 바보같은 질문인거 같은데 도저히 몰라서요.. [2] 태사성 2008.06.02 3195