Main Screen 하나에 Sub Screen 4개를 만들어 4개의 섹션이 있는 TAB을 만들었습니다.
각 Subscreen에 4개의 라디오 버튼을 만들고 이 버튼을 클릭해서 실행을 하면 DB TABLE의 Insert, Modify등의 작업이 실행되도록 하려고 합니다.
selection-screen begin of screen 1100 as subscreen no intervals.
selection-screen begin of block b1 with frame title text-010.
parameters: insert01 radiobutton group rg1,
modify01 radiobutton group rg1,
update01 radiobutton group rg1,
delete01 radiobutton group rg1.
selection-screen end of block b1.
selection-screen end of screen 1100.
selection-screen begin of screen 1200 as subscreen no intervals.
selection-screen begin of block b2 with frame title text-020.
....................
...............
이런식으로 각각의 서브 스크린에 4개의 라디오 버튼을 지정해 줍니다.
그런다음에....
작업을 수행하는 코드를 넣어 줍니다.
data: wa1 type sflight, it1 type table of sflight.
...................
....................
constants: mark value 'X'.
start-of-selection.
case mark.
when modify01.
perform subroutine_modify_sflight.
이런식으로 서브루틴이 돌아가도록 하고 Form에서 SQL을 사용해서 it1이 sflight로부터 값을 받고 다시 DB 테이블인 zsflight에서 modify등을 하도록 합니다.
마지막으로 GUI status에서 실행단추를 추가 시켜줍니다.
그리고 실행을 합니다. 4개의 칼럼이 있는 테이블이 화면에 뜹니다.
라디오 버튼을 하나 클릭하고 실행버튼을 누릅니다.
"땡~"하고 경쾌한 소리가 납니다. 하지만... DB 테이블에서 작업이 이루어 지지 않습니다. ㅠ _ㅠ ;;;
이것을 그대로 탭을 쓰지 않고 라디오버튼만 만들어서 실행을 하면 제대로 동작을 합니다.
그리고 탭은 오류하나 없이 완벽히 만들었습니다.
어디에서 잘못된 걸까요;;
DATA: IT_SFLIGHT LIKE ZSFLIGHT OCCURS 0 WITH HEADER LINE.
SELECT * INTO CORRESPONDING FIELDS OF IT_SFLIGHT
FROM SFLIGHT.
MODIFY ZSFLIGHT FROM TABLE IT_SFLIGHT.
MODIFY 를 어떤식으로 하셨는지 잘 모르겠군요. 일단 이런식으로 한번 테스트 해보시는건 어떨지요~