¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como remover automaticamente o filtro de uma tabela ALV ao mudar de visualização - Guia passo a passo

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 18 Vistas
0
Cargando...

Olá,

Estou usando uma tabela ALV. Depois de aplicar o filtro, eu mudei para outra visualização. Mas quando volto para a visualização anterior, o filtro ainda está ativado. No entanto, quero remover automaticamente a linha de filtro ao navegar entre telas. Como posso conseguir isso?

Saudações,

Lakshmi.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá, tive o mesmo problema. Você pode remover todos os filtros com este código:

"Criar algum código utilizando o assistente de código (chamar a instância utilizada de ALV)

DATA:

l_value TYPE REF TO cl_salv_wd_config_table,

lo_interface TYPE REF TO iwci_salv_wd_table.

TRY.

lo_interface = wd_this->wd_cpifc_alv_serv( ).

CATCH cx_wdr_rt_exception.

ENDTRY.

l_value = lo_interface->get_model( ).

DATA:

ls_field_ref TYPE salv_wd_s_field_ref,

lt_field_ref TYPE salv_wd_t_field_ref.

DATA:

"ls_filter_rule TYPE salv_wd_s_filter_rule_ref,

lt_filter_rule TYPE salv_wd_t_filter_rule_ref.

lt_field_ref = cl_salv_wd_model_table_util->if_salv_wd_table_util_fields~get_filtered_fields( l_value ).

LOOP AT lt_field_ref INTO ls_field_ref.

*lt_filter_rule = ls_field_ref-r_field->if_salv_wd_filter~get_filter_rules( ).

ls_field_ref-r_field->if_salv_wd_filter~delete_filter_rules( ).

ENDLOOP.

Saudações

Josip

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Lakshmi,

Confira este código sobre a remoção do filtro na tabela ALV.

método on_upload_complete .

*... verificar o uso do componente ALV

data:

lr_salv_wd_table_usage tipo ref a if_wd_component_usage.

lr_salv_wd_table_usage = wd_this->wd_cpuse_salv_wd_table( ).

se lr_salv_wd_table_usage->has_active_component( ) é inicial.

lr_salv_wd_table_usage->create_component( ).

endif.

*... obter o componente ALV

data:

lr_salv_wd_table tipo ref a iwci_salv_wd_table.

lr_salv_wd_table = wd_this->wd_cpifc_salv_wd_table( ).

*... (1) obter ConfigurationModel do Componente ALV

wd_this->r_table = lr_salv_wd_table->get_model( ).

*... (2) configurar ConfigurationModel

*... inicializar TableSettings

data:

lr_table_settings tipo ref a if_salv_wd_table_settings.

lr_table_settings ?= wd_this->r_table .

lr_table_settings->set_read_only( abap_false ).

lr_table_settings->set_visible_row_count( '15' ).

data:

lr_header tipo ref a cl_salv_wd_header.

lr_header = lr_table_settings->get_header( ).

data:

l_header tipo cadeia.

concatenar sy-sysid ' Visão geral de voos' em l_header. "#EC NOTEXT

lr_header->set_text( l_header ).

lr_header->set_tooltip( 'Informação sobre voos' ). "#EC NOTEXT

lr_header->set_image_source( 'ICON_VOO' ).

lr_header->set_image_first( abap_false ).

*... inicializar FunctionSettings

cl_salv_wd_model_table_util=>if_salv_wd_table_util_stdfuncs~set_all(

r_model = wd_this->r_table ).

cl_salv_wd_model_table_util=>if_salv_wd_table_util_funcs~set_functions_visible(

r_model = wd_this->r_table

value = cl_wd_uielement=>e_visible-none ).

*... inicializar ColumnSettings

data:

lr_column_settings tipo ref a if_salv_wd_column_settings.

lr_column_settings ?= wd_this->r_table.

data:

lt_columns tipo salv_wd_t_column_ref.

lt_columns = lr_column_settings->get_columns( ).

data:

ls_column tipo salv_wd_s_column_ref.

loop at lt_columns into ls_column.

case ls_column-id.

when 'CARRID'.

data:

lr_uie_input_field tipo ref a cl_salv_wd_uie_input_field.

create object lr_uie_input_field

exporting

value_fieldname = ls_column-id.

ls_column-r_column->set_cell_editor( lr_uie_input_field ).

when 'CONNID' or 'FLDATE' or 'PLANETYPE' or

'PRICE' or 'CURRENCY' or 'SEATSOCC' or

'DISTANCE' or 'DISTID'.

when others.

ls_column-r_column->set_visible( cl_wd_uielement=>e_visible-none ).

endcase.

endloop.

*... inicializar FieldSettings

data:

lr_field_settings tipo ref a if_salv_wd_field_settings.

lr_field_settings ?= wd_this->r_table.

data:

lr_field tipo ref a cl_salv_wd_field.

*... estabelecer campos de referência

lr_field = lr_field_settings->get_field( 'PRICE' ).

lr_field->set_reference_field( 'CURRENCY' ).

lr_field->set_reference_field_type( if_salv_wd_c_field_settings=>reffieldtype_curr ).

lr_field = lr_field_settings->get_field( 'PAYMENTSUM' ).

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Por padrão, teremos um filtro para todos os campos, certo? Preciso removê-lo para todos os campos, não apenas para um.

Quero remover toda a linha de filtro ao navegar entre as visualizações.

Saudações,

Lakshmi.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Lakshmi

Obtenha o campo em que o filtro é definido e então chame a funcionalidade de exclusão

data:
  lref_filter type ref to cl_salv_wd_field.
  lref_filter = wd_this->m_handler_alv->if_salv_wd_field_settings~get_field( 'MyField1' ).

  lref_filter->if_salv_wd_filter~set_filter_allowed( ).
  lref_filter->if_salv_wd_filter~delete_filter_rule( ).

Saudações

Prashant

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?