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 <[email protected]>
> 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 [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
--
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