Índice
Objetivo
O objetivo deste documento é explicar o funcionamento do campo do tipo Expressão no Gerador de Relatórios Delphi, a correta configuração e alguns cenários de erro.
Introdução
O componente do tipo Expressão é utilizado para criação de cálculos e transformações envolvendo valores numéricos e datas. Para inseri-lo no relatório utilize o menu de contexto da banda:
![](/download/attachments/546680936/InsertExp.png?version=1&modificationDate=1587590394047&api=v2)
Após inserí-lo, será exibida a tela para criação da Expressão. O campos disponíveis para utilização são mostrados na lista à esquerda.
![](/download/attachments/546680936/Exp.png?version=1&modificationDate=1587590462157&api=v2)
Solução de Problemas
Conforme dito anteriormente, o componente de expressão não aceita entradas do tipo texto. No exemplo abaixo, veremos o que acontece ao utilizar uma fórmula que retorne o tipo texto dentro de uma expressão.
Temos uma Fórmula que retorna o valor de um campo complementar em texto. Observe o tipo "S" definindo o retorno.![](/download/attachments/546680936/image2020-4-23_9-36-28.png?version=1&modificationDate=1587645396087&api=v2)
O resultado dela, valor 1000, continua sendo retornado mas com o tipo "String" (texto).
Agora vamos criar um relatório que utiliza essa fórmula e um campo de expressão que calcule um percentual sobre o valor retornado da fórmula.
O relatória a seguir utiliza como Contexto os dados da tabela PFUNC, mesmo contexto utilizado na fórmula. Temos os dados necessários para execução da fórmula, CHAPA e IDENTIFICADOR DA COLIGADA. O componente de fórmula referencia a fórmula mostrada anteriormente.
![](/download/attachments/546680936/image2020-4-23_9-55-27.png?version=1&modificationDate=1587646535653&api=v2)
Acrescentamos um componente do tipo Expressão para fazer o cálculo do acréscimo de 10%:
![](/download/attachments/546680936/image2020-4-23_9-57-29.png?version=1&modificationDate=1587646656993&api=v2)
Ao executar o relatório, teremos o seguinte retorno, apresentando "Erro" no lugar da expressão:
![](/download/attachments/546680936/image2020-4-23_9-59-58.png?version=1&modificationDate=1587646806060&api=v2)
Esse erro aparece pois o tipo de dado retornado da fórmula e que foi passado para a expressão não é permitido. Para solucionar esse problema devemos analisar a fórmula utilizada. Cada fórmula tem seu tipo de retorno e no caso do exemplo conseguimos mudar esse tipo para numérico utilizando um parâmetro da função de fórmula utilizada.
![](/download/attachments/546680936/image2020-4-23_10-5-37.png?version=1&modificationDate=1587647144887&api=v2)
Assim, o relatório é gerado corretamente.
![](/download/attachments/546680936/image2020-4-23_10-6-35.png?version=1&modificationDate=1587647203403&api=v2)