안녕하세요.
뒷 단 처리를 어떻게 해야 될지 딱히 떠오르지 않아 도움 요청 드립니다.
1. internal table을 구성을 하였습니다.
2. write로 internal table의 내용을 화면에 보여주었습니다.
3. 금액 관련 필드는 입력 받을 수 있도록 write 뒤에 input on을 하였습니다.
Q) 입력 받은 금액을 어떻게 internal table의 필드에 넣어 줄 수가 있는지요?
감사합니다.
댓글 6
-
MadMax
2010.06.24 18:02
-
맑은하늘
2010.06.24 19:35
DATA : BEGIN OF ITAB OCCURS 0,
FLDHP TYPE C LENGTH 10,
FIELD TYPE C LENGTH 10,
END OF ITAB.
DATA LV_INDEX TYPE N LENGTH 2.
START-OF-SELECTION.
DO 10 TIMES.
LV_INDEX = SY-INDEX.
ITAB-FIELD = LV_INDEX.
CONCATENATE 'INDEX' LV_INDEX INTO ITAB-FLDHP.
APPEND ITAB. CLEAR ITAB.
ENDDO.
LOOP AT ITAB.
WRITE / ITAB-FLDHP HOTSPOT.
WRITE ITAB-FIELD INPUT ON.
ENDLOOP.
AT LINE-SELECTION.
READ CURRENT LINE LINE VALUE INTO ITAB.
IF SY-SUBRC IS INITIAL.
READ TABLE ITAB TRANSPORTING NO FIELDS
WITH KEY FLDHP = ITAB-FLDHP.
IF SY-SUBRC IS INITIAL.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING FIELD.
ENDIF.
ENDIF. -
기군
2010.06.24 22:01
MadMax님, 맑은하늘님 감사합니다.
-
기군
2010.06.24 22:05
저와 같은 고민을 하시는 분이 계실지도 모르니 내용 좀 덧 붙이겠습니다.
pick이 아닌 Enter로 처리를 원하시는 경우에는 user-command에 적용해 주시면 되겠죠.
건 별 처리 (Pick, Enter)가 아닌 save버튼을 눌러서 통채로 넣어주는 방법은.. 아직 못 찾았습니다..
internal table에는 위와 같이 해서 넣을 수 있는데 write로 보여줬던 화면에도 데이터 변경을 해줘야겠죠.
그건 modify current line field value itab-field from '변경될값'.
으로 해주시면 됩니다.
-
기군
2010.06.24 22:14
통채로 처리하는 방법에 대해서는 테스트 후 올리도록 하겠습니다. 오늘도 좋은 하루되세요.
-
맑은하늘
2010.06.25 01:16
write 하시면서 hide 해 놓으시면 좀더 편합니다.
read line 명령어 사용 하시면 됩니다. 아래 예문 참조 하세요..
(아래 예문은 출력된 Field 중 Flag, data field 를 읽어서 처리 하는 내용임)
DATA: date TYPE d,
flag TYPE c LENGTH 1,
wa TYPE c LENGTH 10.
START-OF-SELECTION.
date = sy-datum.
DO 10 TIMES.
date = date + sy-index.
WRITE: / flag AS CHECKBOX, (10) date.
ENDDO.
AT LINE-SELECTION.
DO.
READ LINE sy-index FIELD VALUE flag
date INTO wa.
IF sy-subrc <> 0.
EXIT.
ELSEIF flag = 'X'.
WRITE / wa.
ENDIF.
ENDDO.