Estrutura das fórmulas

Este tópico explica a estruturação das fórmulas utilizadas em atributos do tipo Fórmula, que são criados e gerenciados na seção Objetos e Atributos do módulo Administração.

Para criar um atributo do tipo Fórmula, primeiro deve-se escolher o formato do valor a ser calculado através do campo Saída da Fórmula. As opções disponíveis para os objetos do sistema são Data/Hora, Número e Texto. 

As fórmulas podem ser compostas por uma ou mais linhas, com expressões separadas por ponto e vírgula (;). Cada linha é executada sequencialmente e o valor retornado é calculado de acordo com o resultado da última linha executada. A forma de escrita mais comum segue a sintaxe abaixo, sendo [#x] opcional:

[#variavelA] = <expressão 1>;

[#variavelB] = <expressão 2>;

[#variavelZ] = <expressão N>;

 

As variáveis no exemplo acima podem ser criadas para facilitar a escrita da fórmula inserindo a cerquilha ("#"). Por exemplo:

#variavel_criada_pelo_usuario = 1;

#expressao = #variavel_criada_pelo_usuario * @atributo_do_objeto + 10;

#expressao

 

Em cada expressão, podem ser utilizadas as variáveis das propriedades do objeto ou quaisquer atributos customizados criados para este, exceto aqueles dos tipos Anexo, Fórmula, Imagem, Tópicos e Relacionamento. As propriedades e atributos do objeto para qual o atributo está sendo criado estarão disponíveis para uso através do campo Variáveis. As variáveis dos atributos customizados associados ao objeto são precedidas pelo símbolo "@".

 

Para informações mais detalhadas sobre a sintaxe dessas fórmulas, acesse o link abaixo:

http://www.springframework.net/doc-latest/reference/html/expressions.html.

 

As tabelas abaixo listam os operadores e as funções disponíveis com suas descrições:

Operadores Relacionais

Descrição

==

Retorna verdadeiro caso os dois elementos sejam iguais e falso caso contrário. Ex.: "#result = #var == 1"

!=

Retorna verdadeiro caso os dois elementos sejam diferentes e falso caso contrário. Ex.: "#result = #var != 1"

<

Retorna verdadeiro caso o elemento da esquerda seja menor que o elemento da direita. Ex.: "#result = #var < 1"

<=

Retorna verdadeiro caso o elemento da esquerda seja menor ou igual ao elemento da direita. Ex.: "#result = #var <= 1"

>

Retorna verdadeiro caso o elemento da esquerda seja maior que o elemento da direita. Ex.: "#result = #var > 1"

>=

Retorna verdadeiro caso o elemento da esquerda seja maior ou igual ao elemento da direita. Ex.: "#result = #var >= 1"

in

Retorna verdadeiro caso o elemento esteja contido no vetor. Ex.: "#result = 3 in {1,2,3,4}"

between

Retorna verdadeiro caso o elemento esteja contido no intervalo definido. Ex.: "#result = 3 between {1,4}"

 

Operadores Lógicos

Descrição

or

Retorna verdadeiro caso uma condição seja aceita. Ex.: "#result = (#var == 1) or (#var == 2)"

and

Retorna verdadeiro caso todas as condições sejam aceitas. Ex.: "#result = (#var != 1) and (#var != 2)"

!

Nega o resultado booleano de uma expressão. Se o resultado for verdadeiro retorna falso. Se for falso retorna verdadeiro. Ex.: "#result = !(2 == 1)"

 

Operadores Matemáticos

Descrição

+

Soma. Ex.: "#result = 2 + 3"

Retorno: 5

-

Subtração. Ex.: "#result = 2 - 3"

Retorno: -1

*

Multiplicação. Ex.: "#result = 2 * 3"

Retorno: 6

/

Divisão. Ex.: "#result = 2.0 / 3.0"

Retorno: 0.66666

%

Módulo. Ex.: "#result = 3.0 % 2.0"

Retorno: 1

^

Potência. Ex.: "#result = 2 ^ 3"

Retorno: 8

 

Atribuição e Variáveis

Descrição

=

Utilizado para atribuições a uma variável. Ex.: "#var = 5"

#nome

Declara o nome de uma variável. Ex.: "#var = 'hello'"

 

Operação Ternária (operador condicional)

Descrição

<boolean expression> ? <if true then…> : <if false then…>

Cria uma condição para avaliação antes de executar de uma expressão. Ex.:

#var >= 5 ? 'High' : 'Low'

 

Funções e Constantes Matemáticas

Descrição

T(System.Math).E

Retornos estabelecidos pela classe Math do .Net Framework 4.5.

http://msdn.microsoft.com/en-us/library/system.math.aspx

T(System.Math).PI

T(System.Math).Abs(double value)

T(System.Math).Acos(double d)

T(System.Math).Asin(double d)

T(System.Math).Atan(double d)

T(System.Math).Atan2(double y, double x)

T(System.Math).BigMul(int a, int b)

T(System.Math).Ceiling(double a)

T(System.Math).Cos(double d)

T(System.Math).Cosh(double value)

T(System.Math).Exp(double d)

T(System.Math).Floor(double d)

T(System.Math).IEEERemainder(double x, double y)

T(System.Math).Log(double d)

T(System.Math).Log(double a, double newBase)

T(System.Math).Log10(double d)

T(System.Math).Max(double val1, double val2)

T(System.Math).Min(double val1, double val2)

T(System.Math).Pow(double x, double y)

T(System.Math).Round(double a)

T(System.Math).Round(double value, int digits)

T(System.Math).Sign(double value)

T(System.Math).Sin(double a)

T(System.Math).Sinh(double value)

T(System.Math).Sqrt(double d)

T(System.Math).Tan(double a)

T(System.Math).Tanh(double value)

T(System.Math).Truncate(double d)

 

Funções Auxiliares

Descrição

#ToInt(value)

Transforma a string ou o número decimal especificado em um número inteiro por aproximação.

#GetCulture(code)

Transforma o código regional fornecido pelo parâmetro "code" em um formato de cultura de linguagem reconhecido por outras funções de conversão (ex. ToString() ). Os códigos suportados podem ser consultados na seguinte página: https://msdn.microsoft.com/pt-br/goglobal/bb896001.aspx.