메뉴 건너뛰기

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

번호 제목 글쓴이 날짜 조회 수
4227 <img src=1.gif>SALV HIERSEQ사용중 같은 필드 화면에 여러번 표시 은미짱 2009.11.25 1738
4226 <img src=3.gif>sap 서버 ip 가져오는 방법 알려주세요^^ [4] Norton 2009.11.24 1641
4225 <img src=3.gif>SELECTION-SCREEN default 값 관련.. [2] 초밥 2009.11.24 2081
4224 <img src=2.gif>write 프로그램에서 Print 버튼 없애기 [3] 낭랑18세 2009.11.24 1174
4223 <img src=3.gif>BDC FI 전표 생성시 Profit. Segment ? [2] 버미! 2009.11.23 1569
4222 <img src=2.gif>alv 에서 특정 셀의 색상 변경시 refresh 여부... [4] 쭌수야~! 2009.11.23 2556
4221 <img src=2.gif>CDPOS 테이블 Objectclass 관련된 질문입니다. [1] 도움이 2009.11.22 1180
4220 <img src=2.gif>variant 보다 먼저 읽히는 필수값 체크 문제입니다. [2] file 참참참 2009.11.21 1299
4219 <img src=2.gif>alv 레포트에서 글자크기 및 alv row 상하 넓이 조절 가능한가요... [3] eskang 2009.11.21 2256
4218 <img src=3.gif>[alv event hotspot_click r_row c_col를 받아서 처리후 alv refresh방법문의합니다. [1] eskang 2009.11.21 1754
4217 <img src=2.gif>Routing 수정 BAPI 혹시 있나요? [4] 신수도 2009.11.20 1660
4216 <img src=1.gif>'FWZZ' 에서 BDC 생성시 오류가 나서 수정이 되질않습니다. [1] file Cruel 2009.11.20 2163
4215 <img src=2.gif>OLE 를 이용해 엑셀 매크로 연동 후 PDF 변환 하는 방법 [1] 낭랑18세 2009.11.20 2226
4214 <img src=2.gif>ALV 에서 컬럼헤딩 텍스트 길이가 50 정도 되는데, 잘려서 나오네요. 방법이 없나요? [1] 푸른창공 2009.11.20 1243
4213 <img src=3.gif>sap 6.0 에서 debugging 질문입니다. [5] 십년만에 2009.11.19 1379
4212 <img src=3.gif>금액 절사방법에 대해 질문드립니다. [6] 해바라기 2009.11.19 5027
4211 <img src=3.gif>수(3,333)을 CHAR 타입로 받을때 소수점이 없어지지 않게 하는 방법 있나요? [3] sora 2009.11.19 1783
4210 <img src=2.gif>메일보내기(outlook) 방법 혹은 자료 부탁드립니다 [13] 츄리닝 2009.11.18 13416
4209 <img src=3.gif>Tab Control에서 alv내용중 checkbox를 여러개 사용해서 checkbox 클릭할때마다 변경하는 방법좀 알려주세요? [6] file eskang 2009.11.18 1237
» [re] <img src=2.gif>Tab Control에서 alv내용중 checkbox를 여러개 사용해서 checkbox 클릭할때마다 변경하는 방법좀 알려주세요? [4] 요요 2009.11.19 1932