테이블 명을 입력 받아서 해당 테이블을 alv로 뿌려주고 데이터 입력 수정 등등 해서 저장하는 프로그램을
만들었는데요...
필드 심볼을 이용해서요...
근데 간혹 필드들 마다 입력값 체크를 해주던가 해야하는데요...필드 지정을 할수가 없는데 어떤 식으로
해야하나요?
예를 들어서
<dyn_table> 이거를 동적으로 테이블 타입으로 해서 해당 테이블에 데이터를 받았는데요..
간혹 필드값 체크나 값을 넣어주는 작업을 해야하는데...
<dyn_table>-bukrs = '1000' << 요런식으로 필드 지정을 해줘야 하는데...
해당 필드가 없다는 식으로 엑티브가 돼지 않는데..어떤 방법으로 지정할수 있나요?
고수님들 답변 부탁드립니다...^^;;;
댓글 3
-
루자빗
2008.06.25 21:56
-
activeman
2008.06.25 22:03
DATA: BEGIN OF line,
col1(1) TYPE c,
col2(1) TYPE c VALUE 'X',
END OF line.
FIELD-SYMBOLS <fs> LIKE LINE. ==> 이 부분선언 하실때
"FIELD-SYMBOLS <fs>" 이렇게 선언하시면 엑티브가 되지 않습니다. 예제를 카피해서 한번 실행해 보세요. 그럼..이해가 되실 겁니다.
ASSIGN line TO <fs>.
MOVE <fs>-col2 TO <fs>-col1.
-
comple
2008.06.27 21:33
dynamic table을 fieldcatalog을 설정해서 클래스로 생성하셧을꺼라 생각하고 쓰겠습니다... 뭐 다른 경우도 적용되기도 하지만요.
<ft>(internal table)에서 <fs>(Work area)로 값을 옮기고 나서, <fs>에서 bukrs 필드을 읽고 싶으시다면.
assign compoent 'BUKRS' of structure <fs> to <f_bukrs>.
if sy-subrc EQ 0.
* 체크 부분
endif.
자세한 설명 F1을 이용해 주세요.
테이블을 동적으로 쓰셨으니 컴파일 되지 않는건 당연한 것 같은데요...
테이블필드 관리하는 테이블에서 제어하고자 하는 필드를 동적으로 가져오는 추가 로직이 필요하지 않을까요?