Depois que mandei que fui prestar atenção no código!!!

Antes de
        cboEmpresas.selectedIndex = 0;
coloque
        cboEmpresas.dataProvider = aResultado;


2010/8/18 Dyego "NoBe" Andrade <[email protected]>

> Só corrigindo: *private var listaEmpresas : ArrayCollection;*
>
> 2010/8/18 Dyego "NoBe" Andrade <[email protected]>
>
> Como precisa apenas do ID e do nome para apresentar no ComboBox eu
>> trabalharia diretamente com um Array.
>>
>> Como eu faria:
>>
>> [Bindable]
>> private var lista_empresas : ArrayCollection;
>>
>>
>> //Aqui eu pego o retorno do php
>>
>>
>> public function resultEmpresas(event:ResultEvent):void {
>>
>>     listaEmpresas = event.result;
>>     var descricao:String;
>>     cboEmpresas.dataProvider=null;
>>
>>     if( listaEmpresas.length > 0 )
>>     {
>>         var aResultado:Array = new Array();
>>         for(var i:int=0; i<listaEmpresas.length; i++)
>>         {
>>             descricao = listaEmpresas[i].nome;
>>             if( aResultado.indexOf(descricao) == -1 )
>>             {
>>                 aResultado.push(descricao);
>>             }
>>         }
>>         aResultado.sort();
>>         aResultado.unshift(Todos);
>>         cboEmpresas.selectedIndex = 0;
>>     }
>> }
>>
>> Agora que terminei de fazer que me atentei que não estou passando o ID
>> real da empresa e sim a posição no array.
>>
>> Pode tentar trocar a linha *aResultado.push(descricao);* por 
>> *aResultado[listaEmpresas[i].id]
>> = descricao;*
>>
>> Abraço!
>>
>>
>> 2010/8/18 Fábio Goll <[email protected]>
>>
>> Essa lista_empresa não é um Array ou ArrayCollection? Pq está utilizando
>>> object?
>>>
>>> O que tem dentro da lista? Um objeto? Somente strings?
>>>
>>> Pq vc está adicionando somente uma string no final da sua lista.
>>>
>>> Eu faria assim (supondo que tenha objetos na colecao, não strings):
>>>
>>> private var listaEmpresas : ArrayCollection;
>>>
>>>
>>> public function resultEmpresas(event:ResultEvent):void {
>>>   listaEmpresas = event.result as ArrayCollection;
>>>
>>>  var itemTodos: TipoItemNaColecao = new TipoItemNaColecao();
>>>  itemTodos.nome = "Todos";
>>>  itemTodos.codigo = 0; // ou null dependendo de como vc esta trabalhando
>>>
>>>  listaEmpresas.addItemAt( itemTodos , 0 );
>>>
>>> }
>>>
>>> Daí na hora de pegar o selecionado é normal, combo.selectedItem.codigo.
>>>
>>> Dai no php vc trata, se for 0 o codigo é todas as empresas, simples assim
>>> ... :D
>>>
>>> 2010/8/18 Diego Feijó <[email protected]>
>>>
>>> Bom dia a todos, vejam como estou fazendo.
>>>>
>>>> Essa é minha variável
>>>>
>>>> [Bindable]
>>>> private var lista_empresas : Object;
>>>>
>>>>
>>>> Aqui eu pego o retorno do php
>>>>
>>>> public function resultEmpresas(event:ResultEvent):void {
>>>>
>>>>  lista_empresas = event.result as Object;
>>>>  lista_empresas[lista_empresas.length] = 'Todos';
>>>>
>>>> }
>>>>
>>>> Vejam que depois de receber os dados coloquei a linha abaixo
>>>> "lista_empresas[lista_empresas.length] = 'Todos';" que a princípio
>>>> funcionou porém me dá o erro que coloquei na pergunta a cima. Na forma
>>>> antiga eu mandava a empresa selecionada da seguinte forma
>>>> "cmb_empresa.selectedItem.pkcodigo" e funciona perfeitamente agora o
>>>> problema é que o "TODOS" não tem id por isso tentei enviar assim
>>>> "cmb_empresa.text" mas me dá erro.
>>>>
>>>> Alguma sugestão.
>>>>
>>>> Obrigado Linconl e Bruno pelas respostas.
>>>>
>>>> On 17 ago, 20:42, Lincoln Silva <[email protected]> wrote:
>>>> > Para trabalhar com esse tipo de situação, eu costumo usar um objeto
>>>> para
>>>> > popular o combo (não utilizo php, uso .net com fluorine, mas imagino
>>>> que os
>>>> > objetos possam ser serializaveis).
>>>> >
>>>> > qdo passo os dados pro back-end, sempre passo o id do objeto (no seu
>>>> caso, o
>>>> > id da empresa) que preenche o combo.
>>>> >
>>>> > Coloco um objeto empresa com id = 0 e descrição = "TODOS", e faço a
>>>> > verificação no back-end, se o id for 0 eu monto a query para trazer
>>>> tudo.
>>>> >
>>>> > --
>>>> > Lincoln T. do Nascimento Silva
>>>> > Informática Biomédica - FFCLRP/FMRP
>>>> > USP - Ribeirão Preto
>>>> >
>>>> > 2010/8/17 bruno bg <[email protected]>
>>>> >
>>>> > > Cria um combo para escolher a empresa Inicial
>>>> > > e outro combo para escolher a empresa final.
>>>> >
>>>> > > Ou cria um checkBox ao lado do combo chamado TODAS AS EMPRESAS, que
>>>> quando
>>>> > > o usuário marcar, você desabilita o combo.
>>>> >
>>>> > > testa essas combinações e envia para  o servidor fazer o trabalho
>>>> pesado.
>>>> >
>>>> > > --
>>>> > > ****************************************************
>>>> > >www.brunobg.com
>>>> > > [email protected]
>>>> > > blogflex.brunobg.com
>>>> > > @brunogrohs
>>>> >
>>>> > > Em 17 de agosto de 2010 17:27, Diego Feijó <[email protected]>
>>>> escreveu:
>>>> >
>>>> > > Boa tarde a todos, pessoal tenho uma tela onde realizo uma consulta
>>>> no
>>>> > >> BD. Nessa tela tenho uma combobox que me lista as empresas
>>>> cadastradas
>>>> > >> no banco. Até aqui tudo bem, porém o pessoal me pediu para que
>>>> tivesse
>>>> > >> a opção de puxar por todas as empresas, pensei em colocar uma opção
>>>> de
>>>> > >> "TODOS" no combobox e fazer o filtro lá na minha classe no
>>>> zend_amf.
>>>> > >> Porém quando tento enviar cmb_empresa.text o flex me retorna um
>>>> erro.
>>>> > >> Como poderia resolver isso.
>>>> >
>>>> > >> Obrigado a Todos,
>>>> > >> Diego Feijó.
>>>> >
>>>> > >> --
>>>> > >> 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 emhttp://
>>>> groups.google.com/group/flexdev
>>>> >
>>>> > >  --
>>>> > > 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 emhttp://
>>>> groups.google.com/group/flexdev
>>>> >
>>>> >
>>>>
>>>> --
>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> Fábio Goll
>>> Gtalk/Msn: [email protected]
>>> Twitter: @fabiogoll
>>>
>>> --
>>> 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
>>>
>>
>>
>>
>> --
>> Atenciosamente,
>>
>> Dyego de Andrade Vieira
>> (61) 8402-2046
>>
>
>
>
> --
> Atenciosamente,
>
> Dyego de Andrade Vieira
> (61) 8402-2046
>



-- 
Atenciosamente,

Dyego de Andrade Vieira
(61) 8402-2046

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