PDA

Ver la Versión Completa : Conocer registros filtrados en ALV


josellamazares
20/09/07, 06:56:14
Hola a todos:

Yo, tengo un ALV hecho con la función REUSE_ALV_HIERSEQ_LIST_DISPLAY. Entonces cuando se aplica un filtro y se obtienen los registros filtrados en la pantalla quiero tener esos registros filtrados en una tabla interna.

Creo que si se hace el ALV con objetos se pueden obtener mediante el método GET_FILTERED_ENTRIES pero en este caso no puedo hacerlo con objetos. ¿Alguien sabe cómo conseguirlo en un ALV hecho funciones (REUSE_ALV_HIERSEQ_LIST_DISPLAY).?

Gracias por adelantado.
Un saludo.

josellamazares
24/09/07, 09:53:14
Hola:
Finalmente Yo, he usado la función 'REUSE_ALV_LIST_LAYOUT_INFO_GET' y funciona.


CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_GET'
IMPORTING
* ES_LAYOUT =
* ET_FIELDCAT =
* ET_SORT =
* ET_FILTER =
* ES_LIST_SCROLL =
* ES_VARIANT =
* E_WIDTH =
* ET_MARKED_COLUMNS =
ET_FILTERED_ENTRIES = ET_FILTERED_ENTRIES
* ET_FILTERED_ENTRIES_HEADER =
* ET_FILTERED_ENTRIES_ITEM =
TABLES
* ET_OUTTAB =
ET_OUTTAB_HEADER = GT_HEADER[]
ET_OUTTAB_ITEM = GT_ITEM[]
* ET_COLLECT00 =
* ET_COLLECT01 =
* ET_COLLECT02 =
* ET_COLLECT03 =
* ET_COLLECT04 =
* ET_COLLECT05 =
* ET_COLLECT06 =
* ET_COLLECT07 =
* ET_COLLECT08 =
* ET_COLLECT09 =
EXCEPTIONS
NO_INFOS = 1
PROGRAM_ERROR = 2
OTHERS = 3


ET_FILTERED_ENTRIES contiene los índices de los registros seleccionados.

Basta con buscar el índice de cada registro de la tabla que alimenta el ALV en ET_FILTERED_ENTRIES. Si lo encuentra es que ese registro no se está mostrando en pantalla porque no cumple el filtro.

Saludos.