평소에 ALV 를 그리던 방식과는 다르게 'REUSE_ALV_GRID_DISPLAY'로 ALV를 그리게 되었다.
ALV로 데이터를 띄운다음 여러개의 데이터를 선택해서 BDC를 돌려야 하는 상황인데
오브젝트변수를 만들어준게 없어서 GET_SELECTED_ROWS를 사용할수 없는 상황..
REUSE_ALV_GRID_DISPLAY 에서 다중선택한 행 정보들을 얻는것은 훨씬 간단하다는것을 알게 되었다.
FM 'REUSE_ALV_GRID_DISPLAY'에서 'IS_LAYOUT' 파라미터에 해당하는 ALV레이아웃 추가하기.
- ALV레이아웃에 기능이 담겨있다.
- 레이아웃의 BOX_FIELDNAME 에 CHAR1자리 필드를 만들어 그 필드이름을 넣어준다.
- 그러면 선택된 여러라인의 필드값에 'X'가 들어간다.
1.선언부
GT_OUTTAB에 CHAR 1자리 필드를 하나 추가로 만든다. 여기선 그 필드이름을 'MARK'라고 만들었다 치자!
TYPE-POOLS: slis.
DATA : gs_layout TYPE slis_layout_alv.
**추가로 ALV에 띄워줄 데이터를 담은 GT_OUTTAB에 CHAR 1자리 필드를 하나 추가로 만든다!
2. 레이아웃 변수의 BOX_FIELDNAME 속성에 필드이름을 넣어준다.
gs_layout-box_fieldname = 'MARK'.
3. ALV함수 호출 시 파라미터 IS_LAYOUT을 추가한다.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gs_repid
i_callback_pf_status_set = gs_status
i_callback_user_command = gs_user_command
i_default = gs_default
is_layout = gs_layout "<<<<<<<<<<<<<<<<<<<----이 라인을 추가!!!!"
it_fieldcat = gs_fieldcat_t[]
i_save = 'A'
TABLES
t_outtab = gt_outtab
EXCEPTIONS
program_error = 1
OTHERS = 2.
4. 디버깅을 통해 확인해보면,
이렇게 총 3개의 데이터중 2,3라인의 데이터를 선택하고 실행했을 때
이렇게 선택한 2번ROW와 3번ROW에만 'X'값이 들어가있는것을 확인할 수 있다!
레이아웃 기능만 하나 추가하면 되니 훨씬 편리한듯!!
반응형
'ABAP' 카테고리의 다른 글
[SAP_ABAP] 테이블 유지보수기(Table Maintenance Dialog) #3.유지보수뷰 티코드 T-code 만드는법 (1) | 2023.08.30 |
---|---|
[SAP_ABAP] 유지보수 뷰 이벤트 생성 시 'Statement is not accessible.' 오류 (0) | 2023.08.14 |
[SAP_ABAP] DELETE itab WHERE조건에서 두 값을 제외하고 지워주고 싶을 때 (0) | 2023.06.15 |
[SAP_ABAP] 메세지 구문 안에 작은따옴표(')넣어주고 싶을 때 (0) | 2023.06.14 |
[SAP_FI]T-CODE BP에서 FI고객 [국가 고유의 인핸스먼트] 탭 데이터 담겨있는 테이블 정보 찾기 (0) | 2023.06.12 |