Páginas filhas
  • LGX - Carregar conteúdo na operação LISTAR


Para carregar os campos virtuais a partir da operação de menu "Listar", é preciso cadastrar uma função no evento Before Input da operação Browse na barra de ferramentas do formulário.

Esta função deverá ser desenvolvida semelhante ao código a seguir:


Exemplo
#-----------------------------------------#
 FUNCTION <programa>_before_input_browse()
#-----------------------------------------#
 DEFINE l_codigo            LIKE <tabela>.<coluna_codigo>
        l_descricao         CHAR(35),
        l_idx               INTEGER,
        l_browse_item_count INTEGER

 {Busca a quantidade total de registros encontrados na operação Listar}
 LET l_browse_item_count = _ADVPL_get_property(m_form_reference,"BROWSE_ITEM_COUNT")

 {Processa cada uma das linhas da grid que já se encontra carregada em memória ao acionar a operação Listar}
 FOR l_idx = 1 TO l_browse_item_count
    {Recupera o valor de uma determinada coluna de uma determinada linha da grid que será exibida na operação Listar}
    LET l_codigo = _ADVPL_get_property(m_form_reference,"BROWSE_VALUE","<tabela>","<coluna_codigo>",l_ind)

    LET l_descricao = NULL
    WHENEVER ERROR CONTINUE
    SELECT <tabela>.<coluna_descricao>
      INTO l_descricao
      FROM <tabela>
     WHERE <tabela>.<coluna_codigo> = l_codigo
    WHENEVER ERROR STOP

    {Preenche o valor para a coluna virtual de cada registro da grid que será exibida na operação Listar}
    CALL _ADVPL_set_property(m_form_reference,"BROWSE_VALUE","<tabela>","<coluna_virtual>",l_idx,l_descricao)
 END FOR

 RETURN TRUE
 END FUNCTION


Perceba que o objetivo desta função é carregar o conteúdo de uma coluna virtual para cada um dos registros encontrados e apresentados na operação Listar (Grid apresentada em tela com a lista completa dos registros cadastrados na base de dados para o formulário).