Отсеивание записей внутренней таблицы в соответствии с ALV-grid фильтрами.

Автор knopix, Червень 14, 2011, 12:05:26 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

knopix

Здравствуйте...

Собственно, дело вот в чём. Есть данные во внутренней таблице, которую я вывожу в ALV-grid. Далее пользователь может наложить дополнительные ограничения используя фильтры в этом самом ALV-grid. А затем мне нужно вывести данные с учётом этих ограничений в excel-отчёт. Критерии фильтров получил при помощи метода "GET_FILTER_CRITERIA", а что с этим дальше делать никак не придумаю. Как-то сделать динамический "read table" внутренней таблицы с учётом значений фильтров не получается.

Подскажите, пожалуйста, что делать в этой ситуации.

Dmitriy

Попробуйте метод GET_FILTERED_ENTRIES, сам не использовал, но вы посмОтрите и скажете, индексы каких строк он возвращает. По идее должен вернуть индексы оставшихся на экране. Тогда в цикле по возвращаемой таблице ET_FILTERED_ENTRIES типа LVC_T_FIDX возможно сформировать выгружаемую в MS Excel актуальную таблицу данных.

knopix

Пробовал... Возвращает индексы "отфильтрованных" строк, т.е. тех которые не нужны. Я вот подумал, сделать цикл по возвращаемой таблице и удалить строки с этими индексами из внутренней таблицы с данными.

Спасибо за совет.

Dmitriy

Возможно лучше в цикле сформировать новую внутреннюю табличку со сроками, которые вам нужны, а исходную, отображаемую на экране, которую вы подаёте в качестве changing параметра IT_OUTTAB в метод SET_TABLE_FOR_FIRST_DISPLAY оставить без изменений. Вдруг вам потом захочется использовать метод REFRESH_TABLE_DISPLAY.