do~ enddo 문을 이용하여서
internal table 에 잠깐 저장하였다가.. 테이블로 옮기는 프로그램을 짜려고 하는데요
아직 초보라 아무것도 모르겠어요...ㅠ
운영만 하다가 개발일을 배우려고 하니까 어려운게 많네요.
30번 정도 돌리면서 뒷자리를 1씩 증가시킨 값을 itab 에 넣고
do 문이 끝나면 itab에 저장된 필드값을 zoy_test 라는 테이블에 옮기려고요...
예 gggg s56H12312-T0801 1,000 기타내용
gggg s56H12312-T0802 1,000 기타내용
gggg s56H12312-T0803 1,000 기타내용
.
.
.
gggg s56H12312-T0810 1,000 기타내용
넣으려고 하는데요...
s56H12312-T0801 끝에 숫자만 1씩 증가하는 방식으로 insert 시키려고 합니다.
도움좀 주세요^^
댓글 8
-
현준탱
2008.11.03 23:56
-
현준탱
2008.11.04 00:48
문제가 좀 바뀌었군요. 제가 보기에는 zoy_test에 'gggg s56H12312-T0801 1,000 기타내용' 이 내용을 넣으시려고 하는것 같은데요.
insert 라면 기존 데이터는 없다는 가정하에...
data: it_zoy_test like zoy_test occurs 0 with header line.
data: numb(2) type n.
data: ls_numb(2) type c.
data: ls_txt1(50) type c value 'gggg s56h12312-t080',
ls_txt2(50) type c value ' 1,000 기타내용'.
numb = 30.
do numb times.
ls_numb = sy-index.
concatenate ls_txt1 ls_numb ls_txt2 into it_zoy_test-(넣어줄필드).
append it_zoy_test.
clear it_zoy_test.
enddo.
insert zoy_test from table it_zoy_test.
기존에 데이터가 있는데 필드 한곳에 넣어주는 거라면...
data: it_zoy_test like zoy_test occurs 0 with header line.
data: ls_numb(2) type c.
data: ls_txt1(50) type c value 'gggg s56h12312-t080',
ls_txt2(50) type c value ' 1,000 기타내용'.
numb = 30.
select * into corresponding fields of table it_zoy_test
from zoy_test.
loop at it_zoy_test.
ls_numb = sy-tabix.
concatenate ls_txt1 ls_numb ls_txt2 into it_zoy_test-(넣어줄필드).
modify it_zoy_test.
clear it_zoy_test.
endloop.
update zoy_test from table it_zoy_test.
-
아밥!
2008.11.04 00:55
do문을 써서 맨뒷자리 1씩만 증가시킨 값을 itab 에 넣고 do 문이 끝나면 itab 에 저장된 필드값을 zoy_test 에 넣으라는데요..
아직 이해가 안가네요...;;;
-
좋아
2008.11.04 01:59
data: it_zoy_test like zoy_test occurs 0 with header line.
data: numb(2) type n.
data: ls_numb(3) type c.
data: ls_txt1(50) type c value 'gggg s56h12312-t0',
ls_txt2(50) type c.
numb = 30.
ls_numb = 800.
do numb times.
ls_numb = ls_numb + 1.
concatenate ls_txt1 ls_numb into it_zoy_test-(zoy_test에 넣어줄필드 이름).
it_zoy_test-(zoy_test에 넣어줄필드 이름) = 'gggg'.
it_zoy_test-(zoy_test에 넣어줄필드 이름) = '1000'.
it_zoy_test-(zoy_test에 넣어줄필드 이름) = '기타내용'.
append it_zoy_test.
clear it_zoy_test.
enddo.
insert zoy_test from table it_zoy_test.
이렇게 하면 될거 같아요
현준탱님이 하신거랑 똑같지만 제가 한거랑 똑같이 해보세요... ()이 안에 있는거는 zoy_test이 테이블 보시면 알수 있을꺼예요
-
아밥!
2008.11.06 20:06
퍼폼문안에 넣어서 사용할때도 이렇게 하면 되나요...계속 해봤는데 에러가 나네요..;;
Statement "IT_ZOY_TEST-MANDT=" is not defined. Please check your spelling.
-
아밥!
2008.11.06 20:15
*&---------------------------------------------------------------------*
*& Form INSERT_DATA_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form insert_data_display.
* 20081028 zoy_test 에 insert
data: it_zoy_test like zoy_test occurs 0 with header line.
data: numb(2) type n.
data: ls_numb(3) type c.
data: ls_txt1(50) type c value 'S5H1411X01-T0820',
ls_txt2(50) type c.
numb = 30.
ls_numb = 800.
do numb times.
ls_numb = ls_numb + 1.
concatenate ls_txt1 ls_numb into it_zoy_test-matnr.
it_zoy_test-mandt= '080'.
it_zoy_test-plant= 'SGGKK'.
it_zoy_test-qty= '1000'.
it_zoy_test-text = '부족분입고'.
append it_zoy_test.
clear it_zoy_test.
enddo.
insert zoy_test from table it_zoy_test.
endform. " INSERT_DATA_DISPLAY
잘못된점 있나 봐주세요..;; -
김기만
2008.11.10 19:31
소스 실컷 쓰다가 위에분들 글 확인하니 제가 쓴게 이미 다 적혀있네요. ^^;
-
아밥!
2008.11.12 19:24
에러가 계속 나는데.....확인이 안되네요..;;;;위에소스대로 했는데...
문제 뜻이 잘 파악이 안되는군요.
1. 인터널 테이블 itab이 비어있다는 가정하에 데이터를 넣어주는 예로 만들었습니다.
2. 데이터도 위에 주신 데이터를 일부러 넣어서 만들었습니다.
data: begin of itab occurs 0.
data: field1(4) type c,
field2(20) type c,
field3(4) type n.
data: end of itab.
data: numb(2) type n VALUE 30.
data: ls_numb(2) type c.
do numb times.
LS_NUMB = SY-INDEX.
concatenate 's56H12312-T080' LS_NUMB into itab-field2.
itab-field1 = 'gggg'.
itab-field3 = 1000.
append itab.
clear itab.
enddo.
insert db(table) from table itab.
db 테이블 필드와 itab 테이블 필드는 일치해야겠죠.
응용하시면 충분히 가능하실겁니다^^; 참고만 하세요~~