메뉴 건너뛰기

SAP 한국 커뮤니티

급조로 필드 2개짜리 alv 를 예제로 만들었습니다.


event receiver 를 여기서 만드는 것으로 했기 때문에


그쪽에서 쓰시는 방법으로 선언만 하시면 될 거예요.


프로그램은 체크박스에 체크/언체크 시 value 필드에 1씩 값을 증가하게


했습니다.


 


도움이 되시길 바랍니다.


 


DATA g_okcode TYPE syucomm.


DATA : BEGIN OF gs_data,
         check1,
         value TYPE i,
       END   OF gs_data.
DATA gt_data   LIKE TABLE OF gs_data.
DATA gs_layout TYPE          lvc_s_layo.
DATA gt_fcat   TYPE lvc_t_fcat.
DATA g_grid    TYPE REF   TO cl_gui_alv_grid.
DATA g_stable  TYPE          lvc_s_stbl VALUE 'XX'.


START-OF-SELECTION.


  APPEND gs_data TO gt_data.


  CALL SCREEN 100.


*&---------------------------------------------------------------------*
*&      Module  STATUS  OUTPUT
*&---------------------------------------------------------------------*
MODULE status OUTPUT.
  SET PF-STATUS 'PF100'.
  SET TITLEBAR  'T100'.
ENDMODULE.                 " STATUS  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
MODULE exit INPUT.
  LEAVE TO SCREEN 0.
ENDMODULE.                 " EXIT  INPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND  INPUT
*&---------------------------------------------------------------------*
MODULE user_command INPUT.


  CASE g_okcode.
    WHEN ''.
    WHEN OTHERS.
  ENDCASE.


  CLEAR g_okcode.


ENDMODULE.                 " USER_COMMAND  INPUT
*&---------------------------------------------------------------------*
*&      Module  SET_GRID  OUTPUT
*&---------------------------------------------------------------------*
MODULE set_grid OUTPUT.


  IF g_grid IS NOT BOUND.


*   Create grid control
    CREATE OBJECT g_grid
      EXPORTING
        i_parent = cl_gui_container=>default_screen.


*   Set layout.
    gs_layout-cwidth_opt = 'X'.


*   Set field-catalog
    PERFORM set_fcat CHANGING gt_fcat.


*   Display grid
    g_grid->set_table_for_first_display(
      EXPORTING
        is_layout        = gs_layout
      CHANGING
        it_outtab        = gt_data
        it_fieldcatalog  = gt_fcat
    ).


*   Set grid-event
    PERFORM set_event_for_grid CHANGING g_grid.


  ELSE.
    g_grid->refresh_table_display( is_stable = g_stable ).
  ENDIF.


ENDMODULE.                 " SET_GRID  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  SET_EVENT_FOR_GRID
*&---------------------------------------------------------------------*
FORM set_event_for_grid  CHANGING cl_grid TYPE REF TO cl_gui_alv_grid.


  DATA lcl_event TYPE REF TO zcl_km_event_receiver.


  CREATE OBJECT lcl_event.
  SET HANDLER lcl_event->handle_data_changed FOR cl_grid.


  cl_grid->register_edit_event(
      EXPORTING i_event_id = cl_grid->mc_evt_modified
  ).


ENDFORM.                    " SET_EVENT_FOR_GRID
*&---------------------------------------------------------------------*
*&      Form  handle_double_click
*&---------------------------------------------------------------------*
FORM handle_data_changed
   CHANGING sender          TYPE REF TO cl_gui_alv_grid
            er_data_changed TYPE REF TO cl_alv_changed_data_protocol
            e_onf4
            e_onf4_before
            e_onf4_after
            e_ucomm.


  FIELD-SYMBOLS : <lfs_mod_cell> TYPE lvc_s_modi,
                  <lfs_fcat>     TYPE lvc_s_fcat.


  READ TABLE er_data_changed->mt_mod_cells
             ASSIGNING <lfs_mod_cell>
                 INDEX 1.
  CHECK sy-subrc IS INITIAL.


  CLEAR gt_fcat.


  READ TABLE gt_data INTO gs_data INDEX <lfs_mod_cell>-row_id.
  IF sy-subrc IS INITIAL.
    ADD 1 TO gs_data-value.
    MODIFY gt_data FROM gs_data INDEX sy-tabix TRANSPORTING value.


    sender->refresh_table_display( is_stable = g_stable ).


  ENDIF.


