Administração do sistema

Regras de inferência de propriedades e características por expressão

RT.FAQ-113759
As regras de inferência de propriedades por expressão são utilizadas em expressões SQL onde uma coluna, ao invés de ser um valor, representa uma característica de outra coluna. As regras de inferência por expressão podem ser incluídas em blocos, mas também são práticas de serem utilizadas em reports customizados no ambiente (PRO_REPORTS) ou em scripts que utilizem o Telescope Script Engine.

Para criar uma regra deste tipo, basta criar um item com uma expressão SQL que retorne o valor da característica desejada e que cujo nome atenda a uma convenção específica:
_ITEM__CARACTERISTICA
Onde:

Exemplo:
SELECT p.nome_completo as CLIENTE
, case when ... then 'Cliente sem limite de crédito' else null end as _CLIENTE__ERROR_MESSAGE
... 
from pessoas p
join ...
where ...

Regras de inferência por expressão também podem ser criadas em tempo de execução através de Inclusão de campos customizados em ambiente de produção (block-config).

Os comandos SELECT, DISPLAY e PIVOT do Telescope Script Engine dão suporte a este recurso.

Exemplo:
item tempo double, format='mask:#0.0';
item codigo integer, label='Projeto';
item data date;

pivot codigo
by data
using select p.atividade as codigo
, a.data
, sum(tempo) as tempo
, 'h' as _tempo__suffix
, case when sum(tempo) > 4 then 'background-color:red; color:white; font-weight:bold'
                           else 'background-color:inherited; color:black; font-weight:normal'
                           end as _tempo__style
from apropriacao_horas a
join atividades o on o.id = a.atividade_id
join atividades p on p.id = o.pai_id
where a.data > now()::date-3
group by a.data, p.titulo, p.atividade
order by a.data, p.titulo ;

Resultado:
[img:exemplo]

Atenção
Expressões que definem características devem sempre "ressetar" o valor original para TODOS os elementos, caso retornar NULL ou vazio, será mantido o valor utilizado entes.