메뉴 건너뛰기

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

번호 제목 글쓴이 날짜 조회 수
4219 <img src=2.gif>alv 레포트에서 글자크기 및 alv row 상하 넓이 조절 가능한가요... [3] eskang 2009.11.21 2237
4218 <img src=3.gif>[alv event hotspot_click r_row c_col를 받아서 처리후 alv refresh방법문의합니다. [1] eskang 2009.11.21 1753
4217 <img src=2.gif>Routing 수정 BAPI 혹시 있나요? [4] 신수도 2009.11.20 1643
4216 <img src=1.gif>'FWZZ' 에서 BDC 생성시 오류가 나서 수정이 되질않습니다. [1] file Cruel 2009.11.20 2152
4215 <img src=2.gif>OLE 를 이용해 엑셀 매크로 연동 후 PDF 변환 하는 방법 [1] 낭랑18세 2009.11.20 2205
4214 <img src=2.gif>ALV 에서 컬럼헤딩 텍스트 길이가 50 정도 되는데, 잘려서 나오네요. 방법이 없나요? [1] 푸른창공 2009.11.20 1240
4213 <img src=3.gif>sap 6.0 에서 debugging 질문입니다. [5] 십년만에 2009.11.19 1373
4212 <img src=3.gif>금액 절사방법에 대해 질문드립니다. [6] 해바라기 2009.11.19 4929
4211 <img src=3.gif>수(3,333)을 CHAR 타입로 받을때 소수점이 없어지지 않게 하는 방법 있나요? [3] sora 2009.11.19 1779
4210 <img src=2.gif>메일보내기(outlook) 방법 혹은 자료 부탁드립니다 [13] 츄리닝 2009.11.18 5836
4209 <img src=3.gif>Tab Control에서 alv내용중 checkbox를 여러개 사용해서 checkbox 클릭할때마다 변경하는 방법좀 알려주세요? [6] file eskang 2009.11.18 1227
» [re] <img src=2.gif>Tab Control에서 alv내용중 checkbox를 여러개 사용해서 checkbox 클릭할때마다 변경하는 방법좀 알려주세요? [4] 요요 2009.11.19 1930
4207 <img src=3.gif>GUI STATUS 의 어플리케이션 툴바에 관해서 질문이 있습니다. [4] file rune 2009.11.17 1735
4206 <img src=2.gif>필드심볼로 계산 하기 질문입니다. [1] 마늘맛쿨피스 2009.11.17 1363
4205 <img src=3.gif>SMARTFORMS 안에서 Graph가 출력가능한가요? [4] soyo 2009.11.17 1152
4204 <img src=3.gif>다음문제의 답 좀 알려주세요.. ^^; [3] 이카루스 2009.11.17 1019
4203 <img src=3.gif> nested loop을 해결하는 방법을 알려주세요 [10] 해보자보자 2009.11.16 1736
4202 <img src=3.gif>동적으로 펑션 호출 가능한가요.. [2] 사탕수수 2009.11.14 1866
4201 <img src=2.gif>[User-Exit] PM 오더 등록시 정산리시버 체크 [4] 귀여운 아이 2009.11.14 2056
4200 <img src=3.gif> FIELD-SYMBOLS 관련 질문입니다. [6] 마늘맛쿨피스 2009.11.13 1796