멀티 셀렉션 기능(버튼)을 두가지 방법으로 주로 만들고 있는데,,,
두개나 너무 생성이 번거롭네요.
간편한 방벙이 있나요?
제가 주로 사용하는 방법은 아래와 같습니다.
1. select-options 를 이용하여 화면에 구현한 후,
그 화면을 서브 스크린으로 넣는 방법.
2. 버튼 마다 변수를 선언하고, 각 버튼을 변수로 컨트롤 하는 방법.
간단한 방법 없을까요?
소스가 너무 지저분해요 ㅠㅠ
댓글 6
-
썬바바
2009.07.24 20:42
멀티 셀렉션 하는 화면이 최초 화면인가요? 그것을 On-Line으로 구성하는건가요?? -
꼬꼬마정수기
2009.07.24 23:35
걍 테이블 컨트롤 쓰시면 어때요? -
activeman
2009.07.25 03:42
1번이 간단하고 쉽게 만들수 있는 방법이 아닌가요?.. 개인적인 차이가 있겠지만
1번이 쿼리를 만들기 쉽고 코딩도 2번 보다는 쉽겠지요.
selection-screen으로 스크린 만들고(물론 select-options을 넣구요) 보여줄 화면에 sub screen 하나 만들어서
call sub screen 하시면 쉽게 멀티 설렉션 기능을 사용하면서 쿼리도 IN을 사용해서 간단하고 보기 좋을 것
같습니다.
즐밥하세요..
-
쿨쿨
2009.07.25 12:16
답변, 모두 감사합니다.
1번이 간단하긴 한데요~
필드에서 위치 지정등을 소스로 모두 제어해야하는 불편함이 있습니다;;
꼬꼬마정수기//테이블 컨트롤을 쓴다는 것은 어떤 말씀이신지요??
썬바바//온라인 프로그램입니다.
-
썬바바
2009.07.27 19:25
위의 화면을 Include XXXXXXTOP에 아래와같이 선언하면됩니다.
*&---------------------------------------------------------------------*
* Define Screen *
*&---------------------------------------------------------------------*
SET EXTENDED CHECK OFF.
SELECTION-SCREEN BEGIN OF SCREEN 100 AS WINDOW.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr,
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN END OF SCREEN 100.
즉 100번화면을 만들고
위의 화면에서 즉 실행버튼을 누르면 아래 로직을 타고 갑니다. 즉 실행결과를 200번에서 보여주게 되는겁니다. 전 가끔이런식으로 처리를 합니다.
AT SELECTION-SCREEN.
IF sy-ucomm EQ 'CRET'.
LEAVE TO SCREEN 200.
ENDIF.
-
쿨쿨
2009.07.29 07:10
답변 모두 감사합니다.
서브 스크린 방식이 제일 쉬운 것 같네요~^^