300x250
728x90

# Subtotal에 대해서


2024.02.21 - [.SAP/..ABAP] - SAP ALV SubTotal(소계) 정리

 

SAP ALV SubTotal(소계) 정리

시작하기 전.. #언젠간 한 번은 해보지만 안 해보면 까먹는 소계... # Layout을 통해서 소계를 지정할 수도 있고, 로직을 통해서 소계를 지정할 수도 있다. # 방법은 여러 가지이기 때문에 참고 바란

potato98.tistory.com

 

 

* 기본적인 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( 필드심볼 ) 정리, 예제

 

SAP FIELD SYMBOL( 필드심볼 ) 정리, 예제

# FIELD SYMBOL( 필드심볼 )에 대해서 - ABAP 프로그램 내에서 동적으로 Data를 선언할 수 있다.- 필드심볼은 메모리를 점유하는 것이 아닌 주소만 가지고 있다.- 필드 심볼은 모든 Data Object 선언이 가능

potato98.tistory.com

 

 

# 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

'.SAP > ..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