é 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
-~----------~----~----~----~------~----~------~--~---

Responder a