일반적으로 ALV 리포트를 출력할 때 페이지 타이틀은 별도로 출력 되지 않습니다.
하지만 타이틀과 함께 조회 조건 등을 페이지 헤더의 타이틀 부분에 함께 표시해 주면 리포트를 이해하는데 훨씬 도움이 됩니다.
이번 글에서는 ABAP ALV Report의 페이지 타이틀(TOP_OF_PAGE)를 출력하는 방법을 예제를 통해 알아보겠습니다.
WRITE 구문으로 리포트를 만드는 일반 Report 프로그램의 Header를 구현하는 것처럼 ALV 리포트의 헤더 부분에 리포트의 제목을 출력하고, 조회 일자를 출력하고, 조회 결과의 레코드 수를 출력하는 등 여러가지 정보를 페이지 타이틀 부분에 출력할 수 있습니다.
ALV 리포트의 페이지 헤더 타이틀이 출력 된 결과 미리보기
▼ 아래 화면은 ALV 리포트의 페이지 헤더 부분에 리포트의 제목, 조회 일자, 조회 된 레코드 수를 함께 보여주고 있습니다.
ALV Grid에서 리포트 타이틀을 출력하는 ABAP Source 주요 부분
▼ ALV Grid를 실제 출력하는 부분 입니다.
ALV 리포트의 타이틀을 출력하기 위해 i_callback_top_of_page = ‘TOP-OF-PAGE’ 부분을 선언해 주었습니다.
*&———————————————————————* *& Form DISPLAY_ALV_REPORT *&———————————————————————* * Display report using ALV grid *———————————————————————-* FORM display_alv_report. gd_repid = sy-repid. CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’ EXPORTING i_callback_program = gd_repid i_callback_top_of_page = ‘TOP-OF-PAGE’ ” ALV 상단의 타이틀 표시 it_fieldcat = fieldcatalog[] i_save = ‘X’ TABLES t_outtab = it_ekko EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFORM. ” DISPLAY_ALV_REPORT |
▼ ALV 리포트의 실제 타이틀을 구성하는 부분입니다.
Header(H), Selection(S), Action(A) 세가지 타입으로 정의해서 타이틀을 구성할 수 있습니다.
CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’을 사용해서 정의한 타이틀을 출력하게 됩니다.
*——————————————————————-* * Form TOP-OF-PAGE * *——————————————————————-* * ALV Report Header * *——————————————————————-* FORM top-of-page. * ALV Header declarations DATA: t_header TYPE slis_t_listheader, wa_header TYPE slis_listheader, t_line LIKE wa_header-info, ld_lines TYPE i, ld_linesc(10) TYPE c. * Title 출력 wa_header-typ = ‘H’. ” H = Header, S = Selection, A = Action wa_header-info = ‘EKKO Table Report’. APPEND wa_header TO t_header. CLEAR wa_header. * Date 출력 wa_header-typ = ‘S’. ” H = Header, S = Selection, A = Action wa_header-key = ‘Date: ‘. CONCATENATE sy-datum+6(2) ‘.’ sy-datum+4(2) ‘.’ sy-datum(4) INTO wa_header-info. “todays date APPEND wa_header TO t_header. CLEAR: wa_header. * it_ekko의 라인 수 출력 DESCRIBE TABLE it_ekko LINES ld_lines. ld_linesc = ld_lines. CONCATENATE ‘Total No. of Records Selected: ‘ ld_linesc INTO t_line SEPARATED BY space. wa_header-typ = ‘A’. ” H = Header, S = Selection, A = Action wa_header-info = t_line. APPEND wa_header TO t_header. CLEAR: wa_header, t_line. CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’ EXPORTING it_list_commentary = t_header. ENDFORM. “top-of-page |
※ 참고로 여기에서 FORM으로 정의한 TOP_OF_PAGE는 ABAP 프로그램의 ‘TOP_OF_PAGE’ 이벤트와는 다른 의미입니다.
일반적인 FORM 선언이며 다른 이름으로 정의해서 사용해도 됩니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
- ABAP ALV Report에서 조건에 따라 필드에 서로 다른 색상을 지정하는 방법
- ABAP ALV의 헤더 제목을 여러 줄(Multi Line)로 출력하는 방법
- ABAP ALV Report의 페이지 헤더에 로고 이미지를 삽입해서 보여주는 방법
- ABAP Report 프로그램에서 Pushbutton을 사용하여 통합 메뉴를 구성하는 방법
- SAP ABAP의 날짜와 관련한 함수 모음 16가지
- SAP의 텍스트오브젝트 및 ID를 만들고 텍스트를 읽고 저장하는 방법-Long Text
- ABAP Dictionary에서 테이블 인덱스(Index)를 생성하고 활성화 하는 방법
이 글이 도움이 되었기를 바랍니다. ^-^