[ABAP] [ALV] 총계, 소계 추가하기 (Sum, Sort, Subtotal)

홍예림·2023년 8월 1일
0

SAP ABAP 코딩하기

목록 보기
2/8
post-thumbnail

서브토탈(Subtotal, 소계)을 위해서는 SUM, SORT, SUBTOTAL 3단계가 필요하다.


🛑 DB 테이블 리스트 조작

1. SUM


2. SORT

Subtotal 하고자 하는 column 기준으로 정렬


3. SUBTOTAL


🛑 소스코드

**** top 선언 ***
gs_sort       TYPE lvc_s_sort,
gt_sort       TYPE lvc_t_sort.

1. SUM

필드카탈로그의 구조를 생성하는 코드에서 작성하며, 작성 시 SUM이 구현된 스크린이 표시된다.

gs_fcat-do_sum = 'X'.
  • 필드카탈로그 옵션에서 gs_layout-totals_bef = 'X'. 를 추가하면 총계가 가장 위 행에 표시된다.
  • 레이아웃 옵션에서 GS_LAYOUT-NO_TOTLINE = 'X'. 를 추가하면 총계가 보이지 않는다.

2. SORT

필드카탈로그 세팅

  1. 필드카탈로그에서 필드구조를 정의하는 PERFORM문 아래 줄에 작성한다.
IF gt_sort is INITIAL.
  
  PERFORM make_sort.

ENDIF.
FORM make_sort .

  gs_sort-spos      = 1.   "<--- 정렬 우선순위(sort-order)--->
  gs_sort-fieldname = 'CARRID'.
  gs_sort-up        = 'X'. "<--- 어센딩--->

  APPEND gs_sort to gt_sort.
  clear gs_sort.

  gs_sort-spos      = 2.
  gs_sort-fieldname = 'CONNID'.
  gs_sort-down        = 'X'.  "<--- 여기 필드는 디센딩 --->

  APPEND gs_sort to gt_sort.
  CLEAR gs_sort.

  SORT gt_sort BY fieldname.  "<--- 덤프(에러) 발생 방지를 위한 정렬 --->

ENDFORM.

fieldname을 알파벳 순서대로 APPEND 하지않으면 에러가 발생하기도 한다. APPEND 후 fieldname으로 한 번 더 sort 한다. (에러가 없다면 빼도 무관)

ALV 그리드 세팅

it_sort = gt_sort.

ALV 디스플레이 메서드(SET_TABLE_FOR_FIRST_DISPLAY)의 CHNAGING 옵션에 SORT 기준을 추가한다.

3. SUBTOTAL

gs_sort-subtot = 'X'.

필드카탈로그에서 SORT 조건을 입력한 코드에 추가한다.
서브토탈(소계) 되는 가장 마지막 컬럼에 작성한다.


🛑 Tcode 붙이기

리포트 프로그램이므로 report transaction을 선택한다.


🛑 다양한 옵션들

스트럭처 LVC_S_LAYO(레이아웃), LVC_S_FCAT(필드카탈로그)를 검색하면 모든 옵션들을 볼 수 있다.

LVC_S_LAYOLVC_S_FCAT
레이아웃필드카탈로그
profile
SYNC 3기 5반 2023.07 - 2023.12

0개의 댓글