é pq todas as requisições no flex são assíncronas. Vc dispara a requisição, e só poderá pegar o resultado dela no resultEvent ... não da forma q está fazendo.
2009/4/18 bruno bg <[email protected]> > Depois de um dia inteiro procurando uma solução. catando em vários foruns, > listas e etc. > NOSSO GRANDE amigo José Carlos Silveira Fiel <[email protected]> deu a luz > e o filho nasceu hehehe . > > Nada de coisa mirabolante bastou eu colocar um metodo de > selecionarComboCidade(codEstado) no método Result . > Funcionou tanto selecionando pelo dataGrid como no momento do cadastro onde > todos os campos estão nulos. > > Só que agora fica a questão, porque o FLEX não consegue redirecionar uma > sequência em um determinado método, quando esse redirecionamento é para > fazer uma select ou update ou insert num DAO.? Só entra no DAO depois que o > método/function é finalizado.!!!! > exemplo: > > functtion capturarLinha(linha:int):void { > campo1.text=listadeRegistro[linha].campo1 > campo2.text=listadeRegistro[linha].campo2 > codPai=campo2.text; > classeFilhoDAO.BuscarFilhosDoPai(codPai); //pelo Debug o cursor entra > no método mas não no DAO. > campo3.text=listadeRegistro[linha].campo3 > codFilho=campo3.text; > selecionarComboFilho(codFilho); //aqui da erro pois a > listaDeFilhos é nula > } > só no final é que ele entra no DAO e preenche a listaDeFilhos. > > Para os mais experientes , poderíamos criar até um novo tópico. > > abraço a todos e boa noite. > obrigado José > > > > 2009/4/18 José Carlos Silveira Fiel <[email protected]> > >> Por coincidência ou não, estou respondendo o 3 post seu sobre combos e >> datagrid hehe, mas vamos lá >> >> O problema de popular o "combo Dependente" somente depois que finaliza a >> função CapturaLinha é que você quer selecionar algum item deste "combo >> Dependente" isso? >> Se for isso, você deve somente selecionar este item depois de populado >> obviamente, ou seja, na sua função de Result, que acaba de popular, aí se >> populou, seleciona, senão faz nada (um pequeno tratamento hehe). >> Senão for isso, posta aí! ;-) >> >> Abraços, >> -- >> Att., >> José Carlos Silveira Fiel >> Programador Adobe Flex e PHP >> http://blog.fielweb.com.br/ >> >> 2009/4/17 bruno bg <[email protected]> >> >> Eu tenho dois ComboBox que são por exemplo Titular e o outro Dependentes >>> desse titular. >>> O primeiro eu já preencho no init(). >>> E o outro combobox "dependente" preencho de acordo com a escolha do >>> "titular". >>> No momento da cadastrar está tudo funcionando perfeitamente. >>> >>> QUANDO EU FAÇO A PESQUISA PELO DATAGRID (PROBLEMAS !!!) >>> Eu tenho um DataGrid, onde faço a pesquisa do titular, quando eu clico >>> cai na function "CapturaLinha" onde eu preencho os campos para >>> uma visualização do usuário onde ele pode alterar ou excluir o registro. >>> >>> Como eu preencho o combobox "dependente" de acordo com o "titular" >>> escolhido, na function "capturaLinha(int(dtgrdCliente.selectedIndex))" >>> coloquei uma chamada para outra function "PreencheComboDependente" >>> passando como parametro o id_do_titular que capturo do DataGrid. >>> Aê que fica o problema, >>> essa function "PreencheComboDependente" só é excutada depois da function >>> "capturaLinha" é finalizada. >>> Debugando eu vi que some os aributos e parametros. >>> >>> eu uso a estrutura: >>> <mx:RemoteObject id="dependenteDAO" destination="DependenteDAO"> >>> <mx:method name="BuscarDoTitular" result="onResultList(event)" >>> fault="onFaultGetList(event)"/> >>> </mx:RemoteObject> >>> >>> E no ActionScript está assim: >>> >>> [Bindable] >>> private var listaDeTitulares:ArrayCollection; >>> [Bindable] >>> private var listaDeDependentes:ArrayCollection; >>> >>> private function capturaLinha(linha:int):void { >>> if (dtgrdCliente.selectedIndex == -1) >>> Alert.show("Selecione um Registro!"); >>> else{ >>> inputId_cliente.text=listaDeTitulares[linha].id_cliente; >>> >>> //Buscando os dependentes >>> buscandoDependentes(listaDeTitulares[linha].id_empresa); >>> // aqui vai no DAO criar o Array e depois automaticamente vai para >>> onResultList >>> >>> selecionarDependente(listaDeTitulares[linha].id_dependente); // aqui faz >>> um for no Array listaDeDependentes para fazer um selectedItem no combobox >>> inputNome.text=listaDeTitulares[linha].nome; >>> } >>> } >>> >>> private function buscandoDependentes(codTitular:int):void{ >>> dependenteDAO.BuscarDoTitular(codTitular); >>> } >>> >>> private function onResultList(event:ResultEvent):void { >>> if (event.result.length != 0) >>> listaDeDependentes = event.result as ArrayCollection; >>> else { >>> Alert.show("Não encontrado"); >>> listaDeDependentes = new ArrayCollection(); >>> } >>> } >>> >>> >>> Será que estou errando na estrutura ? >>> Ou será na lógica ? >>> >>> >>> >>> >> >> >> >> >> >> > > > > -- Mário Júnior Programador Java / Adobe Flex http://blog.mariojunior.com --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
