CLASS LCL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
METHODS:
HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN,
HANDLE_DATA_CHANGED_FINISHED
FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID
IMPORTING E_MODIFIED
ET_GOOD_CELLS.
ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
*---------------------------------------------------------------------*
* CLASS LCL_ALV_GRID IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
METHOD HANDLE_DOUBLE_CLICK.
LEAVE TO SCREEN 0.
ENDMETHOD. "HANDLE_DOUBLE_CLICK
METHOD HANDLE_DATA_CHANGED_FINISHED.
DATA : ES_GOOD_CELLS TYPE LVC_S_MODI.
IF E_MODIFIED = 'X'.
LOOP AT ET_GOOD_CELLS INTO ES_GOOD_CELLS.
READ TABLE ZTESTPARK02 INDEX ES_GOOD_CELLS-ROW_ID.
IF SY-SUBRC = 0.
ZTESTPARK02-ZTIME = SY-UZEIT.
ZTESTPARK02-ZDATE = SY-DATUM.
ZTESTPARK02-ZUSER = SY-UNAME.
MODIFY ZTESTPARK02 INDEX ES_GOOD_CELLS-ROW_ID.
ENDIF.
ENDLOOP.
ENDIF.
ENDMETHOD. "HANDLE_DATA_CHANGED_FINISHED
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
read 구문에서 에러가 나는데.. index로 하는거 맞지 않나요.. ?? 잘 모르겠어요. ㅠㅜ
댓글 6
-
맹꽁이
2011.02.16 23:47
-
이소아밀
2011.02.17 00:07
"READ DBTAB" IS NOT SUPPORTED IN THE OO CONTEXT. USE "SELECT SINGLE * FROM DBTAB INTO WA"....
이렇게 에러가 나오는데요. 잘 모르겠어요, ㅠㅠ
-
ABAPCHOJJA
2011.02.17 01:03
class 에서 header line 이 있는 internal table 을 사용하실 수 없습니다. -
이소아밀
2011.02.17 02:25
아 몰랐네요.. 감사합니다
-
ClearB
2011.02.17 20:38
READ구문은 Internal Table 조회시 사용하여야합니다.
해당 에러는 실제 DB Table을 조회하려고 하여 발생한 것으로 보이네요 ^^.
-
ABAPCHOJJA
2011.02.18 22:37
^^;; 잘 못 썼네요. class 에서 read table dbtab 을 사용하실 수 없습니다.
This variant of the statement READ (not allowed in classes) reads a row from the database table dbtab and assigns the content to the respective table work area. 후에 설명이 더 있지만 요약하면 read table dbtab 은 tables를 사용하여 work area 를 확보해야 하는데,
그렇게 하면 dbtab 과 work area 의 이름이 같아 OO program 에 맞지 않다는 얘기인것 같아요.
결국 header line이 있는 internal table 을 사용하지 못하는 이유와 같은 것 같네요. ^^
담부턴 좀 더 신중하게 답글 달도록 하겠습니다.
어떤 에러가 나나요? 구문으로 봤을땐 오류가 없을듯한데요