Ola, consegui, agora deu certo, obrigado pela dica, usei o search e vi que
ficou melhor, mas agora tenho uma outra duvida, fiz algun teste deu certo em
50%, eu tambem preciso fazer um filtro por centro de treinamento, na minha
aplicação eu carrego os consultores, inicialmente faço um filtro por regiao,
depois por tipo e por ultimo seria por centro de treinamento, eu tenho 10
centros de treinamento, e gostaria de ficar apenas com consultores de por
exemplo 2 ou mais, como poderia fazer este filtro, no meu datagrid posso
selecionar mais de um indice, as o filtro funciona apenas para o ultimo
seleciona(marquei a opção 001 e 002, mas, o filtro fica apenas na 002),
estou usando o search como me indicou.

Em 17 de maio de 2011 09:06, Rodrigo Valentim
<rodrigo.valen...@gmail.com>escreveu:

> Pode ser por vários motivos.
>
> Sugiro leitura da documentação para seu melhor entendimento.
>
>
> http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_1.html
>
> Acredito que exista algo errado por não aparecer para você o filterFunction
>
> fiz o teste e aparece instanciando o objeto ou não, porém, precisa saber se
> você fez o import. Sem esse, não aparece opção nenhuma.
>
>             var x:ArrayCollection = new ArrayCollection();
>             x.filterFunction = find;
>
> seu exemplo contem erros. Dentro do seu FiltroTopSae tem uma chamada para
> filtrar o DP usando o filtroTopSae... ficou uma chamada com redundancia e
> não resultará em nada... Use algum click de botão ou eventos change para
> fazer filtros no dataprovider.
>
> Aí vai um exemplo
>
>             private function
> btnPesquisa_clickHandler(event:MouseEvent):void
>             {
>                 if (nmPrestador.text != null || cdPrestador.text != null) {
>                     //Chamando o find atraves do click do botão
>                     __model.prestador.filterFunction = find;
>                     __model.prestador.refresh();
>
>                 }
>             }
>
>             private function find(item:Object):Boolean {
>                 if (nmPrestador.text != "") {
>                         return
> (item.nmPrestador.toLowerCase()search(nmPrestador.text.toLowerCase()) !=
> -1);
>                 } else {
>                         return
> (item.cdPrestador.toLowerCase()search(cdPrestador.text.toLowerCase()) !=
> -1);
>                 }
>             }
>
> Novamente sugiro leitura da documentaçao para seu melhor entendimento
>
>
> Em 17 de maio de 2011 08:36, Antonio Pasqualli <
> antonio.pasqua...@gmail.com> escreveu:
>
> Obrigado amigo,
>> Mas tenho um segundo problema, se o meu dataprovider for arraycolleciont,
>> não consigo carregar os dados no dataprovider(não sei porq)
>> e com array ou object consigo trazer os dados mas nãt tenho a
>> filterFunction, sabe oq pode estar fazendo de errado?
>>
>> public function filtroTopSae():void{
>>     dpConsultores.filterFunction=filtrarTopSae;  // filterFunction isso
>> não aparece nas "opções" tenho que digitar "manualmente"
>>     dpConsultores.refresh(); // isso não aparece nas "opções" tenho que
>> digitar "manualmente"
>>     dgConsultores.dataProvider=dpConsultores;
>>    }
>>
>> Em 16 de maio de 2011 22:47, Rodrigo Valentim <rodrigo.valen...@gmail.com
>> > escreveu:
>>
>> o search vai procurar o texto que você deseja.
>>>
>>> Nesse exemplo passado é a mesma coisa, você vai filtrar um dos itens que
>>> deseja através desta função.
>>>
>>> Exemplo de uma funcionalidade que fiz
>>>
>>> Tenho um conjunto de informações que o usuário irá filtrar. Como essas
>>> informações já estão em algum objeto no flex, não preciso ir no banco
>>> buscar, então, eu sempre faço o filter function no meu DP antes de ir no
>>> banco, caso não encontre, vou no banco e alimento novamente o meu DP com
>>> novas informações...
>>>
>>> Vai de acordo com sua imaginação... referente a sintaxe, é igual ao que
>>> postei no exemplo anterior, claro, mudando alguma besteira...
>>>
>>> Não testei o Search pra ListBox ou algo assim... mas pra textinput,
>>> funciona 100%
>>>
>>> Em 16/05/2011, às 08:42, Antonio Pasqualli escreveu:
>>>
>>> Ola obrigado pela dica, mas tire uma duvida,
>>> neste caso oq tenho é um datagrid, faço uma consulta no banco e trago
>>> varios itens como por exemplo nome do cliente idade, sexo, email e tal...
>>> tudo isso fica em um dataprovider, no mesmo formulario tenho alguns
>>> combobox para realizar o filtro, exemplo, quero listar apenas os do sexo
>>> feminino da região X com idade entre X e Y, neste caso o search se
>>> comportaria bem? como seria a melhor forma de usa lo? digo como seria a
>>> sintax
>>> Obrigado
>>>
>>> Em 14 de maio de 2011 01:20, Rodrigo Valentim <
>>> rodrigo.valen...@gmail.com> escreveu:
>>>
>>>> Não li todo o histórico.. mas vi que você usa o indexof.... Precisa usar
>>>> o indexof mesmo? eu utilizo o search
>>>>
>>>>  private function find(item:Object):Boolean {
>>>> if (item.nmAluno.toLowerCase().search(aluno.text.toLowerCase()) != -1)
>>>> return true;
>>>> else
>>>> return false;
>>>> }
>>>>
>>>>
>>>>  Em 13/05/2011, às 16:56, Antonio Pasqualli escreveu:
>>>>
>>>>  Ola,
>>>> Bom fiz as alterações, mas não carregou os dados no datagrid,  algo que
>>>> posso alterar para corrigir?
>>>> Obrigado
>>>>
>>>> <mx:Canvas x="0" top="163" width="100%" height="100%">
>>>>     <mx:DataGrid x="0" height="90%" width="2000" id="dgConsultores"
>>>> y="0" dataProvider="{dpConsultores}">
>>>>      <mx:columns>
>>>>       <mx:DataGridColumn headerText="Enviar" width="50"
>>>> dataField="col1">
>>>>        <mx:itemRenderer>
>>>>         <fx:Component>
>>>>          <mx:HBox horizontalAlign="center" verticalAlign="middle">
>>>>           <s:CheckBox id="chkConsultores0"/>
>>>>          </mx:HBox>
>>>>         </fx:Component>
>>>>        </mx:itemRenderer>
>>>>       </mx:DataGridColumn>
>>>>       <mx:DataGridColumn headerText="Editar" width="60"
>>>> dataField="col1">
>>>>        <mx:itemRenderer>
>>>>         <fx:Component>
>>>>          <mx:HBox horizontalAlign="center" verticalAlign="middle">
>>>>           <mx:Image
>>>> source="@Embed(source='../../assets/btn/24/edit.png')" toolTip="Editar ou
>>>> cadastrar novo endereço de email" width="20" height="20"/>
>>>>          </mx:HBox>
>>>>         </fx:Component>
>>>>        </mx:itemRenderer>
>>>>       </mx:DataGridColumn>
>>>>       <mx:DataGridColumn headerText="Salvar" width="60"
>>>> dataField="col1">
>>>>        <mx:itemRenderer>
>>>>         <fx:Component>
>>>>          <mx:HBox horizontalAlign="center" verticalAlign="middle">
>>>>           <mx:Image
>>>> source="@Embed(source='../../assets/btn/24/Inserir.png')" toolTip="Salvar
>>>> alteraçao realizada" width="20" height="20"/>
>>>>          </mx:HBox>
>>>>         </fx:Component>
>>>>        </mx:itemRenderer>
>>>>       </mx:DataGridColumn>
>>>>       <mx:DataGridColumn headerText="I.D Eluxcity" dataField="col1"
>>>> width="120"/>
>>>>       <mx:DataGridColumn headerText="Nome da conta" dataField="aut_nome"
>>>> width="450"/>
>>>>       <mx:DataGridColumn headerText="Nome Fantasia"
>>>> dataField="nome_fantasia" width="450"/>
>>>>       <mx:DataGridColumn headerText="Consultor de Serviços"
>>>> dataField="log_nome" width="300"/>
>>>>       <mx:DataGridColumn headerText="Região" dataField="col1"
>>>> width="200"/>
>>>>       <mx:DataGridColumn headerText="UF" dataField="aut_uf" width="80"/>
>>>>       <mx:DataGridColumn headerText="Centro de Treinamento"
>>>> dataField="ctr_nome" width="300"/>
>>>>       <mx:DataGridColumn headerText="Top/Sae" dataField="aut_tipo"
>>>> width="100"/>
>>>>       <mx:DataGridColumn headerText="Exclusivo Split"
>>>> dataField="aut_exclusivo_split" width="100"/>
>>>>       <mx:DataGridColumn headerText="Funcão" dataField="col1"
>>>> width="250"/>
>>>>       <mx:DataGridColumn headerText="Email 1" dataField="log_email"
>>>> width="250"/>
>>>>       <mx:DataGridColumn headerText="Enviar" width="80"
>>>> dataField="col1">
>>>>        <mx:itemRenderer>
>>>>         <fx:Component>
>>>>          <mx:HBox horizontalAlign="center" verticalAlign="middle">
>>>>           <s:CheckBox id="chkConsultores1"/>
>>>>          </mx:HBox>
>>>>         </fx:Component>
>>>>        </mx:itemRenderer>
>>>>       </mx:DataGridColumn>
>>>>       <mx:DataGridColumn headerText="Email 2" dataField="aut_email"
>>>> width="250"/>
>>>>      </mx:columns>
>>>>     </mx:DataGrid>
>>>>    </mx:Canvas>
>>>>
>>>> Em 13 de maio de 2011 15:38, bruno bg <bruno...@ig.com.br> escreveu:
>>>>
>>>>> troque o
>>>>>
>>>>> public var dpConsultores:Array=new Array();
>>>>> por
>>>>> public var dpConsultores:ArrayCollection=new ArrayCollection();
>>>>>
>>>>> e onde está
>>>>>     dpConsultores=event.result.data;
>>>>> coloque
>>>>>     dpConsultores=event.result.data AS ArrayCollection;
>>>>>
>>>>>
>>>>> testa aê.
>>>>>
>>>>> brunobg
>>>>> --
>>>>> ****************************************************
>>>>> www.brbsoftware.com.br
>>>>> bruno...@ig.com.br  (MSN & Skype)
>>>>> blogflex.brunobg.com
>>>>> @brunogrohs
>>>>> (21) 9913-2397
>>>>>
>>>>>
>>>>> Em 13 de maio de 2011 14:38, Antonio Pasqualli <
>>>>> antonio.pasqua...@gmail.com> escreveu:
>>>>>
>>>>>  Ola,
>>>>>>
>>>>>> <s:RemoteObject id="roSisMail"
>>>>>>       fault="OnFault(event)"
>>>>>>       destination="amfphp"
>>>>>>       source="SisMail"
>>>>>>       showBusyCursor="true">
>>>>>>    <s:method name="listarConsultor"
>>>>>>        result="OnResultListaConsultor(event)"/>
>>>>>>   </s:RemoteObject>
>>>>>>  </fx:Declarations>
>>>>>>  <fx:Script source="../../actionscripts/Padrao.as"/>
>>>>>>  <fx:Script>
>>>>>>   <![CDATA[
>>>>>>    import mx.collections.ArrayCollection;
>>>>>>    import mx.controls.Alert;
>>>>>>    import mx.controls.Text;
>>>>>>    import mx.rpc.events.FaultEvent;
>>>>>>    import mx.rpc.events.ResultEvent;
>>>>>>
>>>>>>    //eventos relacionado ao sistema
>>>>>>    public function OnFault(event:FaultEvent):void{
>>>>>>     Alert.show(event.fault.message, "erro inicial", 4, null, null,
>>>>>> Pare);
>>>>>>    }
>>>>>>    //carrega dados no dpProvider
>>>>>>    [Bindable]
>>>>>>    public var dpConsultores:Array=new Array();
>>>>>>    public function OnResultListaConsultor(event:ResultEvent):void{
>>>>>>     dpConsultores=event.result.data;
>>>>>>    }
>>>>>>    public function carregaGD():void{
>>>>>>     roSisMail.listarConsultor.send();
>>>>>>    }
>>>>>>
>>>>>>    //filtro top sae
>>>>>>    public function filtroTopSae():void{
>>>>>>     dpConsultores.filterFunction=filtrarTopSae;  // filterFunction
>>>>>> isso não aparece nas "opções" tenho que digitar "manualmente"
>>>>>>
>>>>>>     dpConsultores.refresh(); // isso não aparece nas "opções" tenho
>>>>>> que digitar "manualmente"
>>>>>>     dgConsultores.dataProvider=dpConsultores;
>>>>>>    }
>>>>>>    public function filtrarTopSae(objeto:Object):Boolean{
>>>>>>     return
>>>>>> (objeto.aut_tipo.toUpperCase().indexOf(txt_topsae.text.toUpperCase()) >= 
>>>>>> 0);
>>>>>>
>>>>>>    }
>>>>>>
>>>>>>
>>>>>> Em 13 de maio de 2011 13:37, bruno bg <bruno...@ig.com.br> escreveu:
>>>>>>
>>>>>>> quem tem o refresh().  é o DataProvider.
>>>>>>>
>>>>>>> veja aê,  qq coisa manda o trecho do código.
>>>>>>>
>>>>>>> brunobg
>>>>>>> --
>>>>>>> ****************************************************
>>>>>>> www.brbsoftware.com.br
>>>>>>> bruno...@ig.com.br  (MSN & Skype)
>>>>>>> blogflex.brunobg.com
>>>>>>> @brunogrohs
>>>>>>> (21) 9913-2397
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  Em 13 de maio de 2011 13:31, Antonio Pasqualli <
>>>>>>> antonio.pasqua...@gmail.com> escreveu:
>>>>>>>
>>>>>>>> Ola pessoal
>>>>>>>>
>>>>>>>> Estou me batendo com o filterfunction, preciso realizar uma serie de
>>>>>>>> filtros, então resolvi trazer tudo em um dp do tipo 
>>>>>>>> array(arrayCollection da
>>>>>>>> erro) mas não estou conseguindo fazer o filterfunction por exemplo ele 
>>>>>>>> não
>>>>>>>> traz a propriedade refresh, alguem tem alguma dica ou sugestão?
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar
>>>>>>>> nenhum. É necessário também a ação" - William Shakespeare
>>>>>>>>
>>>>>>>> --
>>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>>> flexdev@googlegroups.com
>>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>>>> Mais opções estão disponíveis em
>>>>>>>> http://groups.google.com/group/flexdev
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>>> flexdev@googlegroups.com
>>>>>>> Para sair da lista, envie um email em branco para
>>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>>> Mais opções estão disponíveis em
>>>>>>> http://groups.google.com/group/flexdev
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum.
>>>>>> É necessário também a ação" - William Shakespeare
>>>>>>
>>>>>> --
>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>> flexdev@googlegroups.com
>>>>>> Para sair da lista, envie um email em branco para
>>>>>> flexdev-unsubscr...@googlegroups.com
>>>>>> Mais opções estão disponíveis em
>>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>> flexdev@googlegroups.com
>>>>> Para sair da lista, envie um email em branco para
>>>>> flexdev-unsubscr...@googlegroups.com
>>>>> Mais opções estão disponíveis em
>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>>>> necessário também a ação" - William Shakespeare
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>>> Para sair da lista, envie um email em branco para
>>>> flexdev-unsubscr...@googlegroups.com
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>>
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>>> Para sair da lista, envie um email em branco para
>>>> flexdev-unsubscr...@googlegroups.com
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>>
>>>
>>> --
>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>>> necessário também a ação" - William Shakespeare
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>>
>>>  --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>> necessário também a ação" - William Shakespeare
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> Atenciosamente,
> Rodrigo Valentim
>
>  --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
"Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
necessário também a ação" - William Shakespeare

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a