[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