Exibir expressões com a ajuda do objeto "Texto"
Um dos recursos mais importantes deste objeto básico é sua habilidade de exibir não apenas texto estático, mas também expressões. Expressões podem ser colocadas dentro do objetos, misturadas a texto normal. Vamos ver um exemplo simples de como isso funciona. Digite o seguinte no objeto:
Olá, Mundo! Hoje é [DATE].
Quando o relatório for executado, obteremos algo parecido a isto:
Olá, Mundo! Hoje é 01.01.2004.
Como isso acontece? Quando FastReport cria o relatório e encontra uma expressão entre colchetes, o mecanismo de relatórios calcula o valor da expressão e insere este valor no texto no lugar da expressão. Objetos "Texto" podem conter inúmeras expressõres misturadas ao texto normal. Expressões complexas podem conter parênteses (por exemplo [1+2*(3+4)]). Constantes, variáveis, funções e campos de BD podem ser usados em expressões. Iremos aprender mais sobre eles mais tarde neste capítulo.
O FastReport reconhece expressões entre colchetes automaticamente no texto. Mas o que acontece se nosso texto normal conter colchetes que não queremos que sejam considerados como expressões? Por exemplo, se precisamos exibir o seguinte:
a[1] := 10
FastReport consideraria [1] como uma expressão e exibiria o texto como:
a1 := 10
o que não desejamos que aconteça, é claro. Uma maneira de evitar isso é desabilitar o reconhecimento de expressões. Desabilite a propriedade AllowExpressions
(ou "Permitir Expressões" no menu de contexto) e todas as expressões no texto serão ignoradas. Em nosso exemplo, o FastReport iria exibir exatamente o que precisamos:
a[1] := 10
Porém, às vezes, é necessário que um texto tenha tanto uma expressão quanto texto normal entre colchetes, por exemplo:
a[1] := [myVar]
Desabilitar AllowExpressions
nos permite exibir colchetes nos lugares necessários, mas também desabilita a manipulação de expressões. Nesta situação, o FastReport permite a utilização de um conjunto de símbolos alternativo para designar expressões. Por padrão, a propriedade ExpressionDelimiters
é responsável por isso. Em nosso exemplo podemos usar chevrons para as expressões, em vez de colchetes:
a[1] := <myVar>
O valor "<,>" deve ser definido na propriedade ExpressionDelimiters
, onde a vírgula é necessária para separar os símbolos de abertura e fechamento. Outro requisito é que os símbolos de abertura e fechamento não podem ser idênticos, então "%,%" não funcionará. Podem ser usados símbolos complexos, por exemplo "<%,%>". Então nosso exemplo poderia ter o seguinte aspecto:
a[1] := <%myVar%>