안녕하세요..
Report->온라인 프로그램을 만들고 있습니다.
프로그램을 실행하면 바로 생성한 스크린 0100이 실행합니다.
여기서 0100 스크린을 보시면 먼저 Contract Type을 입력하고
엔터를 치면 그림처럼 Pop이 나오도록 구현하려고 합니다.
그런데 Contract Type(필드명 : TCTYP)을 입력하고 엔터를 쳤을 경우,
그 OKCode를 잡아서 처리를 해야하는데 SY-UCOMM이 널이네요
당최 이런일이...초보자에겐 어려운일이 아닐수 없습니다.
간단한 소스를 보자면
먼저 프로그램을 실행하면
INITIALIZATION.
CALL SCREEN 0100. "Screen 0100을 호출합니다.(Condition Type 입력화면)
* Screen 0100의 PBO와 PAI
PROCESS BEFORE OUTPUT.
MODULE status_0100. "Status
MODULE init_0100. "팝업을 띄우러갑니다.
PROCESS AFTER INPUT.
MODULE cancel_0100 AT EXIT-COMMAND.
module CANCEL_0100 input.
**
CASE G_OKCODE.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANC'.
ENDCASE.
**
endmodule. " CANCEL_0100 INPUT
module init_0100 output.
call screen 0110 starting at 4 4. " 팝업을 띄웁니다.
endmodule. " init_0100 OUTPUT
소스를 보시면 어디에 Screen 0100의 Contract Type 입력 필드에서
엔터를 쳤을 경우 Popup을 띄워야 되는 데,,어려워요...ㅠ.ㅠ
도와주실거죠?
고맙습니다.
댓글 3
-
SkyDream
2007.05.19 20:21
-
鵬의 날개
2007.05.21 19:48
음...initialization에서 스크린 100을 띄우는건 바람직해 보이지는 않군요...
start-of-selection으로 옮기심이...
100번 화면에서 엔터 이벤트를 먹게 할려면...
스카이드림님 말처럼 status에서 기능키 부분의 맨 처음 아이콘(v 모양) 에 정의해 주시면 됩니다...
-
김지성
2007.05.22 19:25
SkyDream님 鵬의 날개님 답변 고맙습니다.
처음 그림의 Contract Type에서 엔터를 치게 되면 Parameter 옆에 TYpe의 설명이 나타나게 되고 팝업창이 나타나도록 해야 하거든요
프로그램은 레포트로 해야겠구..레포트에서도 위의 설명처럼 엔터키를 치게 되면 Parameter옆에 Type 설명을 나타낼수가 있는지요?
반드시 initialization에서 screen 100을 호출하셔야만 했는지 이유는 잘 모르겠지만^^
현재 코딩하신 내용만을 보고 해결방법을 말씀 드리면....
일단 엔터를 쳤을때 sy-ucomm에 값이 들어오기 위해서는
100에서 사용하는 pf-status의 enter 버튼에 대해 function key를 지정하셔야 합니다.(예를 들어 'ENTR')
그리고, screen에서 발생하는 user command에 대한 처리는 PAI에서 하셔야 되구요.^^
그래서 screen 100의 PBO에 있는 MODULE init_0100 는 삭제하시고
PAI의 MODULE cancel_0100 AT EXIT-COMMAND의 다음 라인에서 MODULE init_0100을 호출해서 PAI 모듈로 코딩해 주세요.
init_0100 내부에서 sy-ucomm이 'ENTR' 일때 screen 110을 호출하도록 하면 되겠죠.
즐밥하세요~.