기본적인 컨셉은...
display 필드명과 데이터가 다를 경우에는 화면에 텍스필드를 별도로 추가하여 listbox로 활용한다.
선택할 때마다 onchaged event 에서 함께 값 필드를 update 해줌
필드카탈로그에 핸들러를 등록 (아래는 내가 쓰는 템플릿이므로 필드카탈로그에 DRDN_HNDL 을 추가하면 됨.)
'S' 'INSPUD1_TXT' ' ', "1차 판정
' ' 'COLTEXT' TEXT-D05,
' ' 'EDIT' 'X',
' ' 'DRDN_HNDL' '1' ,
'E' 'KEY' ' ',
' ' '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.
* 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 |