안녕하세요.
필드심볼 관련하여 찾아봤는데 기존 게시판에 없는것 같아서 질문드립니다.
필드가 A1~A60 이렇게 60개의 필드가 순차적으로 있다고 가정했을때..
해당 A1~60 개의 필드에 소문자 영어의 값이 들어올수 있는데요.
해당 필드들의 Data를 대문자로 치환하고 싶습니다.
해서필드심볼을쓰려구하는데요.
로직이 궁금합니다 (__)
Do 60 Times.
Enddo.
댓글 5
-
버미!
2010.10.19 17:57
-
윤군친구
2010.10.19 18:14
T.T 제가 바로 그렇게 되나 해보았는데.. 덤프가 나더라구요.ㅠㅠ -
아밥어렵네요
2010.10.19 19:05
* 버미님 소스 참조했습니다. 되네요
DATA : a1(5) TYPE c VALUE 'aaaaa',
a2(5) TYPE c VALUE 'bbbbb',
a3(5) TYPE c VALUE 'ccccc',
a4(5) TYPE c VALUE 'ddddd',
a5(5) TYPE c VALUE '1acbe',
a6(5) TYPE c VALUE '3fdfg'.
DATA : lv_fld(3),
lv_idx(2).
FIELD-SYMBOLS : <fs>.
DO 6 TIMES.
ADD 1 TO lv_idx.
CONCATENATE 'A' lv_idx INTO lv_fld.
CONDENSE lv_fld.
ASSIGN (lv_fld) TO <fs>.
TRANSLATE <fs> TO UPPER CASE.
WRITE : <fs>.
BREAK-POINT.
ENDDO.
-
낙천
2010.10.19 19:29
ASSIGN COMPONENT를 활용해보세요~
-
윤군친구
2010.10.19 19:31
허허 죄송합니다... 안되가지고 질문 드린건데--;; 제가 concatenate할대.. 변수명을 잘못써서 계속 어사인이 잘못됬다고 떳던거군요... 저때문에 -0- 괜히 시간낭비하게 하신것 같아 죄송스럽고 답변주셔서 감사합니다.
검증이 안되지만 대략 아래 처럼...
data : lv_fld(3),
lv_idx(2).
field-symbols : <fs>.
Do 60 times.
add 1 to lv_idx.
concatenate 'A-' lv_idx into lv_fld.
condense lv_fld.
assign (lv_fld) tto <fs>.
translate <fs> upper case.
enddo.