Páginas filhas
  • Obtendo a referência de componentes do programa metadado ou freeform em execução


Em determinados eventos será necessário obter a referência de componentes do programa metadado ou freeform em execução para que, com esta informação, seja possível recuperar ou alterar valores em tempo de execução.

Guia passo-a-passo


Em qualquer evento do formulário:

  1. Recuperar a referência do janela em execução através da função getFormReference() passando por parâmetro o nome do formulário metadado/freeform.
  2. Com a referência do formulário será possível obter a referência de qualquer campo da tela atual utilizando a propriedade COMPONENT_REFERENCE.


EXEMPLO
DEFINE l_form_reference VARCHAR(10)
DEFINE l_cod_empresa    CHAR(02)

# Recupera a referência do formulário metadado atual. Será retornado um
# componente LFORMMETADATA ou LPARMETADATA dependendo do tipo do formulário.
LET l_form_reference = _ADVPL_getFormReference("log00083")

# Recupera o valor atual do campo "cod_empresa" que encontra-se no formulário para a tabela "empresa".
LET l_cod_empresa = _ADVPL_get_property(l_form_reference,"VALUE","empresa","cod_empresa")

# Define um novo valor para o campo "cod_empresa" que encontra-se no formulário para a tabela "empresa".
CALL _ADVPL_set_property(l_form_reference,"VALUE","empresa","cod_empresa",p_cod_empresa)



DICAS


  • Uma boa prática é recuperar a referência do formulário no evento de After Load do formulário e armazená-lo em uma variável modular, pois desta forma será preciso recuperar a referência do formulário apenas uma vez, já que a esta referência não muda de valor durante a execução do programa.
  • Se uma coluna é definida num formulário contendo um alias, deve-se repassar o alias como parâmetro nas funções _ ADVPL_get_property() e _ADVPL_set_property() para o evento "VALUE". Acesse a documentação do componente LFormMetaData ou LParMetadata para informações detalhadas sobre os parâmetros disponíveis para o evento "GET_VALUE" e "SET_VALUE".

Artigos relacionados