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