Recuperando valor selecionado em uma Datawindow Child

Geralmente, utilizamos as Datawindow Childs do PowerBuilder para criar listas (dropdown) dinâmicos, campos de filtro e quando queremos carregar informações de uma lista a partir da seleção de outra. Exemplo: Carregar as cidades após após o usuário selecionar o Estado.  Neste post mostro um exemplo simples de como acessar o valor selecionado.

Para este exemplo, vou partir do seguinte cenário:

  • O objeto SQLCA está válido;
  • Temos o controle DW_1, que possui um campo chamado nom_cidade, que é uma DDLB (dropdown listbox).

Nosso objetivo é conseguir recuperar o valor selecionado neste campo.

Primeiro, precisamos declarar e “instanciar” uma variável do tipo datawindowchild:

Vamos fingir que você reparou que eu deixei a palavra instanciar entre aspas. Isso foi de propósito, pois este tipo de variável é AutoInstantiated, ou seja, o próprio PowerBuilder se encarrega do create e do destroy dela. (e faz isso até direitinho…na maioria das vezes.)

No comando GetChild do exemplo acima, se o retorno for 1, então conseguimos acesso a Datawindow Child (DWC). Isso já resolveu metade do problema.

Agora precisamos descobrir qual linha desta DWC foi selecionada. Faremos isso conforme o exemplo abaixo:

No exemplo acima, primeiro utilizamos o comando GetSelectedRow(n). Ele retorna o número da primeira linha selecionada, após o número informado no argumento, ou seja, se informarmos o valor 5, ele vai buscar a primeira linha selecionada, a partir da linha de número 5. Se passarmos 0 (zero), ele busca a primeira linha selecionada na Datawindow como um todo.

Se este número vier positivo (> 0), quer dizer que existe algo selecionado. Agora basta recuperar este valor. Para fazer isto, utilizamos o comando GetItemString, passando como argumento o número da linha selecionada (ll_SelectedRow) e o nome da coluna (nom_cidade).

Para sempre saber o que o usuário selecionou, esta lógica pode ser implementada no evento ItemChanged da DW_1.

Espero ter ajudado.

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, PowerBuilder and tagged , , , , , , , , , .