서브토탈(Subtotal, 소계)을 위해서는 SUM, SORT, SUBTOTAL 3단계가 필요하다.
SUM
SORT
Subtotal 하고자 하는 column 기준으로 정렬
SUBTOTAL
**** top 선언 ***
gs_sort TYPE lvc_s_sort,
gt_sort TYPE lvc_t_sort.
필드카탈로그의 구조를 생성하는 코드에서 작성하며, 작성 시 SUM이 구현된 스크린이 표시된다.
gs_fcat-do_sum = 'X'.
gs_layout-totals_bef = 'X'.
를 추가하면 총계가 가장 위 행에 표시된다.GS_LAYOUT-NO_TOTLINE = 'X'.
를 추가하면 총계가 보이지 않는다.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 한다. (에러가 없다면 빼도 무관)
it_sort = gt_sort.
ALV 디스플레이 메서드(SET_TABLE_FOR_FIRST_DISPLAY)의 CHNAGING 옵션에 SORT 기준을 추가한다.
gs_sort-subtot = 'X'.
필드카탈로그에서 SORT 조건을 입력한 코드에 추가한다.
서브토탈(소계) 되는 가장 마지막 컬럼에 작성한다.
리포트 프로그램이므로 report transaction
을 선택한다.
스트럭처 LVC_S_LAYO(레이아웃), LVC_S_FCAT(필드카탈로그)를 검색하면 모든 옵션들을 볼 수 있다.
LVC_S_LAYO | LVC_S_FCAT |
---|---|
레이아웃 | 필드카탈로그 |