안녕하세요..
음..어떻게 설명해야 할지...
○ 프로그램 설명
1. screen 1000 : ALV로 Header list 출력
2. screen 0100 : Header list 더블클릭시 Item 목록을 screen 0100으로 출력
3. screen 0200 : Item list 더블클릭시 다시 screen 0200(PA Characteristics수정창) 출력
(펑션을 이용하므로 해당 프로그램상의 스크린이 아님):
4. screen 0200 : PA Characteristics값 수정 -> 저장 -> screen 0200번 닫힘
5. screen 0100 : 다시 확인버튼 누름(leave screen) -> 닫힘 -> screen 1000
=> leave to screen 0를 하면 screen0200상에서 저장버튼 누를시 0100까지 닫혀져 버림.
○ 문제점
screen 0200(PA Characteristics수정창)상에서 그냥 키보드로 값을 입력할 경우엔 아무런 문제가 없습니다.
그런데... search help를 이용하여 값을 선택을 할 경우 아래와 같이 덤프가 뜹니다.
이때도.. screen 0200을 닫고 난 뒤 0100목록을 한번 찍고 난 뒤 확인(즉,5번에서 event를 실행)을 누를 경우,
덤프 없이 제대로 작동을 합니다.
제 소견으로는 search help를 누름으로 인해서 프로그램상에서 해당 screen을 찾지 못하는 것이 아닌가 하는데..
이렇게 설명을 해서 이해하시기 힘들겠지만 혹시 이런 경험을 해 보신 분이 있으시다면..
답변 부탁드립니다.
○ 덤프 내역 :
Runtime Errors CONVT_NO_NUMBER
Exception CX_SY_CONVERSION_NO_NUMBER
2 METHOD GET_EVENT_PARAMETER.
3 DATA : PARAMVAL TYPE STRING.
4 data l_event type ref to cl_gui_event.
5 * (PARAMETER_ID, QUEUE_ONLY; PARAMETER)
6 * check handle
7 IF H_CONTROL IS INITIAL.
8 RAISE CNTL_ERROR.
9 ENDIF.
10 IF XML_BLOB_SUPPORT EQ 'X'.
11 call method cl_gui_cfw=>get_current_event_object
12 receiving event_object = l_event.
13 if not l_event is initial.
14 CALL METHOD l_EVENT->GET_EVENT_PARAM
15 EXPORTING
16 PID = PARAMETER_ID
17 IMPORTING
18 VALUE = PARAMVAL.
>>>>> PARAMETER = PARAMVAL. => 이부분에서
0 수정된값
으로 되어 수정된값이 숫자가 아니어서 덤프가 뜨는 것으로 되어 있습니다.
하지만 Break point를 걸어도 걸리지도 않음..
댓글 3
-
하얀콩
2009.06.19 02:05
-
CarpeDM
2009.06.19 22:18
잘 모르겠지만, 혹시나 혹시나 해서 'GET_EVENT_PARAM' Method의 exporting parameter 'PID'가 type I 로 되어 있는데 혹시 여기에서 문제가 생긴건 아닐까요?
-
하얀콩
2009.06.20 00:56
CarpeDM님 신경써 주셔서 무지 감사합니다..
열심히 들락 날락했는데.. 답변 한분..ㅋㅋ
해결했습니다. 열심히.. 삽질을~!!
제가 잘못한 부분은 class의 개념을 잘 못랐다는거..ㅠㅠ
그리고 기존 소스는 command 부분을 타면서 event가 산발적으로 발생하여 예기치 못한 에러를 발생시킨 것 같습니다.
그래서 명확하게 HOTSPOT_CLICK 이벤트를 타는 Method를 생성하여 원하는 액션을 취하니..
전혀 문제가 없네요... 열공~!!
헉헉.. 넘 기네요..ㅠㅠ
그래도 부탁드려요..