해당 ALV에 사용 된 필터가있을 때 표시되는 ALV 데이터를 쉽게 검색 할 수 있습니까?ABAP에서 ALV에서 필터링 된 데이터 검색
사용 된 ALV는 CL_GUI_ALV_GRID의 객체입니다. 사용자에게 표시 할 때 기본적으로 필터가 배치됩니다. 또한 사용자는 ALV의 데이터를 처리하는 버튼을 가지고 있습니다. 사용자가 ALV에 자신의 필터를 배치하더라도 프로세스가 표시된 데이터에서만 작동하는지 어떻게 확인할 수 있습니까?
예 : 10 개의 행이있는 itab에서 ALV가 만들어 지지만 ALV에 전달 된 필터가 있기 때문에 8 개의 행만 표시됩니다. 버튼을 누를 때, 나는 현재 사용자에게 보여주고있는 8 개의 열만으로 작업하기를 원합니다.
이 목적을 위해 함수 모듈을 찾으려고했지만 ALV에서 선택된 행으로 작동하는 FM 만 찾을 수 있습니다.
** EDIT : ** get_filtered_entries라는 메소드가 있지만 표시되지 않은 항목 만 검색합니다. 이것을 사용하면 번역 된 내용을 표시하는 데 많은 시간이 걸릴 수 있습니다. get_filtered_entries
미리 감사드립니다.
가장 효율적인 방법은 무엇이라고 생각하십니까? itab에 표시되지 않은 항목을 모두로드하고, 소스 itab을 복사하고, 복사를 반복하고, 표시되지 않은 itab에있는 항목을 삭제하십시오. 다른 함수에 전달할 수있는 표시된 항목의 테이블이 필요합니다. – Erik
@Erik 원본 테이블을 복사하고 수정하는 것이 유일한 옵션 인 것 같습니다. 내 대답에 몇 가지 코드를 추가했습니다. 또한 인덱스 테이블을 삭제하는 또 다른 방법을 알지 못합니다. –
@Erik'APPEND' ('LINES OF ... FROM ... TO ... ')에 몇 가지 흥미로운 옵션이 있습니다. 나중에 이것을 테스트 할 것입니다. –