SAP/ABAP

Functional ALV 에서 선택한 컬럼 가져오는 함수 : REUSE_ALV_GRID_LAYOUT_INFO_GET

그녀는애교쟁이 2015. 10. 1. 10:17
반응형

요즘은 대부분 Class ALV 를 사용하지만 이전에 개발된 레포트는 아직 Functional ALV 를 사용하고 있는 프로그램들이 많이 있다. Class ALV 보다 기능이 적다고 생각하지만 정작 찾아보면 Class ALV 에 있는 기능을 대부분은 함수 형태로 제공을 하고 있다. 오늘 포스팅 할 내용도 그 부분의 연장 선상의 내용이다.


Functional ALV 에서 특정 컬럼을 선택해서 그 선택한 컬럼만 그래프로 표현을 하고 싶어서 함수를 찾아 보았다. 


DATA : gt_marked_columns  TYPE  slis_t_fieldcat_alv.    
DATA : lv_field(30),
           ls_column TYPE slis_fieldcat_alv,
           lv_marked_colums TYPE i.

CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
     IMPORTING
        et_marked_columns = gt_marked_columns.

DESCRIBE TABLE gt_marked_columns LINES lv_marked_colums.
IF lv_marked_colums IS INITIAL.
      MESSAGE s000 DISPLAY LIKE 'W' WITH text-014.  " 컬럼선택
      EXIT.
ELSEIF lv_marked_colums > 4.
      MESSAGE s000 DISPLAY LIKE 'W' WITH text-015.  " 4개이상불가
      EXIT.
ENDIF.


이 함수를 찾는데 엄청 많은 시간이 걸렸다. 그러나 효과만은 확실하다. Functional ALV 에서 선택하는 컬럼을 gt_marked_columns 테이블에 넣어주니 루프를 돌리면서 컬럼의 데이터를 읽어서 처리를 하면 된다. 



외국 사이트를 많이 조사를 하면서 핫스팟을 넣어라 Class ALV 로 변경해라 등등 많은 내용이 있었지만 결국 REUSE_ALV_GRID_LAYOUT_INFO_GET 함수 한방으로 해결했다. 컬럼 선택을 핫스팟으로 하라니 참 어이가 없엇다. Class ALV 에도 동일한 기능을 하는 method 를 찾아봐야겠다.