Setar valor na combobox apartir de outra tela

23 views
Skip to first unread message

Bento Móveis

unread,
Nov 24, 2009, 12:48:49 PM11/24/09
to flexdev
Boa tarde pessoal, bom vamos direto ao assunto. Tenho 1 titlewindow de
pesquisa de chamados com 1 grid e 1 titlewindow de cadastro e edição
dos chamados. Preciso que ao selecionar o registro no grid ele abra a
tela de cadastro com todos os campos preenchidos (até aqui tudo bem) o
problema é que tenho uma combobox que é alimentado a partir de uma
busca no banco de dados (retorna as empresas cadastradas) e não estou
conseguindo fazer com que a empresa que selecionei no grid fique
selecionada na tela de cadastro.

Desde já agradeço a todos,
Diego Feijó.

Genison Junior

unread,
Nov 24, 2009, 12:51:25 PM11/24/09
to fle...@googlegroups.com
Da uma olhada nisso aqui: http://msdevstudio.com/blog/2009/09/15/ddd-dica-do-dia-as3-flex/

2009/11/24 Bento Móveis <di...@bentoambientes.com.br>



--
Genison Junior
Desenvolvedor Flex / PHP
Email/Gtalk/Msn: gen...@gmail.com
Twitter: http://www.twitter.com/genison
+ 55 83 9112-6000

Rafael

unread,
Nov 24, 2009, 12:58:56 PM11/24/09
to fle...@googlegroups.com
tente desta maneira:

ao carregar os dados no formulario faça:

var _array:ArrayColletion = ArrayColletion(comboBox.dataprovider);

for each( var obj:Object in _array ) {

    if( empresa_id == obj.id ){

       comboBox.selectedItem = obj;
       break;

    }

}

onde "empresa_id" é a chave estrangeira da empresa que vc quer encontrar e vem da informacao de seu data grid.

Espero ter ajudado.



2009/11/24 Genison Junior <gen...@gmail.com>



--
At. Rafael Amaro
Develop Web
Profile:
http://twitter.com/RafaelAmaro

"Viver a vida é superar os desafios e nunca desistir quando disserem que é impossível."

Gabriela Trindade Perry

unread,
Nov 24, 2009, 1:13:23 PM11/24/09
to flexdev

Bento Móveis

unread,
Nov 24, 2009, 1:21:34 PM11/24/09
to flexdev
Rafael segue o código para uma melhor compreensão.

Esta função executo ao clica em 1 registro no grid. Onde Cad_chamado é
o formulário de cadastro/edição.

// Essa função pega o chamado selecionado e joga
// na tela de edição
public function editar():void {

var cad_chamado : frm_cad_chamado = frm_cad_chamado
(PopUpManager.createPopUp(this, frm_cad_chamado , true));

cad_chamado.pkcodigo.text = dg_chamados.selectedItem.pkcodigo;
cad_chamado.codigo.text = dg_chamados.selectedItem.codigo;

if (dg_chamados.selectedItem.dt_abertura != null)
cad_chamado.dt_cadastro.text =
dg_chamados.selectedItem.dt_abertura;

cad_chamado.cmb_empresa.text =
dg_chamados.selectedItem.nm_fantasia;

cad_chamado.loja.text = dg_chamados.selectedItem.loja;
cad_chamado.contato.text = dg_chamados.selectedItem.contato;
cad_chamado.endereco.text = dg_chamados.selectedItem.endereco;
cad_chamado.cidade.text = dg_chamados.selectedItem.cidade;

if (dg_chamados.selectedItem.dt_previsao != null)
cad_chamado.dt_previsao.text =
dg_chamados.selectedItem.dt_previsao;

if (dg_chamados.selectedItem.dt_executado != null)
cad_chamado.dt_executado.text =
dg_chamados.selectedItem.dt_executado;

cad_chamado.servico.text = dg_chamados.selectedItem.servico;
cad_chamado.state_chamado.text =
dg_chamados.selectedItem.status_chamado;
cad_chamado.faturamento.text =
dg_chamados.selectedItem.faturamento;


PopUpManager.centerPopUp(cad_chamado) ;

}


Abaixo a função que inicializa com o formulário de cadastro.
creationComplete="init()"

public function init():void{

// Popula o combo da empresa
Service.seleciona_empresa();

}

Como faço para enviar o fkempresa para a tela de cadastro para assim e
realizar a busca conforme você indicou.

Obrigado

Bento Móveis

unread,
Nov 24, 2009, 1:28:34 PM11/24/09
to flexdev


On 24 nov, 16:13, Gabriela Trindade Perry <gabrielape...@hotmail.com>
wrote:
> Seria isso:http://blog.mariojunior.com/?p=64?


Seria quase isso Gabriela porém ao clicar no grid do formulário de
busca preciso que set no formulário de cadastro. No exemplo ele seta
na mesma tela.

Obrigado.

Rafael

unread,
Nov 24, 2009, 1:56:56 PM11/24/09
to fle...@googlegroups.com
para carregar a fkempresa vc pode carrega-la junto com os dados que vc carrega ao dg_chamados, mesmo que no grid vc só mostre o nome fantasia nmfantasia, vc pode carregar esta informação ao popular os dados.

No result do seu Service, após a execução do init() vc faz o laço de repetição para buscar a empresa, pode se localizar tambem pelo atributo nmfantasia, só que por ser uma string a comparação de caracteres irá deixar esse processo lento, por isso te sugiro pela fkempresa. Após a chamada do Service.seleciona_empresa() dispare o evento result para localizar a empresa vinda do registro no dg_chamado

2009/11/24 Bento Móveis <di...@bentoambientes.com.br>

Bento Móveis

unread,
Nov 24, 2009, 2:18:33 PM11/24/09
to flexdev
Show de bola Rafael era isso mesmo que eu precisava.

Um forte abraço e muito obrigado,
Diego Feijó.

Mário Júnior

unread,
Nov 24, 2009, 8:22:35 PM11/24/09
to fle...@googlegroups.com
Basta passar o valor do selectedValue para a outra tela (passagem de objetos entre titleWindows) .. e pronto.


2009/11/24 Bento Móveis <di...@bentoambientes.com.br>



--
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR

Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
Florianopolis SC Brasil
Reply all
Reply to author
Forward
0 new messages