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).
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas