SCREEN 100에 상단에는 컨테이너를 하나 배치해서 ALV Grid를 표시하도록 구성하고
화면 하단에는 일반적인 컨트롤을 배치해서 상단에 조회된 내역을 더블클릭하면
화면 하단에 자세한 정보를 표현해 주도록 구성했습니다.
ALV는 Class 방식으로 구현했습니다.
ALV 이벤트 중에서 더블클릭 이벤트가 발생하면 화면 하단에 배치한 컨트롤에
Grid에서 읽은 값을 넣어주는것 까지 코딩을 했는데 실제 화면에는 값이 나타나지 않습니다.
(Golbal 변수로 선언해서 해당 변수에 값을 넣어 주었습니다.)
제 생각으로는 PBO 모듈을 다시 호출하지 않아서 화면에 뿌려주지 않는것 같습니다.
그래서 ALV 이벤트에서 더블클릭이 발생한 후 SCREEN 100을 다시 호출해 주어서
화면에 표시했습니다.
SCREEN을 더블클릭 할 때만다 다시 호출을 하다 보니 SCREEN이 계속 화면에 뿌려지고
있어서 앞화면으로 가려고 하면 이전에 클릭한 내역이 화면에 표시되는 문제도 있고
더 큰 문제는 계속 화면이 생성되다 보니 더블클릭을 너무 많이 하면 덤프가 떨어지기도 합니다.
화면 상단에 간력한 List 화면을 구성하고 해당 내역을 클릭했을 경우 화면 하단에 상세
내역을 보여주는 방식을 구현 하려고 할 경우 어떻게 작업을 해야 할까요?
Sub Screen을 사용한다거나 해야 하는 것인지 아니면 다른 간단한 방법이 있을까요?
댓글 6
-
쭈니
2009.04.17 23:06
-
준서기
2009.04.17 23:54
쭈니님께서 답변해 주신 부분하고 제 질문하고는 조금 틀린것 같습니다.
우선 ALV에서 더블클릭을 하고나서 CALL SCREEN 100 을 호출해서 화면을 다시 그려주고 있습니다.
제가 알고 있기로는 CALL SCREEN 명령을 계속 사용할 경우 새로운 화면을 다시 그려 주는 것으로 알고
있습니다. 그렇기 때문에 CALL SCREEN 명령을 중복해서 실행할 수 있는 횟수가 정해져 있고(대략 50번 정도)
F3 키를 누를 경우 이전화면 즉 이전에 호출한 SCREEN 으로 되돌아 가는 것으로 알고 있습니다.
문제는 동일한 양식의 데이터를 화면에 보여주는데 매번 새로운 SCREEN을 그리고 있기 때문에 화면 클릭을
많이 한 경우 덤프가 떨어질 수 있다는 것입니다.
제가 구현하고자 하는 방향은 화면 자체는 다시 호출 하지 않으면서 화면에 출력해 주는 값 만을 다시 뿌려 주는
방식이 없는가 하는 것입니다.
PBO 이벤트만 사용자가 호출 할 수 있다면 가능 할거 같기도 한데 PBO, PAI 이벤트는 사용자가 호출이 불가능
하고 시스템에 의해서만 호출 가능 하다고 알고 있습니다.
-
숟가락맨
2009.04.18 01:27
더블클릭 데이터 처리 로직 마지막에
call method cl_gui_cfw=>set_new_ok_code
exporting
new_code = 'ETC'.
이런 로직을 쓰면 pai를 타고 pbo를 탑니다...
물론 pbo를 탈때 alv는 리플레쉬 같은게 돼게 돼어 있는거죠?
-
준서기
2009.04.18 02:28
숟가락맨님 감사합니다.
위 코드로 적용 했더니 제가 원하던 결과가 잘 나옵니다.
감사합니다.
-
쭈니
2009.04.18 02:30
역시 고수분들은 틀리네요~^^
저도 하나 배우고 갑니다~~
숟가락맨님 감사~~~합니다~~!!
-
쿵푸ㅋ
2009.04.20 20:01
참고합니다 ^^
제가 제대로 이해를 하고있는건지는 모르겠습니다.
일단 더블클릭 이벤트를 쓰셨지만, 전 화면으로 돌아가지 않은 문제로 다른걸 보려면 계속 더블클릭을 해야 하고
덤프가 생긴다는거 같습니다.
그런경우에는 이벤트 발생하고난 후 call screen을 사용하여 전 화면으로 넘어가게 하는건 어떨까 합니다.
그렇게 한다면 계속 화면이 생성되어서 덤프가 생기는 문제는 해결이 될듯합니다만,,
아직 짧은 지식으로 답변을 제대로 달아드리지 못하는점 양해 부탁드립니다.
더 고수분들이 답변을 달아 드리겠지만, 저도 배우는 입장이고하니까요.
제 의견도 달아보면서 고수분들의 답변을 보고 저도 배우고있습니다.
제가 도움이 안되었다면, 너그럽게 아직 짦은 지식과 경험이 없으니, 양해 부탁드립니다.