Descrição:
É possível realizar um filtro por mais de uma área de alarme e também pelo campo Acked simultaneamente em um E3Browser?
Solução:
Sim, é possível. Para realizar este filtro, é necessário selecionar a tabela de alarmes desejada no E3Browser, e então habilitar a edição direta do SQL na aba SQL da consulta.
Deve-se criar uma variável para cada área de Alarme existente na aplicação. Quando quisermos que a área apareça, o nome da área desejada será carregada na variável; quando não quisermos que ela seja exibida, será inserido um valor que não seja o nome da variável, ou então simplesmente um valor nulo.
No código SQL utilizado abaixo há três variáveis, portanto três áreas de alarme:
SELECT Alarms.E3TimeStamp, Alarms.Acked, Alarms.Area, Alarms.Message, Alarms.FullAlarmSourceName, Alarms.ConditionActive
FROM Alarms
WHERE ((Alarms.area = '<%VarFiltro1%>') OR (Alarms.area = '<%VarFiltro2%>') OR (Alarms.area = '<%VarFiltro3%>')) AND (Alarms.Acked LIKE '<%FiltroAck%>')
ORDER BY Alarms.E3TimeStamp ASC
A declaração das variáveis VarFiltro e FiltroAck respeita a sintaxe de declaração de uma variável do tipo string.
Anexo a este artigo está uma aplicação exemplo desenvolvida no E3 versão 3.5 build 352.