예를 들어 c_no = 1, v_no = 1
100개의 테이블에 키 필드( c_no, v_no ) 중 v_no = 2 로 변경하고 나머지 필드는 그대로
동일 테이블에 append 시킨다고 할때
데이터 참조와, 필드심볼을 써서 하는게 코딩 효율상 좋을것 같아 해보고 있습니다.
lt_tab 에는 테이블명이 있어서 loop 을 돌면서 작업하려고 하는데
------------------ 소스 ---------------------------------------
DATA: dref TYPE REF TO data.
FIELD-SYMBOLS: <fs1> TYPE ANY, <fs2> TYPE ANY.
LOOP AT lt_tab INTO ls_tab.
CREATE DATA dref TYPE (ls_tab-tabname).
ASSIGN dref->* TO <fs1>.
SELECT * FROM (ls_tab-tabname)
INTO <fs1>
WHERE c_no = 1
AND v_no = 1.
<fs1>-v_no = 2. "이부분에서 안되네여...
ENDSELECT.
ENDLOOP.
easy-abap 책에는 p635 에
<fs1>-col1 = 'EASY ABAP'.
이렇게 바로 적용이 되는데 .. 저는 안되네요..
복수 테이블 복사를 데이터 참조, 필드심볼을 써서 해보신분 알려주시면 감사하겠습니다..
댓글 5
-
도도마녀
2009.02.28 05:18
-
도움이
2009.03.01 01:22
답변 감사합니다. 필드심볼 선언시 TYPE 을 (ls_tab-tabname) 로 선언하는 것도 해본것 같은데 안되는 것 같네요..
다시 한번 해보겠습니다..
-
도도마녀
2009.03.02 19:03
FIELD-SYMBOLS: <fs1> TYPE (ls_tab-tabname), <fs2> TYPE (ls_tab-tabname). 역시나 여기에서 안되는 군요
FIELD-SYMBOLS: <fs1> TYPE pa0001 처럼 구조체나 테이블명을 직접 줘야 선언이 가능하게 되어 있네요
-
도움이
2009.03.02 19:32
FIELD-SYMBOLS: <fs1> TYPE any table. 로 선언하는 것도 있더라구여.. 계속 보고 있습니다..
하드코딩으로 해버리면 쉽긴하겠지만 필드심볼로 가능한 것인지가 궁금하네요..
도도마녀님 감사합니다.. ^^
-
도련님
2009.12.15 20:23
해결 하셨나요?
저도 지금 필드심벌로 테이블을 사용하고 싶은데..
될듯 안되네요.
해결하셨으면 소스좀 올려 주시면 감사하겠습니다.
집이라서 테스트는 못해보지만
FIELD-SYMBOLS: <fs1> TYPE ANY, <fs2> TYPE ANY. 이부분이 잘못 된것 같은데요
타입을 ANY가 아닌 TYPE 테이블명 ( lt_tab-tabname에 들어가는) 처럼 선언되야 할듯 한데요
그런데 100여개의 테이블이 서로 레이아웃이 다르다면...필드심볼 변수선언도 매번 달라져야 한다는 것인데
요것이 제일 문제내요...
밑에 적은것 처럼 LOOP 돌면서 변수가 선언 될라나 -0- (안될 가능성도 많을듯)
이런 테스트는 한번도 안해봐서 사무실이있으면 한번 해보고 싶군요 허허....
DATA: dref TYPE REF TO data.
LOOP AT lt_tab INTO ls_tab.
FIELD-SYMBOLS: <fs1> TYPE (ls_tab-tabname), <fs2> TYPE (ls_tab-tabname).
CREATE DATA dref TYPE (ls_tab-tabname).
ASSIGN dref->* TO <fs1>.