Páginas filhas
  • LGX - Acionar e capturar dados de zoom multi-seleção

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languageruby
themeConfluence
firstline1
titleExemplo
linenumberstrue
DEFINE ma_record_return ARRAY[] OF RECORD
                                   coluna1_zoom CHAR(10),
                                   coluna2_zoom CHAR(50)
                                   END RECORD
DEFINE m_count_return INTEGER

#----------------------------#
FUNCTION zoom_activate_test()
#----------------------------#
  DEFINE l_zoom_reference  VARCHAR(10) 

  # Instanciar o componente de zoom metadado
  LET l_zoom_reference = _ADVPL_create_component(NULL,"LZOOMMETADATA")

  #Indicar que o zoom será do tipo multi-seleção, caso o formulário do zoom no metadado não esteja registrado como multi-seleção
  CALL _ADVPL_set_property(l_zoom_reference,"ZOOM_TYPE",1)

  # Não apresentar o filtro de pesquisa na abertura inicial da tela de zoom
  CALL _ADVPL_set_property(l_zoom_reference,'ALWAYS_SHOW_FILTER',FALSE)

  IF NOT _ADVPL_get_property(l_zoom_reference,"ZOOM","<nome_do_zoom>") THEN
     CALL LOG_message("Falha ao acionar o zoom."","ERROR",",l_type,"Ocorreu problema na leitura de informações do zoom metadado.","Verifique se o zoom está corretamente cadastrado.",0)
     CALL _ADVPL_destroy_component(l_zoom_reference)
     RETURN FALSE
  END IF

  CALL _ADVPL_set_property(l_zoom_reference,'ARRAY_RECORD_RETURN',ma_record_return)

  #Indicar a quantidade de linhas já selecionadas em algum acionamento anterior do mesmo zoom de multi-seleção.
  #Quando houver necessidade de sempre abrir o zoom com nenhum item marcado, a propriedade SELECTED não deve ser inicializada 
  CALL _ADVPL_set_property(l_zoom_reference,"SELECTED",m_count_return)

  LET m_count_return = _ADVPL_get_property(l_zoom_reference,'ACTIVATE')

  CALL _ADVPL_destroy_component(l_zoom_reference)

  CALL conout("Número de itens selecionaos no zoom = "||m_count_return)

  #Aqui neste ponto, a leitura dos itens selecionados estarão disponíveis na variável MA_RECORD_RETURN, da linha 1 até o total de itens selecionados indicados na variável M_COUNT_RETURN.
END FUNCTION


O exemplo acima demostrou o uso da propriedade ARRAY_RECORD_RETURN para indicar a variável ARRAY OF RECORD que conterá a lista dos valores dos itens selecionados no array. Esta variável ARRAY OF RECORD deverá conter os elementos (campos) registrados no zoom (FRM1008) na aba 3 - Tabelas e Colunas onde a coluna Retorna Valor? estiver marcada, ou seja, as colunas do zoom marcadas para serem retornadas para a aplicação com os itens selecionados pelo usuário. 

...