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