SAP에서 ALV는 ABAP List Vieser의 약자입니다. ALV는 ABAP의 보고서(Report) 프로그램에 표준 리스트 형식과 사용자 인터페이스를 기본적으로 제공해 줍니다.
따라서 ALV를 활용하면 보고서(Report) 프로그램 개발에 있어 WRITE 구문 보다 훨씬 개발 시간을 단축할 수 있습니다. 그리고 WRITE 구문으로 처리하기 힘든 다양한 사용자 인터페이스도 별도 지정 없이 바로 구현할 수 있습니다.
이번 글에서는 SAP ALV 통화별(화폐 단위) 및 수량 단위별 합계를 표시하는 방법. 즉 임의 필드에 대한 총계를 표시하는 방법에 대해 알아보겠습니다.
ALV에서 통화(화폐단위)별 수량 단위별 총계 표시
ALV 보고서에서 통화(화폐 단위)별 금액의 총계를 표시하거나 수량 단위별 수량의 총계를 표시해야 하는 경우가 많이 있습니다.
뿐만 아니라 남/여 성별 총계를 표시하거나 일자별 총계를 표시하는 등 임의의 특정 필드에 대한 총계를 표시해야 하는 경우가 발생하기도 합니다.
아래 ABAP 프로그램은 SBOOK 테이블의 데이터에서 화폐단위(통화)별 총계와 중량 단위별 총계를 표시하는 ALV 예제입니다.
- 합계 표시를 위해 해당 필드의 필드 카탈로그(Filed Catalog) 정의에 DO_SUM 옵션에 ‘X’를 설정해 주면 됩니다.
- 그리고 수량 단위를 참조할 QFIELDNAME과 금액 단위를 참조할 CFIELDNAME에 해당 단위 필드를 지정해 줍니다.
REPORT YTEST0001 . TYPE-POOLS: SLIS. ” SLIS contains all the ALV data types DATA: IT_SBOOK TYPE TABLE OF SBOOK. DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV. DATA: G_REPID TYPE SY-REPID. *&———————————————————————* START-OF-SELECTION. * Select data SELECT * UP TO 10 ROWS FROM SBOOK INTO TABLE IT_SBOOK. *Build field catalog WA_FIELDCAT-FIELDNAME = ‘CARRID’. WA_FIELDCAT-SELTEXT_M = ‘항공사 ID’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘CONNID’. WA_FIELDCAT-SELTEXT_M = ‘운항연결 ID’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘FLDATE’. WA_FIELDCAT-SELTEXT_M = ‘운항일’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘BOOKID’. WA_FIELDCAT-SELTEXT_M = ‘Book. ID’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘LUGGWEIGHT’. WA_FIELDCAT-SELTEXT_M = ‘수하물중량’. WA_FIELDCAT-DO_SUM = ‘X’. WA_FIELDCAT-QFIELDNAME = ‘WUNIT’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘WUNIT’. WA_FIELDCAT-SELTEXT_M = ‘Unit’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘FORCURAM’. WA_FIELDCAT-SELTEXT_M = ‘예약가격’. WA_FIELDCAT-DO_SUM = ‘X’. WA_FIELDCAT-CFIELDNAME = ‘FORCURKEY’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = ‘FORCURKEY’. WA_FIELDCAT-SELTEXT_M = ‘Currency’. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. G_REPID = SY-REPID. * Display ALV list CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’ EXPORTING I_CALLBACK_PROGRAM = G_REPID IT_FIELDCAT = IT_FIELDCAT TABLES T_OUTTAB = IT_SBOOK EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. |
▼ 위 ABAP 프로그램의 실행 결과 입니다.
- 수하물 중량에서 중량 단위(Unit)별 합계 중량과 예약 가격에서 통화 단위(Currency)별 가격 합계가 ALV 보고서 하단에 표시되는 것을 확인할 수 있습니다.
마무리
SAP ALV에서 특정 필드에 대한 합계를 표시하는 방법은 정말 간단하다는 것을 알 수 있습니다.
단지 합계를 구하려는 필드 카탈로그의 통화 단위 또는 수량 단위에 대한 열(Filed) 이름을 지정하고, DO_SUM = ‘X’만 설정해 주면 됩니다.
그리고 이전에 포스팅한 글을 참고해서 여러 필드에 대한 소계 및 전체 합계를 표시하는 방법에 대해서도 배울 수 있습니다.
아래 도움이 될 만한 다른 포스팅 글을 참고해 보세요.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
♥ 이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.