quarta-feira, 13 de outubro de 2021

CL_SALV_TABLE - Filtro dentro de evento hotspot - erro na atualização da tela

 Situação de tela com 2 ALV em tela SPLIT, no ALV superior com campo hotspot, e no ALV inferior lista de itens do item superior selecionado.

 ALV inferior utilizando classes SALV, tentei utilizar o filtro, mas a tela não atualizava, tentei forçar o PBO utilizando o método 

CALL METHOD cl_gui_cfw=>set_new_ok_code

 EXPORTING

          new_code = 'REFRESH'.

mas também não funcionou.

Para resolver tive que carregar os dados novamente com o filtro. Um detalhe é q tive q carregar todos os dados, anteriormente tentei montar uma tabela interna com o filtro, até atualizava a tela, mas não sei o que acontece mas ao rolar o scroll lateral no final da página dava um DUMP, me parece q ele se perde no contador de linhas. Mas sempre carregando tudo funciona sem problema.


  READ TABLE gt_dados INDEX fu_row-index
                      INTO DATA(ls_dados).

  CHECK sy-subrc 0.

  DATA(lo_filterso_alv_item->get_filters).
  lo_filters->remove_filter('MATNR').

  l_low =  ls_dados-matnr.
  lo_filters->add_filter(
  columnname 'MATNR'
  low l_low
  ).

  o_alv_item->set_dataCHANGING t_table gt_acdoca ).

  o_alv_item->refresh).




Nenhum comentário:

Postar um comentário