[Tutorial] Extraindo o valor de exibição de uma DDDW (PowerBuilder)

Quando utilizamos uma Dropdown DataWindow (DDDW), geralmente temos pares com chaves e os respectivos valores, que serão exibidos na tela. (Exemplo: DDDW para mostrar os Estados vai ter uma coluna com ID [interno] e o display value contendo o nome dos Estados). Este post mostra como recuperar o valor de exibição do campo DDDW em uma determinada linha.

Vamos partir do seguinte pressuposto: Você quer recuperar o valor de exibição do campo estado, na linha 42.

Para realizar esta operação, será necessário utilizar a função Evaluate da Datawindow.

string ls_campo, ls_desc, ls_resultado
long ll_linha

ls_campo = "estados"
ll_linha = 42
ls_desc = "Evaluate('LookupDisplay(ls_campo)', " + String(ll_linha) + ")"

ls_resultado = dw_1.Describe(ls_desc)

MessageBox("Sistema!", ls_resultado, Information!)

No exemplo acima, primeiro declaramos as variáveis, depois definimos o nome do campo da Datawindow que tem a DDDW (ls_campo), o número da linha que contém o valor que queremos (ll_linha) e depois definimos a expressão que será utilizada no Evaluate.

O importante deste fonte é a parte do describe com evaluate, pois ela que vai buscar o nome de exibição (display value)  do item.

Se esta função for buscar algo dinâmico, é interessante que sejam feitas validações de erros. Não fiz para simplificar o exemplo.

 

Espero ter ajudado.

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Dev, PowerBuilder and tagged , , , .