FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
ASSIGN (itab1) TO <TABLE>.
LOOP AT <TABLE> ASSIGNING <WA>.
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
IF <MARK_FIELD> = 'X'.
MOVE-CORRESPONDING <WA> TO itab2
itab2-field2 = 'any values'.
MODIFY itab2 TRANSPORTING field2
WHERE filed2 = <TABLE>-field1.
APPEND GT_UP306.
ENDLOOP.
*-------------------------------------------------------------------------
현재 <TABLE>-field1. 에서 해당 필드가 없다고 에러 뜨는데요 ..
필드심블 어떻게 선언하면 해당문구에서 TABLE>-field1를 사용할수 있나요? ^^
댓글 4
-
PCGUY7
2010.02.11 21:59
-
MadMax
2010.02.12 18:25
<table> 은 type 정의를 standard table 이라 내부 구조를 가지고 있지 않습니다. 그러므로 <table>-field1 은 인식할 수 없지요.
<table>-field1 을 사용하시려면 이역시 field-symble 로 정의 하셔야 합니다.
예) move '<TABLE>-FIELD1' to lv_field. assign (lv_field) to <fs>.
modify itab2 transporting field2 where field2 = <fs>
참고하세요.
-
박종환
2010.02.13 01:46
data: fieldaddr(40). " 필드 주소 저장 필드
field-symbols <fieldaddr>. " 필드 심볼 이후에 필드 주소를 할당해준다.
<mon> = i_pa2001-begda+4(2). " 월 정보를 넣는다 필드 이름 만들 때 사용
concatenate 'INT1-M' <mon> into fieldaddr. " INT1-M01 등 필드 이름을 fieldaddr 필드에 입력한다.
assign (fieldaddr) to <fieldaddr>. " assign (필드이름) to <필드심볼> 필드심볼은 필드 이름과 같은 필드와 동일시 된다.( 가리킨다. )
<fieldaddr> = i_pa2001-abwtg. " 필드심볼에 값을 넣으면 INT10M01에 값이 들어간다.
-
남군
2010.02.17 20:43
<TABLE>는 TABLE 타입으로 선언되어 있고 ITAB1의 구조의 테이블 형태로 <WA>에 ASSIGN 하고 있습니다.
<WA>-FLD1 이런식의 Strucuture 형태로 사용하기 위해선 <WA>역시 ITAB1형태로 선언을 해야하며 그렇지 않을경우
<WA>-FLD1이 없다는 식의 에러가 납니다.
<TABLE> 필드심볼을 <WA> 로 ASSIGNING 했으니
MODIFY itab2 TRANSPORTING field2
WHERE filed2 = <WA>-field1.
로 해야 맞지 않나요?