[firebase-br] Dúvida para filtrar registros
Rafael Voltani
rafael.volts em turbocode.com.br
Qua Fev 26 14:56:12 -03 2014
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.
Mais detalhes sobre a lista de discussão lista