안녕하세요^^?
ALV Edit 부분을 보고 있는데요, 교재 1089p 에 클래스 구현에서
이벤트핸들러 메소드 lcl_event_receiver 구현부분을 보면
handle_data_changed 메소드에서
ASSIGN er_data_changed->mp_mod_rows->* TO
LOOP AT
MOVE-CORRESPONDING ls_outtab TO ls_sflight.
APPEND ls_sflight TO gt_modified_rows.
ENDLOOP.
필드심벌
er_data_changed->mp_mod_rows->* 에서 '*' 의 의미를 알고 싶습니다.
참고로, 교재 614p의 ASSIGN line-col1+6(*) TO
넘어서는 것을 방지해주는 것과 같은 것인가요?
그럼, 좋은 하루 되세요^^*
* e-abap님에 의해서 게시물 이동되었습니다 (2008-06-30 11:07)
다음은 13장 field symbol & Data reference의 내용입니다.
6-2. 역참조(Dereference )
역참조(Dereference )는 프로그래밍 언어에서 프로그램 포인터가 가리키는 번지에 저장된 데이터에 접근하는 것으로 정의된다. 즉, 데이터 참조가 가리키고 있는 데이터 오브젝트의 변수 값에 접근하기 위해서는 Dereference 과정(=필드 심볼에 Assign)을 거쳐야 한다. 필드 심볼에서의 CASTING 기능도 동일하게 사용 가능하다.
<BOX>
ASSIGN dref->* TO <fs> [CASTING ...].
</BOX>
CASTING을 사용하여 참조 변수를 필드 심볼에 Assign 한다는 것은, 동적으로 생성된 데이터 오브젝트의 값을 접근할 때 필드 심볼의 데이터 타입을 참고하게 된다는 의미이다.
Dereference(=Assign)가 성공하게 되면 SY-SUBRC 변수는 0을, 성공하면 4를 반환한다.
'->*' 기호는 Dereferencing Operator라고 한다.