Bom, assumindo que você vai preencher os campos de filtro com valor, campo
e condição. A sua filterFunction seria mais ou menos assim, se for filtro
de uma condição por vez só. Caso forem várias simultaneas, teria que
adaptar a lógica para iterar nos objetos e efetuar as validações. Ai
começaria a complicar um pouco mais :)

<TextInput id="valueCondition" />
<ComboBox id="conditions" /> <!-- Aqui teria labels com ">", "<" e afins
<ComboBox id="fields" />

private function filterFunction(item:Object):Boolean {
   switch (conditions.selectedItem) {
      case ">": return greaterOperation(item);
      case "<" : return lesserOperation(item);
      // Outras Operações
      default: return true; // Ou false se preferir
   }
}

private function greateOperation(item:Object):Boolean {
   return item.fields.selectedItem > valueConditions.text ? true : false;
}

private function lesserOperation(item:Object):Boolean {
   return item.fields.selectedItem < valueConditions.text ? true : false;
}

private function equalsOperation(item:Object):Boolean {
   return item.fields.selectedItem == valueConditions.text ? true : false;
}

private function likeOperation(item:Object):Boolean {
   return String(item.fields.selectedItem).indexOf(valueConditions.text) >
-1 ? true : false;
}

Deve ter ficado claro,

( Não sei se compila isso, só fui digitando ).


Abraço,

Fredy.

2012/9/20 Filipe Motta <filipe...@gmail.com>

> Boa tarde!
>
> Estou desenvolvendo um sistema que preciso filtar dados de uma
> arraycolection, verifiquei e encontrei filtrefunction mas queria saber como
> posso criar uma função dinamica, como se fosse uma query de sql.
>
> obrigado
>
> --
> Luís Filipe Guedes Motta
>
>
>  --
> 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

Reply via email to