ENDFORM.                    "handle_double_click
*&---------------------------------------------------------------------*
*&      Form  SET_FCAT
*&---------------------------------------------------------------------*
FORM set_fcat  CHANGING ct_fcat TYPE lvc_t_fcat.


  DATA ls_fcat TYPE lvc_s_fcat.


  CLEAR ls_fcat.
  ls_fcat-fieldname = 'CHECK1'.
  ls_fcat-checkbox  = 'X'.
  ls_fcat-edit      = 'X'.
  ls_fcat-coltext   = 'CheckBox 1'.
  ls_fcat-tooltip   = 'CheckBox 1'.
  ls_fcat-seltext   = 'CheckBox 1'.
  ls_fcat-outputlen = 10.
*
  APPEND ls_fcat TO ct_fcat.


  CLEAR ls_fcat.
  ls_fcat-fieldname = 'VALUE'.
  ls_fcat-checkbox  = ' '.
  ls_fcat-edit      = ' '.
  ls_fcat-coltext   = 'Value'.
  ls_fcat-tooltip   = 'Value'.
  ls_fcat-seltext   = 'Value'.
  ls_fcat-outputlen = 10.
  APPEND ls_fcat TO ct_fcat.


ENDFORM.                    " SET_FCAT

번호 제목 글쓴이 날짜 조회 수
4212 <img src=3.gif>금액 절사방법에 대해 질문드립니다. [6] 해바라기 2009.11.19 4866
4211 <img src=3.gif>수(3,333)을 CHAR 타입로 받을때 소수점이 없어지지 않게 하는 방법 있나요? [3] sora 2009.11.19 1777
4210 <img src=2.gif>메일보내기(outlook) 방법 혹은 자료 부탁드립니다 [13] 츄리닝 2009.11.18 3421
4209 <img src=3.gif>Tab Control에서 alv내용중 checkbox를 여러개 사용해서 checkbox 클릭할때마다 변경하는 방법좀 알려주세요? [6] file eskang 2009.11.18 1225
» [re] <img src=2.gif>Tab Control에서 alv내용중 checkbox를 여러개 사용해서 checkbox 클릭할때마다 변경하는 방법좀 알려주세요? [4] 요요 2009.11.19 1923
4207 <img src=3.gif>GUI STATUS 의 어플리케이션 툴바에 관해서 질문이 있습니다. [4] file rune 2009.11.17 1730
4206 <img src=2.gif>필드심볼로 계산 하기 질문입니다. [1] 마늘맛쿨피스 2009.11.17 1359
4205 <img src=3.gif>SMARTFORMS 안에서 Graph가 출력가능한가요? [4] soyo 2009.11.17 1146
4204 <img src=3.gif>다음문제의 답 좀 알려주세요.. ^^; [3] 이카루스 2009.11.17 1014
4203 <img src=3.gif> nested loop을 해결하는 방법을 알려주세요 [10] 해보자보자 2009.11.16 1728
4202 <img src=3.gif>동적으로 펑션 호출 가능한가요.. [2] 사탕수수 2009.11.14 1859
4201 <img src=2.gif>[User-Exit] PM 오더 등록시 정산리시버 체크 [4] 귀여운 아이 2009.11.14 2051
4200 <img src=3.gif> FIELD-SYMBOLS 관련 질문입니다. [6] 마늘맛쿨피스 2009.11.13 1791
4199 [re] <img src=2.gif> FIELD-SYMBOLS 관련 질문입니다. [1] 요요 2009.11.14 1738
4198 <img src=3.gif>write문으로 이루어진 list를 pdf파일로 저장하는 부분의 궁금증 [5] file 튀밥 2009.11.13 1831
4197 <img src=3.gif>엑셀 다운로드시 숫자가 2.00911E+12나오는데 방법이 없을까요? [6] 귤탱 2009.11.13 5926
4196 <img src=3.gif>ALV에서 F4 구현시 도메인의 Range값 가져오는 법? [2] 부산갈매기 2009.11.13 2136
4195 <img src=2.gif>ws_download을써서 header가 나오게 하고싶습니다. [2] CoolGuy 2009.11.13 1076
4194 <img src=1.gif>Intertable의 데이터를 cvs파일로 다운로드 CoolGuy 2009.11.12 1214
4193 <img src=2.gif>[질문수정]사용자의 SAP GUI 버전 정보 시스템 변수 또는 펑션이 있나요? [3] 도마슈노 2009.11.12 1230