[Tutorial] Extraindo o valor de exibição de uma DDDW (PowerBuilder)
Overview
Você já ficou perdido tentando recuperar um valor específico de uma Dropdown DataWindow no PowerBuilder? Não se preocupe! Neste post, vamos explorar um método simples e eficaz para conseguir exatamente isso. Através de um exemplo prático, aprenderemos a utilizar a função Evaluate da Datawindow para extrair o valor de exibição (display value) de um campo DDDW, especificamente na linha 42. Prepare-se para adicionar mais uma ferramenta ao seu kit de desenvolvimento 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.