현재 그림과 같이 100번 ALV화면에서 버튼클릭시 (신규생성이나 선택수정 ) 200번 화면으로 나오는데요
신규생성일때는 자재유형과 플랜트를 입력할수 있게 하고
선택수정일때는 조회만 되게 하고 싶습니다..
그래서 200번 화면에
PROCESS BEFORE OUTPUT.
MODULE PBO_SCREEN_SCR0200. "요부분에서
MODULE STATUS_0200.
PROCESS AFTER INPUT.
MODULE EXIT_0600 AT EXIT-COMMAND.
MODULE USER_COMMAND_0200.
LOOP AT SCREEN. 으로 변형을 해줘야 하는건 알겠는데요
SCREEN-OUTPUT = 0. ? 이렇게 쓰는건 아닌가요?
어떤식으로 쓰는지 잘 모르겠습니다..
도와주세요 ~
감사합니다~
댓글 2
-
버미!
2010.06.24 17:11
-
데이비듀
2010.06.26 01:02
스크린 정보에 대해서 '신규 생성' 버튼 클릭시와 '선택 수정' 버튼 클릭시로 로직을 분기해서
1) 신규 생성 클릭시엔 해당 필드의 속성을 입력 가능하게,
2) 선택 수정 클릭시엔 해당 필드의 속성을 입력 불가능 하게
하도록 로직을 짜면 됩니다.
이 말을 아밥 소스로 표현 하면 아래와 같이 사용하시면 됩니다.
( 스크린 200 PBO에서 모듈 하나 생성후 그 안에 코딩 합니다.)
loop at screen. => 스크린 200에 대한 스크린에 나타난 모든 변수들에 정보를 가지고 있는 인터널 테이블 이름이 screen 입니다.
case ok_code.
when '신규 생성'. => 버튼 클릭시 값을 넣어 주세요.
if screen-name = 자재유형 or screen-name = 플랜트. => screen_layout 가서 이름 확인 하세요.
screen-input = 1.
screen-output = 0.
modify screen.
endif.
when '선택 수정'. => 버튼 클릭시 값을 넣어 주세요.
if screen-name = 자재유형 or screen-name = 플랜트.
screen-input = 0.
screen-output = 1.
modify screen.
endif.
endcase.
endloop.
일단 100번에서 신규생성인지 수정인지 알수 있는 글로벌 변수를 선언하시고, 200번에서는 스크린 레이아웃들어가서
자재유형과 플랜트 각각 속성창에서 Group에 아무거나 예를들어 A01 이라 둘다 넣으시고 액티베이션합니다.
그 다음에 PBO_SCREEN_SCR0200.에서
LOOP AT SCREEN.
if screen-group = 'A01' and if 신규라면.
"여기에 스크린 제어 코드 ex screen-output = 1. 등...이게 맞나 가물가물 하네..
else.
"여기에도 스크린 제어코드
screen-output = 0.
endif.
endloop.
위의 방법을 참고해서 하시면 됩니다.