[firebase-br] Dúvida para filtrar registros

Marcos Weimer marcosweimer em gmail.com
Qua Fev 26 15:02:37 -03 2014


Eu acredito que seja mais ou menos isso...
no parametro :cbfiltro vc passa o itemindex do combobox.

where ((:cbfiltro = 0) and (r.cancelado_sn = 'N' and r.paga_sn = 'N'))
or ((:cbfiltro = 1) and (r.cancelado_sn = 'N' and r.paga_sn = 'S'))
or ((:cbfiltro = 2) and (r.cancelado_sn = 'S'))

-=Ma®©oS=-
Marcos R. Weimer
Delphi / C# / ASP.NET / PHP / WebServices / Firebird



Em 26 de fevereiro de 2014 14:56, Rafael Voltani <
rafael.volts em turbocode.com.br> escreveu:

> Boa tarde lista.
> O item pode estar em 3 status (aberto, pago ou cancelado), que verifico da
> seguinte forma:
>   - se PAGO = 'N'  e CANCELADO = 'N entao STATUS = 'Aberto'  - se PAGO =
> 'S' e CANCELADO = 'N' entao STATUS = 'Pago'  - se CANCELADO = 'S' entao
> STATUS = 'Cancelado'
> Por não conter o campo STATUS na tabela, tenho de verificar dessa forma.
> Para exibir no grid utilizei CASE, funciona perfeitamente.
> Me pediram para trocar o modo de filtrar. Ao invés de usar CheckBox e
> exibir mais os itens selecionados, utilizar um ComboBox, para exibir apenas
> o selecionado. Tudo por questão de BIOS... hehehe...
> No ComboBox terá as opções: - Todos / Abertos / Pagos / Cancelados
> Para o usuário escolher apenas uma delas.
> Gostaria de uma opinião de vocês de qual melhor forma para resolver isso.
> Criar o campo STATUS na tabela e TRIGGER que faça a verificação acima e
> atualizar o campo??
>
> Como montar no WHERE essa verificação ??
> tentei usar case, mas não foi...
>   AND CASE        WHEN ( :FILTRO = 'A' ) THEN ( (R.CANCELADO_SN = 'N' )
> AND (  R.PAGA_SN = 'N' ) )        WHEN ( :FILTRO = 'P' ) THEN ( (
> R.CANCELADO_SN = 'N' ) AND R.PAGA_SN = 'S' )        WHEN ( :FILTRO = 'C' )
> THEN ( R.CANCELADO_SN = 'S' )      END
> Espero ter conseguido expor a duvida.
> Grato pela atenção.
> Rafael Voltani                           Analista Desenvolvedor de
> SoftwaresDelphi + Firebird
>               Se for encaminhar esta mensagem para outros, favor retirar o
> meu e-mail do cabeçalho e não esqueça de colocar TODOS os DESTINATÁRIOS em
> CÓPIA OCULTA (cco). Mantenha a privacidade dos e-mails e combata os vírus.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista