300x250
728x90
# Subtotal에 대해서
2024.02.21 - [.SAP/..ABAP] - SAP ALV SubTotal(소계) 정리
* 기본적인 Subtotal 설정은 넘어가고 텍스트 넣는 방법으로 바로 넘어가자.
# Subtotal 기본 설정
기본적인 Subtotal은 다음과 같이 설정했다.
# SORT 기준( CARRID ) #
# SUM 기준( PAYMENTSUM ) #
# 실행화면 #
# 01. Subtotal Text(텍스트) Method 로직 설정
# 텍스트 설정 하려면 기준이 필요하다.
* 텍스트로 설정하고 싶은 필드
# 여기서 텍스트로 설정하고 싶은 것은 " Carrname " 이기 때문에 CARRNAME을 기준으로 잡아보자.
#01. 우선 Method Definition을 설정해 보자.
# ( 기본적인 Class Definition, Implementation 은 넘어가겠다 )
METHODS subtotal_text01
FOR EVENT subtotal_text OF CL_GUI_ALV_GRID
IMPORTING
es_subtottxt_info
ep_subtot_line
e_event_data.
#02. 다음인 Method Implementation을 설정해 보자.
METHOD subtotal_text01.
PERFORM ALV_CL_subtotal_text01
USING es_subtottxt_info
ep_subtot_line
e_event_data.
ENDMETHOD. "subtotal_text01
# 03. PERFORM 설정하자.
FORM ALV_CL_SUBTOTAL_TEXT01
USING
PS_SUBTOTTXT_INFO TYPE LVC_S_STXT
PP_SUBTOT_LINE TYPE REF TO DATA
PE_EVENT_DATA TYPE REF TO CL_ALV_EVENT_DATA .
ENDFORM.
# 04. " Carrname " 에 대한 Text(텍스트)를 가져오기 위해서는 필드 심볼을 통해서 가져와야 한다.
다음과 같이 로직을 통해서 Text를 가져올 수 있기 때문에 참고 바란다.
필요에 따라, 상황에 따라 로직을 변경하면 된다.
(로직 설명 생략)
FORM ALV_CL_SUBTOTAL_TEXT01
USING
PS_SUBTOTTXT_INFO TYPE LVC_S_STXT
PP_SUBTOT_LINE TYPE REF TO DATA
PE_EVENT_DATA TYPE REF TO CL_ALV_EVENT_DATA .
DATA:
LS_SFLIGHT LIKE SFLIGHT,
LV_NAME LIKE SCARR-CARRNAME.
FIELD-SYMBOLS:
<FS1> STRUCTURE SFLIGHT DEFAULT LS_SFLIGHT,
<FS2>.
IF PS_SUBTOTTXT_INFO-CRITERIA = 'CARRNAME'.
FIELD-SYMBOLS: <FS> TYPE ANY.
" Subtotal 이름 넣기 위한 로직 "
ASSIGN PE_EVENT_DATA->M_DATA->* TO <FS>.
" Carrname에 대한 이름 가져오기 "
ASSIGN PP_SUBTOT_LINE->* TO <FS2>.
ASSIGN COMPONENT 'CARRNAME' OF STRUCTURE <FS2> TO FIELD-SYMBOL(<FV_NAME>).
" Subtotal에 이름 넣기 "
<FS> = <FV_NAME>.
ENDIF.
ENDFORM.
필드심볼에 대해서 알고 싶으면?
2023.09.20 - [.SAP/..ABAP] - SAP FIELD SYMBOL( 필드심볼 ) 정리, 예제
# 02. SET HANDLER 설정 ( PBO )
#01. Method가 설정이 완료되면 Handler을 통해서 Event을 등록해 보자.
# 03. TEXT 설정 마지막..
#01. 우리가 텍스트로 넣고 싶었던 " CARRNAME "도 SORT 설정과 SUBTOT 설정을 해보자.
DATA:
LS_SORT TYPE LVC_S_SORT.
LS_SORT-FIELDNAME = 'CARRID'.
LS_SORT-UP = 'X'.
LS_SORT-SUBTOT = 'X'.
APPEND LS_SORT TO GT_SORT01.
CLEAR LS_SORT.
LS_SORT-FIELDNAME = 'CARRNAME'.
LS_SORT-UP = 'X'.
LS_SORT-SUBTOT = 'X'.
APPEND LS_SORT TO GT_SORT01.
CLEAR LS_SORT.
#02. 마지막으로 텍스트로 표현하고 싶은 필드( Carrname )는 " 숨김 표시 "를 해주어야 한다.
# 03. 실행을 시켜보면? 다음과 같이 나오게 된다.
#04. 여기서 두 개 말고 하나로만 나오게 하고 싶으면 " CARRID "를 빼게 되면 다음과 같이 나오게 된다.
끝..!
728x90
'.ABAP > ..모든 것' 카테고리의 다른 글
SAP Exit, Return, Stop 정리 (17) | 2024.05.30 |
---|---|
SAP Selection Screen SubScreen 설정 (2) | 2024.05.24 |
SAP WITH문 정리 (0) | 2024.05.14 |
SAP 문자열 체크하기( 전화번호, 사번 등) 정규표현식 사용 (0) | 2024.04.29 |
SAP Search Help 정리 (3) | 2024.04.23 |