alv 엑셀 다운로드

ABAP2XLSX는 ABAP 프로그램 내에서 Excel 스프레드시트를 생성할 수 있는 오픈 소스 기능입니다. 기술 대상 (https://whatis.techtarget.com/fileformat/XLSX-Microsoft-Excel-Open-XML-Document)에 따르면: 우리는 두 단계로이 작업을 수행 할 수 있습니다. 첫 번째는 각 ALV 보고서의 콘텐츠를 Excel 스프레드시트의 별도 워크시트로 캡처하는 기능을 제공하는 것입니다. 이를 위해 이제 ABAP2XLSX에서 제공하는 기능을 사용합니다. 클래스 zcl_excel 인스턴스에 대한 참조로 사용할 변수를 선언하는 데이터 문이 필요합니다. 이 모든 것이 도구 상자의 다른 장소에 기록되었습니다. 각 최상위 org.units (부서라고 부름)가 자체 Excel 워크 시트에 배치되도록 이전 예제를 복잡하게 만듭니다. 조직 단위의 이름과 ID를 표시하는 헤더를 배치하는 트리를 Ubove로 만듭니다. 이제 ABAP2XLSX의 기능을 사용하여이 간단한 프로그램을 중첩하고 모든 ALV 보고서 출력을 단일 Excel 스프레드 시트로 수집하고 스프레드 시트를 인터넷 전자 메일 주소로 보낼 수있는 기능을 제공합니다. 이 경우 ALV 보고서 중 하나의 내용을 포함하는 각 워크 시트와 함께 세 개의 별도 워크 시트가 포함 된 단일 Excel 스프레드 시트를 만든 다음이 Excel 스프레드 시트를 전자 메일 주소로 전자 메일 첨부 파일로 보냅니다. 이 예제에서는 이전 예제와 마찬가지로 Excel 양식에 CL_GUI_ALV_TREE(CL_HRPAYNA_GUI_ALV_TREE)를 삽입하는 방법을 보여 줍니다. 매우 긴 목록의 경우 사용자는 총 선의 작은 단추를 클릭하여 소계 레벨을 계산한 다음 축소할 수 있습니다. 특정 소계 선도 축소하거나 확장할 수 있습니다.

사용자는 또한 ABC 분석 도구와 같은 기능을 사용하여 데이터 분석을 용이하게 합니다. 목록을 인쇄하려면 ALV 그리드 컨트롤이 SAP 목록 뷰어를 호출합니다. 또는 사용자는 목록을 MS Word 또는 MS Excel로 내보낼 수 있습니다. 일반적으로 Excel로 작업하는 사람들을 위해 ALV 그리드 컨트롤은 그리드와 Excel 인라인 디스플레이 간에 전환하는 기능을 제공합니다. 이름 ABAP2XLSX 완벽하게 그것이 무엇을 설명하고, 최근 미래에 그의 책 ABAP에서 폴 하디의 우수한 계정을 읽은 후, 나는 그것이 엑셀 스프레드 시트로 ALV 테이블 출력을 변환 할 수있는 방법을 확인하기 위해 더 탐구하기 시작했다. https://github.com/ivanfemia/abap2xlsx 통해 GitHub에서 무료로 다운로드 할 수 있으며, 내 사이트의 SAP 환경에서 이미 사용할 수 있음을 발견했습니다. 주로 ABAP 글로벌 클래스 및 인터페이스의 모음으로 제공되지만 명명 규칙 ZDEMO_EXCEL*에 따라 수많은 간단한 보고서 데모 프로그램이 있습니다. 이 중 a) ALV 보고서에 대한 콘텐츠를 제공하는 데 사용되는 테이블에서 Excel 스프레드시트를 만들고 b) 스프레드시트를 전자 메일 수신자에게 보내는 방법에 대한 좋은 예를 ZDEMO_EXCEL3 발견했습니다.

이를 구현하기 위해 컨텍스트를 테이블로 만듭니다. 컨텍스트의 각 행은 새 부서를 참조하므로 Excel의 새 워크시트를 참조합니다. 따라서 컨텍스트의 각 행에는 워크시트에 삽입할 ALV-Tree(부서 조직 계층 구조 포함)와 헤더에 표시할 조직 단위의 이름/ID가 포함됩니다. 여기에 요구 사항은 ALV 출력과 함께 ALV 보고서의 선택 화면에서 라디오 버튼 (XLS에서 자동 다운로드)을 확인하는 엑셀 시트를 다운로드하는 것입니다. 나는 FM `GUI_DOWNLOAD`를 사용하여 엑셀의 자동 다운로드를 달성 할 수 있었다 . 그러나 이 Excel에서 생성된 모든 열에는 선택 화면에서 선택한 레이아웃뿐만 아니라 모든 열이 있습니다. 그러나 비즈니스는 ALV 출력과 동일한 순서로 선택한 열 목록만 가져야 합니다. 이 프로그램은 이제 세 개의 워크 시트를 포함하는 Excel 스프레드 시트를 작성하지만 아무 작업도 수행하지 않습니다. 이 Excel 스프레드시트를 자체 이메일 주소로 메일로 보내도록 하는 코드를 포함해 보겠습니다. 다음은 이 작업을 수행하는 새 서브루틴이며, 이 서브루틴은 개체 ZDEMO_EXCEL_OUTPUTOPT_INCL 정의된 클래스 lcl_ouput 서브루틴 send_mail 따라 모델링되었습니다.