본문 바로가기

ABAP 물타기/ALV

ALV : Dropdown list OR Listbox


기본적인 컨셉은...
display 필드명과 데이터가 다를 경우에는 화면에 텍스필드를 별도로 추가하여 listbox로 활용한다.
선택할 때마다 onchaged event 에서 함께 값 필드를 update 해줌

필드카탈로그에 핸들러를 등록 (아래는 내가 쓰는 템플릿이므로 필드카탈로그에 DRDN_HNDL 을 추가하면 됨.)
   'S'  'INSPUD1_TXT'           ' ',      "1차 판정
  ' '  'COLTEXT'           TEXT-D05,
  ' '  'EDIT' 'X',
  ' '  'DRDN_HNDL'  '1'     ,
  'E'  'KEY'               ' ',



1번 핸들러에 사용될 목록을 생성
*  DATA:
*    gt_box TYPE lvc_t_dral,
*    gs_box TYPE lvc_s_dral.

  CLEAR gs_box.
  CLEAR gt_box[].

  gs_box-handle = '1'.
  gs_box-value  = text-L01. "수리가능
  APPEND gs_box TO gt_box.

  gs_box-handle = '1'.
  gs_box-value  = text-L02. "수리불가
  APPEND gs_box TO gt_box.



생성된 목록을 GRID에 등록
       
      CALL METHOD pa_grid->set_drop_down_table
        EXPORTING
          it_drop_down_alias = gt_box.

      CALL METHOD pa_grid->set_table_for_first_display

                        ....생략....

다음과 같이 결과가 생성된다.
이벤트는 CHANGED 에서 가공하도록 한다.
처음에 말한 것과 같이 텍스트를 기준으로 원래 코드값을 별도의 컬럼에 설정하도록 한다.




'ABAP 물타기 > ALV' 카테고리의 다른 글

ALV : class alv f4  (0) 2011.08.05
ALV : alv changed method & create error message  (0) 2011.07.22
ALV : modify cell, get cell  (0) 2011.07.05
CL_ALV_CHANGED_DATA_PROTOCOL  (0) 2011.07.04
ALV : SELECTED_ROWS  (0) 2011.05.19