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

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