> For the complete documentation index, see [llms.txt](https://wedocs.gitbook.io/wedocs-5.1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wedocs.gitbook.io/wedocs-5.1/wedocs-5.0/cliente-desktop/recursos-extras-de-dashboards/formulas/funcoes.md).

# Funções

{% hint style="warning" %}

#### abs&#x20;

Retorna o valor absoluto de Valor.

***

**Sintaxe:**

abs(Valor)

***

**Parâmetros:**

Valor: Número

***

**Retorna:**

Número

***

**Exemplo:**

abs(-32) ›› 32
{% endhint %}

{% hint style="warning" %}

#### aggAvg&#x20;

Retorna a média de Campo.

***

**Sintaxe:**

aggAvg(Campo)

***

**Parâmetros:**

Campo: Texto

***

**Retorna:**

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggAvg("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### aggAvg \_over

Retorna a média do campo agregado definido no parâmetro **CampoAgregado.**

***

**Sintaxe:**

aggAvg\_over(CampoAgregado)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggAvg\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### aggCnt

Retorna a contagem de Campo.

***

**Sintaxe:**

aggCnt(Campo)

***

**Parâmetros:**

Campo: Texto

***

**Retorna:**

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggCnt("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### aggCnt\_over

Retorna a contagem do campo agregado definido no parâmetro **CampoAgregado.**

***

**Sintaxe:**

aggCnt\_over(CampoAgregado)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggCnt\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### aggDAvg&#x20;

Retorna a média de Campo fazendo distinção em CampoDistinto.

***

**Sintaxe:**

aggDAvg(Campo, CampoDistinto = @null)

***

**Parâmetros:**

Campo: Texto

CampoDistinto: Texto \[= @null]

***

**Retorna:**

Número

***

Observação:

O uso desta função só faz sentido com um metadado. Se CampoDistinto não for informado, a distinção é feita em Campo.

***

**Exemplo:**

aggDAvg("campo") ›› @null &#x20;
{% endhint %}

{% hint style="warning" %}

#### aggDAvg\_over&#x20;

Retorna a média do campo agregado definido no parâmetro **CampoAgregado** fazendo distinção no campo definido no parâmetro **CampoDistinto.**

***

**Sintaxe:**

aggDAvg\_over(CampoAgregado, CampoDistinto = @null)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

**CampoDistinto:** Texto \[= @null]\
O campo deve conter agregações\
Se não informado, a distinção é feita em **CampoAgregado**

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggDAvg\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### aggDCnt&#x20;

Retorna a contagem de Campo fazendo distinção em CampoDistinto.

***

**Sintaxe:**

aggDCnt(Campo, CampoDistinto = @null)

***

**Parâmetros:**

Campo: Texto

CampoDistinto: Texto \[= @null]

***

**Retorna:**

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado. Se CampoDistinto não for informado, a distinção é feita em Campo.

***

**Exemplo:**

aggDCnt("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### aggDCnt\_over&#x20;

Retorna a contagem do campo agregado definido no parâmetro **CampoAgregado** fazendo distinção no campo definido no parâmetro **CampoDistinto**.

***

**Sintaxe:**

aggDCnt\_over(CampoAgregado, CampoDistinto = @null)

***

**Parâmetros:**

**CampoAgregado:** Texto\
Deve conter agregações

**CampoDistinto:** Texto \[= @null]\
O campo deve conter agregações\
Se não informado, a distinção é feita em **CampoAgregado**

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggDCnt\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}
**aggDList**:

Retorna a lista de valores de Campo fazendo distinção em CampoDistinto.

***

**Sintaxe:**

aggDList(Campo, CampoDistinto = @null)

***

**Parâmetros:**

Campo: Texto

CampoDistinto: Texto \[= @null]

***

**Retorna:**

Texto

***

**Observação:**

O uso desta função só faz sentido com um metadado. Se CampoDistinto não for informado, a distinção é feita em Campo.

***

**Exemplo:**

aggDList("campo") ›› @null
{% endhint %}

{% hint style="warning" %}
**aggDList\_over**:

Retorna a listagem do campo agregado definido no parâmetro **CampoAgregado** fazendo distinção no campo definido no parâmetro **CampoDistinto.**

***

**Sintaxe:**

aggDList\_over(CampoAgregado, CampoDistinto = @null)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

**CampoDistinto:** Texto \[= @null]\
O campo deve conter agregações\
Se não informado, a distinção é feita em **CampoAgregado**

***

**Retorna:**

Texto

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplos:**

aggDList\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### aggDSum&#x20;

Retorna a soma de Campo fazendo distinção em CampoDistinto.

***

**Sintaxe:**

aggDSum(Campo, CampoDistinto = @null)

***

**Parâmetros:**

Campo: Texto

CampoDistinto: Texto \[= @null]

***

**Retorna:**

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado. Se CampoDistinto não for informado, a distinção é feita em Campo.

***

**Exemplo:**

aggDSum("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### aggDSum\_over&#x20;

Retorna a soma do campo agregado definido no parâmetro **CampoAgregado** fazendo distinção no campo definido no parâmetro **CampoDistinto**.

***

**Sintaxe:**

aggDSum\_over(CampoAgregado, CampoDistinto = @null)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

**CampoDistinto:** Texto \[= @null]\
O campo deve conter agregações\
Se não informado, a distinção é feita em **CampoAgregado**

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplos:**

aggDSum\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### agglf&#x20;

Permite o cálculo condicional **(Condição)** de uma **Expressão agregada**.\
Por exemplo: somar um campo X apenas dentre os registros cujo campo Y for maior que 10.

***

**Sintaxe:**

aggIf(Condição, Expressão agregada)

***

**Parâmetros:**

**Condição:** Qualquer tipo\
Não pode conter agregações ou funções de janela

**Expressão agregada:** Qualquer tipo\
Deve conter agregações e todos os campos utilizados devem ser agregados\
Campos SQL com agregação embutida não podem ser utilizados

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggIf(:c1 = 1& :c2 = 2, aggSum("c3")/ aggCnt("c4") \* 100) ›› @null
{% endhint %}

{% hint style="warning" %}

#### aggMax&#x20;

Retorna o máximo de Campo.

***

**Sintaxe:**

aggMax(Campo)

***

**Parâmetros:**

Campo: Texto

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggMax("campo") ›› @null  &#x20;
{% endhint %}

{% hint style="warning" %}

#### aggMax\_over

Retorna o maior valor do campo agregado definido no parâmetro **CampoAgregado**.

***

**Sintaxe:**

aggMax\_over(CampoAgregado)

***

**Parâmetros:**

**CampoAgregado**: Texto\
O campo deve conter agregações

***

**Retorna:**

Qualquer tipo

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggMax\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### aggMin&#x20;

Retorna o mínimo de Campo.

***

**Sintaxe:**

aggMin(Campo)

***

**Parâmetros:**

Campo: Texto

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggMin("campo") ›› @null
{% endhint %}

{% hint style="warning" %}

#### aggMin\_over

Retorna o menor valor do campo agregado definido no parâmetro **CampoAgregado.**

***

**Sintaxe:**

aggMin\_over(CampoAgregado)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

***

**Retorna:**

Qualquer tipo

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggMin\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### aggSum&#x20;

Retorna a soma de Campo.

***

**Sintaxe:**

aggSum(Campo)

***

**Parâmetros:**

Campo: Texto

***

**Retorna:**

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggSum("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### aggSum \_over

Retorna a soma do campo agregado definido no parâmetro **CampoAgregado.**

***

**Sintaxe:**

aggSum\_over(CampoAgregado)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggSum\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}
**aggList**:

Retorna a lista de valores de Campo.

***

**Sintaxe**:

aggList(Campo)

***

**Parâmetros**:

Campo: Texto

***

**Retorna:**

Texto

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggList("campo") ›› @null &#x20;
{% endhint %}

{% hint style="warning" %}
**aggList\_over**:

Retorna a listagem do campo agregado definido no parâmetro **CampoAgregado**.

***

**Sintaxe**:

aggList\_over(CampoAgregado)

***

**Parâmetros**:

**CampoAgregado**: Texto\
O campo deve conter agregações

***

**Retorna:**

Texto

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

aggList\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### and&#x20;

Verifica os valores booleanos passados. Retorna verdadeiro se todos forem verdadeiros. Retorna falso se ao menos um for falso.

***

**Sintaxe:**

and(Valor 1, Valor 2, ...)

***

**Parâmetros:**

Valor 1: Booleano Primeiro valor a ser testado.

Valor 2: Booleano Segundo valor a ser testado.

***

**Retorna:**

Booleano

***

**Exemplo:**

and(2<3,3>2) ›› 1
{% endhint %}

{% hint style="warning" %}

#### arrayAt&#x20;

Retorna a posição Índice da Lista.

***

**Sintaxe:**

arrayAt(Lista, Índice)

***

**Parâmetros:**

Lista: Lista

Índice: Lista

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

arrayAt(\["a","b","c"],\[2]) ›› "c"
{% endhint %}

{% hint style="warning" %}

#### calc&#x20;

Executa uma fórmula.

***

**Sintaxe:**

calc(Fórmula)

***

**Parâmetros:**

Fórmula: Texto Fórmula a ser executada.

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

calc("2 + 3") ›› 5
{% endhint %}

{% hint style="warning" %}

#### case

Retorna o resultado correspondente à condição atendida.

***

**Sintaxe:**

case(ValorTestado 1, Retorno 1, ...)

***

Parâmetros:

ValorTestado 1: Booleano

Retorno 1: Qualquer tipo

...

***

**Retorna:**

Qualquer tipo

***

**Observação:**

Se ValorTestado 1 for verdadeiro, retorna Retorno 1. Do contrário, se ValorTestado 2 for verdadeiro, retorna Retorno 2. Faz o mesmo teste para todos os pares até encontrar uma condição verdadeira. Se não encontrar nenhuma, retorna o último parâmetro que não faz parte de um par.

***

Exemplo:

case(2>13,">13",2>4,"5-13","<5") ›› "<5"
{% endhint %}

{% hint style="warning" %}

#### caseEx&#x20;

Compara o Valor com os valores recebidos e retorna o resultado correspondente à condição atendida.

***

**Sintaxe:**

caseEx(Valor, ValorTestado 1, Retorno 1, ...)

***

**Parâmetros:**

Valor: Qualquer tipo

ValorTestado 1: Qualquer tipo

Retorno 1: Qualquer tipo

...

***

**Retorna:**

Qualquer tipo

***

**Observação:**

Se Valor for igual a ValorTestado 1, retorna Retorno 1. Do contrário, se Valor for igual a ValorTestado 2, retorna Retorno 2. Faz o mesmo teste para todos os pares até encontrar uma condição verdadeira. Se não encontrar nenhuma, retorna o último parâmetro que não faz parte de um par.

***

**Exemplo:**

caseEx(2,1,"Um",2,"Dois","Outro") ›› "Dois"
{% endhint %}

{% hint style="warning" %}

#### cast&#x20;

Converte Valor para o Tipo passado.

***

**Sintaxe:**

cast(Valor, Tipo)

***

**Parâmetros:**

Valor: Qualquer tipo

Tipo: Texto number: Número text: Texto boolean: Booleano array: Lista

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

cast("12","number") ›› 12
{% endhint %}

{% hint style="warning" %}

#### ceil&#x20;

Arredonda um Valor para o maior valor.

***

Sintaxe:

ceil(Valor, Decimais = 0)

***

Parâmetros:

Valor: Número

Decimais: Número \[= 0] Decimais a exibir após o arredondamento.

***

Retorna:

Número

***

Exemplos:

ceil(2.392,1) ›› 2.4&#x20;

ceil(-2.392,1) ›› -2.3
{% endhint %}

{% hint style="warning" %}

#### char&#x20;

Retorna o caractere correspondente ao Código.

***

**Sintaxe:**

char(Código)

***

**Parâmetros:**

Código: Número

***

**Retorna:**

Texto

***

**Exemplo:**

char(67) ›› "C"
{% endhint %}

{% hint style="warning" %}

#### colorScale&#x20;

Retorna uma cor com base em uma escala/valor.

***

**Sintaxe:**

colorScale(Valor, Cor 1 = 0, Valor 1 = 0, Cor 2 = 100, Valor 2 = 16777215, ...)

***

**Parâmetros:**

Valor: Número Valor a buscar na escala

Cor 1: Número \[= 0] Primeira cor da escala

Valor 1: Número \[= 0] Primeiro valor da escala

Cor 2: Número \[= 100] Segunda cor da escala

Valor 2: Número \[= 16777215] Segundo valor da escala

***

**Retorna:**

Número

***

**Observação:**

A escala é formada por pares Cor/Valor.

***

**Exemplos:**

Escala cinza: preto (0%) a branco (100%), obtém o valor que corresponde a 25% colorScale(25,0,0x0,100,0xffffff) ›› 4210752
{% endhint %}

{% hint style="warning" %}
**cumul\_sum**

Retorna a soma acumulada de Campo.

***

**Sintaxe:**

cumul\_sum(Campo, Opcoes = @null)

***

**Parâmetros:**

Campo: Texto

Opcoes: Texto \[= @null]

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

cumul\_sum("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### datePart&#x20;

Retorna uma Parte de uma DataHora.

***

**Sintaxe:**

datePart(DataHora, Parte)

***

**Parâmetros:**

DataHora: Número

Parte: Texto&#x20;

millisecond Milissegundo (0-999)&#x20;

second Segundo (0-59)&#x20;

minute Minuto (0-59)&#x20;

hour Hora (0-23)&#x20;

week Semana (1-6)

&#x20;day Dia (1-31)

&#x20;month Mês (1-12)

&#x20;month2 Bimestre (1-6)&#x20;

month3 Trimestre (1-4)&#x20;

month4 Quadrimestre (1-3)&#x20;

month6 Semestre (1-2)&#x20;

year Ano (1-?)&#x20;

decade Década (1-?)&#x20;

decade0 Década (base 0) (1-?)&#x20;

century Século (1-?)&#x20;

millennium Milênio (1-?)

***

**Retorna:**

Número

***

**Exemplo:**

datePart(@currDT,"year") ›› 2022
{% endhint %}

{% hint style="warning" %}
**daysBetween**

Retorna a quantidade de dias entre a DataInicial (inclusive) e a DataFinal (inclusive). Opcionalmente, ignora alguns dias da semana.

***

**Sintaxe:**

daysBetween(Data inicial, Data final, Ignorar = @null)

***

**Parâmetros:**

Data inicial: Número

Data final: Número

Ignorar: Lista \[= @null] Ignora os dias da semana especificados nesta lista: 1 Domingo 2 Segunda-feira 3 Terça-feira 4 Quarta-feira 5 Quinta-feira 6 Sexta-feira 7 Sábado

***

**Retorna:**

Número

***

**Exemplo:**

daysBetween(@currDT-10,@currDT+10,\[1,7]) ›› 15
{% endhint %}

{% hint style="warning" %}

#### decDayDT&#x20;

Decrementa uma Quantidade de dias em uma DataHora.

***

**Sintaxe:**

decDayDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatD(decDayDT(@currDT)) ›› "07/08/2022"
{% endhint %}

{% hint style="warning" %}

#### decHourDT&#x20;

Decrementa uma Quantidade de horas em uma DataHora.

***

**Sintaxe:**

decHourDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatT(decHourDT(@currDT)) ›› "08:48:21"
{% endhint %}

{% hint style="warning" %}

#### decMinuteDT&#x20;

Decrementa uma Quantidade de minutos em uma DataHora.

***

**Sintaxe:**

decMinuteDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatT(decMinuteDT(@currDT)) ›› "09:48:04"
{% endhint %}

{% hint style="warning" %}

#### decMonthDT&#x20;

Decrementa uma Quantidade de meses em uma DataHora.

***

**Sintaxe:**

decMonthDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatD(decMonthDT(@currDT)) ›› "08/07/2022"
{% endhint %}

{% hint style="warning" %}

#### decMonthYM&#x20;

Decrementa uma Quantidade de meses em um AnoMês.

***

**Sintaxe:**

decMonthYM(AnoMês, Quantidade = 1)

***

**Parâmetros:**

AnoMês: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatYM(decMonthYM(@currYM)) ›› "07/2022"
{% endhint %}

{% hint style="warning" %}

#### decSecondDT&#x20;

Decrementa uma Quantidade de segundos em uma DataHora.

***

**Sintaxe:**

decSecondDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatT(decSecondDT(@currDT)) ›› "09:50:44"
{% endhint %}

{% hint style="warning" %}

#### decYearDT&#x20;

Decrementa uma Quantidade de anos em uma DataHora.

***

**Sintaxe:**

decYearDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatD(decYearDT(@currDT)) ›› "08/08/2021"
{% endhint %}

{% hint style="warning" %}

#### decYearYM&#x20;

Decrementa uma Quantidade de anos em um AnoMês.

***

**Sintaxe:**

decYearYM(AnoMês, Quantidade = 1)

***

**Parâmetros:**

AnoMês: Número

Quantidade: Número \[= 1] Quantidade a decrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatYM(decYearYM(@currYM)) ›› "08/2021"&#x20;
{% endhint %}

{% hint style="warning" %}
**div:**

Divisão do Dividendo pelo Divisor e, opcionalmente, retorna Falha se a divisão falhar.

***

**Sintaxe:**

div(Dividendo, Divisor, Falha = @null)

***

**Parâmetros:**

Dividendo: Número

Divisor: Número

Falha: Qualquer tipo \[= @null] Valor retornado se a divisão falhar. Exemplo: uma divisão por zero.

***

**Retorna:**

Número

***

**Exemplo:**

div(5,2) ›› 2.5
{% endhint %}

{% hint style="warning" %}
**divR:**

Resto da divisão inteira do Dividendo pelo Divisor e, opcionalmente, retorna Falha se a divisão falhar.

***

**Sintaxe:**

divR(Dividendo, Divisor, Falha = @null)

***

**Parâmetros:**

Dividendo: Número

Divisor: Número

Falha: Qualquer tipo \[= @null] Valor retornado se a divisão falhar. Exemplo: uma divisão por zero.

***

**Retorna:**

Número

***

**Exemplo:**

divR(5,2) ›› 1
{% endhint %}

{% hint style="warning" %}
**divT:**

Divisão inteira do Dividendo pelo Divisor e, opcionalmente, retorna Falha se a divisão falhar.

***

**Sintaxe:**

divT(Dividendo, Divisor, Falha = @null)

***

**Parâmetros:**

Dividendo: Número

Divisor: Número

Falha: Qualquer tipo \[= @null] Valor retornado se a divisão falhar. Exemplo: uma divisão por zero.

***

**Retorna:**

Número

***

**Exemplo:**

divT(5,2) ›› 2
{% endhint %}

{% hint style="warning" %}

#### dtTrunc&#x20;

Trunca uma DataHora.

***

**Sintaxe:**

dtTrunc(DataHora, Opção)

***

**Parâmetros:**

DataHora: Número

Opção: Texto&#x20;

second Segundo&#x20;

minute Minuto&#x20;

hour Hora&#x20;

week Semana&#x20;

day Dia&#x20;

month Mês&#x20;

month2 Bimestre

&#x20;month3 Trimestre&#x20;

month4 Quadrimestre&#x20;

month6 Semestre&#x20;

year Ano

decade Década&#x20;

decade0 Década (base 0)&#x20;

century Século&#x20;

millennium Milênio

***

**Retorna:**

Número

***

**Exemplo:**

formatDT(dtTrunc(@currDT,"day")) ›› "08/08/2022 00:00:00"
{% endhint %}

{% hint style="warning" %}

#### dtTruncUp&#x20;

Trunca uma DataHora para cima.

***

**Sintaxe**

dtTruncUp(DataHora, Opção)

***

**Parâmetros:**

DataHora: Número

Opção: Texto&#x20;

second Segundo

minute Minuto&#x20;

hour Hora&#x20;

week Semana&#x20;

day Dia&#x20;

month Mês&#x20;

month2 Bimestre

&#x20;month3 Trimestre&#x20;

month4 Quadrimestre

month6 Semestre&#x20;

year Ano&#x20;

decade Década&#x20;

decade0 Década (base 0)&#x20;

century Século

millennium Milênio

***

**Retorna:**

Número

***

**Exemplo:**

formatDT(dtTruncUp(@currDT,"day")) ›› "08/08/2022 23:59:59"
{% endhint %}

{% hint style="warning" %}

#### exp&#x20;

Retorna o resultado da expressão e\*\*Valor.

***

**Sintaxe:**

exp(Valor)

***

**Parâmetros:**

Valor: Número

***

**Retorna:**

Número

***

**Exemplo:**

exp(10) ›› 22026.4657948067&#x20;
{% endhint %}

{% hint style="warning" %}

#### expression

Permite o uso aninhado de expressões em outras funções que exigem o nome de um campo como, por exemplo, as funções de agregação.

***

**Sintaxe:**

expression(Expressão)

***

**Parâmetros:**

**Expressão**: Qualquer tipo

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

aggCnt(expression(2+3)) ›› @null
{% endhint %}

{% hint style="warning" %}

#### floor&#x20;

Arredonda um Valor para o menor valor.

***

**Sintaxe:**

floor(Valor, Decimais = 0)

***

**Parâmetros:**

Valor: Número

Decimais: Número \[= 0] Decimais a exibir após o arredondamento.

***

**Retorna:**

Número

***

**Exemplos:**

floor(2.392,1) ›› 2.3&#x20;

floor(-2.392,1) ›› -2.4
{% endhint %}

{% hint style="warning" %}

#### formatD&#x20;

Formata a Data com a Máscara passada.

***

**Sintaxe:**

formatD(Data, Máscara = "dd/mm/yyyy")

***

**Parâmetros:**

Data: Número

Máscara: Texto \[= "dd/mm/yyyy"]&#x20;

dd Dia (com 2 casas decimais)&#x20;

mm Mês (com 2 casas decimais)&#x20;

yyyy Ano (com 4 casas decimais)&#x20;

d Dia m&#x20;

Mês yy Ano

***

**Retorna:**

Texto

***

**Exemplo:**

formatD(@currD,"dd-mm") ›› "08-08"
{% endhint %}

{% hint style="warning" %}

#### formatDT&#x20;

Formata a DataHora com a Máscara passada.

***

**Sintaxe:**

formatDT(DataHora, Máscara = "dd/mm/yyyy hh:nn:ss")

***

**Parâmetros:**

DataHora: Número

Máscara: Texto \[= "dd/mm/yyyy hh:nn:ss"]&#x20;

dd Dia (com 2 casas decimais)&#x20;

mm Mês (com 2 casas decimais)&#x20;

yyyy Ano (com 4 casas decimais)&#x20;

hh Hora (com 2 casas decimais)&#x20;

nn Minuto (com 2 casas decimais)&#x20;

ss Segundo (com 2 casas decimais)&#x20;

zzz Milissegundo (com 3 casas decimais)

d Dia&#x20;

m Mês&#x20;

yy Ano

h Hora&#x20;

n Minuto&#x20;

s Segundo&#x20;

z Milissegundo

***

**Retorna:**

Texto

***

**Exemplo:**

formatDT(@currDT,"dd-mm hh:nn") ›› "08-08 10:07"
{% endhint %}

{% hint style="warning" %}

#### formatT&#x20;

Formata a Hora com a Máscara passada.

***

**Sintaxe:**

formatT(Hora, Máscara = "hh:nn:ss")

***

**Parâmetros:**

Hora: Número

Máscara: Texto \[= "hh:nn:ss"]&#x20;

hh Hora (com 2 casas decimais)&#x20;

nn Minuto (com 2 casas decimais)&#x20;

ss Segundo (com 2 casas decimais)&#x20;

zzz Milissegundo (com 3 casas decimais)&#x20;

h Hora&#x20;

n Minuto&#x20;

s Segundo&#x20;

z Milissegundo

***

**Retorna:**

Texto

***

**Exemplo:**

formatT(@currT,"hh:nn") ›› "10:10"
{% endhint %}

{% hint style="warning" %}

#### formatYM&#x20;

Formata o AnoMês com a Máscara passada.

***

**Sintaxe:**

formatYM(AnoMês, Máscara = "mm/yyyy")

***

**Parâmetros:**

AnoMês: Número

Máscara: Texto \[= "mm/yyyy"]&#x20;

mm Mês (com 2 casas decimais)&#x20;

yyyy Ano (com 4 casas decimais)&#x20;

m Mês&#x20;

yy Ano

***

**Retorna:**

Texto

***

**Exemplo:**

formatYM(@currYM,"mm-yyyy") ›› "08-2022"
{% endhint %}

{% hint style="warning" %}

#### getDayDT&#x20;

Obtém os dias de uma DataHora.

***

**Sintaxe:**

getDayDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

getDayDT(@currDT) ›› 8
{% endhint %}

{% hint style="warning" %}

#### getFinMonthDT

Retorna a data final do mês de uma DataHora.

***

**Sintaxe:**

getFinMonthDT(DataHora)

***

**Parâmetros**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getFinMonthDT(@currDT)) ›› "31/08/2022"
{% endhint %}

{% hint style="warning" %}

#### getFinMonthYM&#x20;

Retorna a data final do mês de um AnoMês.

***

**Sintaxe:**

getFinMonthYM(AnoMês)

***

**Parâmetros:**

AnoMês: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getFinMonthYM(@currYM)) ›› "31/08/2022"
{% endhint %}

{% hint style="warning" %}

#### getFinYearDT&#x20;

Retorna a data final do ano de uma DataHora.

***

**Sintaxe:**

getFinYearDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getFinYearDT(@currDT)) ›› "31/12/2022"
{% endhint %}

{% hint style="warning" %}

#### getFinYearYM&#x20;

Retorna a data final do ano de um AnoMês.

***

**Sintaxe:**

getFinYearYM(AnoMês)

***

**Parâmetros:**

AnoMês: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getFinYearYM(@currYM)) ›› "31/12/2022"
{% endhint %}

{% hint style="warning" %}

#### getHourDT&#x20;

Obtém as horas de uma DataHora.

***

**Sintaxe:**

getHourDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

getHourDT(@currDT) ›› 10
{% endhint %}

{% hint style="warning" %}

#### getIniMonthDT&#x20;

Retorna a data inicial do mês de uma DataHora.

***

**Sintaxe:**

getIniMonthDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getIniMonthDT(@currDT)) ›› "01/08/2022"
{% endhint %}

{% hint style="warning" %}

#### getIniMonthYM&#x20;

Retorna a data inicial do mês de um AnoMês.

***

**Sintaxe:**

getIniMonthYM(AnoMês)

***

**Parâmetros:**

AnoMês: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getIniMonthYM(@currYM)) ›› "01/08/2022"
{% endhint %}

{% hint style="warning" %}

#### getIniYearDT&#x20;

Retorna a data inicial do ano de uma DataHora.

***

**Sintaxe:**

getIniYearDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getIniYearDT(@currDT)) ›› "01/01/2022"
{% endhint %}

{% hint style="warning" %}

#### getIniYearYM&#x20;

Retorna a data inicial do ano de um AnoMês.

***

**Sintaxe:**

getIniYearYM(AnoMês)

***

**Parâmetros:**

AnoMês: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatD(getIniYearYM(@currYM)) ›› "01/01/2022"
{% endhint %}

{% hint style="warning" %}

#### getMinuteDT&#x20;

Obtém os minutos de uma DataHora.

***

**Sintaxe:**

getMinuteDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

getMinuteDT(@currDT) ›› 29
{% endhint %}

{% hint style="warning" %}

#### getMonthDT&#x20;

Obtém os meses de uma DataHora.

***

**Sintaxe:**

getMonthDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

getMonthDT(@currDT) ›› 8
{% endhint %}

{% hint style="warning" %}

#### getMonthYM&#x20;

Obtém os meses de um AnoMês.

***

**Sintaxe:**

getMonthYM(AnoMês)

***

**Parâmetros:**

AnoMês: Número

***

**Retorna:**

Número

***

**Exemplo:**

getMonthYM(@currYM) ›› 8
{% endhint %}

{% hint style="warning" %}

#### getSecondDT&#x20;

Obtém os segundos de uma DataHora.

***

**Sintaxe:**

getSecondDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

getSecondDT(@currDT) ›› 3
{% endhint %}

{% hint style="warning" %}

#### getVar&#x20;

Obtém o valor de uma variável.

***

**Sintaxe:**

getVar(Nome, ValorPadrão = @null)

***

**Parâmetros:**

Nome: Texto Nome da variável.

ValorPadrão: Qualquer tipo \[= @null] Valor retornado caso a variável seja nula.

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

getVar("minhaVariavel") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}

#### getYearDT&#x20;

Obtém os anos de uma DataHora.

***

**Sintaxe:**

getYearDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

getYearDT(@currDT) ›› 2022
{% endhint %}

{% hint style="warning" %}

#### getYearMonthDT&#x20;

Obtém o ano/mês de uma DataHora.

***

**Sintaxe:**

getYearMonthDT(DataHora)

***

**Parâmetros:**

DataHora: Número

***

**Retorna:**

Número

***

**Exemplo:**

formatYM(getYearMonthDT(@currDT)) ›› "08/2022"
{% endhint %}

{% hint style="warning" %}

#### getYearYM&#x20;

Obtém os anos de um AnoMês.

***

**Sintaxe:**

getYearYM(AnoMês)

***

**Parâmetros:**

AnoMês: Número

***

**Retorna:**

Número

***

**Exemplo:**

getYearYM(@currYM) ›› 2022
{% endhint %}

{% hint style="warning" %}

#### if&#x20;

Verifica um valor booleano. Se este valor for verdadeiro, retorna o valor do segundo parâmetro ValorSeVerdadeiro. Do contrário, retorna o valor do terceiro parâmetro ValorSeFalso.

***

**Sintaxe:**

if(ValorTestado, ValorSeVerdadeiro, ValorSeFalso = @null)

***

**Parâmetros:**

ValorTestado: Booleano Valor booleano a ser verificado.

ValorSeVerdadeiro: Qualquer tipo Valor retornado se o primeiro parâmetro for verdadeiro.

ValorSeFalso: Qualquer tipo \[= @null] Valor retornado se o primeiro parâmetro for falso.

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

if(2>3,"verdadeiro","falso") ›› "falso"
{% endhint %}

{% hint style="warning" %}

#### ifNull&#x20;

Verifica a expressão. Se existir ao menos uma variável nula na expressão, retorna o segundo parâmetro ValorSeNulo. Senão retorna o resultado da expressão.

***

**Sintaxe:**

ifNull(ExpressãoTestada, ValorSeNulo = @null)

***

**Parâmetros:**

ExpressãoTestada: Qualquer tipo Expressão a ser verificada.

ValorSeNulo: Qualquer tipo \[= @null] Valor retornado se o primeiro parâmetro contiver uma variável nula.

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

ifNull(:abc,"vazio") ›› "vazio"
{% endhint %}

{% hint style="warning" %}

#### ifNullEx&#x20;

Verifica se a expressão contém variáveis nulas. Se o segundo parâmetro for falso e existir ao menos uma variável nula na expressão, retorna o terceiro parâmetro ValorSeNulo. Se o segundo parâmetro for verdadeiro e todas as variáveis existentes forem nulas na expressão, retorna o terceiro parâmetro ValorSeNulo. Senão retorna o resultado da expressão.

***

**Sintaxe:**

ifNullEx(ExpressãoTestada, TestarTodas = 0, ValorSeNulo = @null)

***

**Parâmetros:**

ExpressãoTestada: Qualquer tipo Expressão a ser verificada.

TestarTodas: Qualquer tipo \[= 0] Se verdadeiro, todas as variáveis devem ser nulas.

ValorSeNulo: Qualquer tipo \[= @null] Valor retornado se o primeiro parâmetro contiver uma variável nula.

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

ifNullEx(:abc,@true,"vazio") ›› "vazio"
{% endhint %}

{% hint style="warning" %}

#### incDayDT&#x20;

Incrementa uma Quantidade de dias em uma DataHora.

***

**Sintaxe:**

incDayDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatD(incDayDT(@currDT)) ›› "09/08/2022"
{% endhint %}

{% hint style="warning" %}

#### incHourDT&#x20;

Incrementa uma Quantidade de horas em uma DataHora.

***

**Sintaxe:**

incHourDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatT(incHourDT(@currDT)) ›› "11:48:07"
{% endhint %}

{% hint style="warning" %}

#### incMinuteDT&#x20;

Incrementa uma Quantidade de minutos em uma DataHora.

***

**Sintaxe:**

incMinuteDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatT(incMinuteDT(@currDT)) ›› "10:50:04"
{% endhint %}

{% hint style="warning" %}

#### incMonthDT&#x20;

Incrementa uma Quantidade de meses em uma DataHora.

***

**Sintaxe:**

incMonthDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatD(incMonthDT(@currDT)) ›› "08/09/2022"
{% endhint %}

{% hint style="warning" %}

#### incMonthYM&#x20;

Incrementa uma Quantidade de meses em um AnoMês.

***

**Sintaxe:**

incMonthYM(AnoMês, Quantidade = 1)

***

**Parâmetros:**

AnoMês: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatYM(incMonthYM(@currYM)) ›› "09/2022"
{% endhint %}

{% hint style="warning" %}

#### incSecondDT&#x20;

Incrementa uma Quantidade de segundos em uma DataHora.

***

**Sintaxe:**

incSecondDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatT(incSecondDT(@currDT)) ›› "10:51:13"
{% endhint %}

{% hint style="warning" %}

#### incYearDT&#x20;

Incrementa uma Quantidade de anos em uma DataHora.

***

**Sintaxe:**

incYearDT(DataHora, Quantidade = 1)

***

**Parâmetros:**

DataHora: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatD(incYearDT(@currDT)) ›› "08/08/2023"
{% endhint %}

{% hint style="warning" %}

#### incYearYM&#x20;

Incrementa uma Quantidade de anos em um AnoMês.

***

**Sintaxe:**

incYearYM(AnoMês, Quantidade = 1)

***

**Parâmetros:**

AnoMês: Número

Quantidade: Número \[= 1] Quantidade a incrementar.

***

**Retorna:**

Número

***

**Exemplo:**

formatYM(incYearYM(@currYM)) ›› "08/2023"
{% endhint %}

{% hint style="warning" %}
**isNull**

Retorna de Valor é nulo.

***

**Sintaxe:**

isNull(Valor)

***

**Parâmetros:**

Valor: Qualquer tipo Valor a ser testado.

***

**Retorna:**

Número

***

**Exemplo:**

isNull(@null) ›› 1
{% endhint %}

{% hint style="warning" %}
**join**

Concatena os textos de uma Lista usando um Separador.

***

**Sintaxe**:

join(Lista, Separador = @null)

***

**Parâmetros**:

Lista: Lista

Separador: Texto \[= @null]

***

**Retorna**:

Texto

***

**Exemplo:**

join(\["abacaxi","laranja","framboesa"],";") ›› "abacaxi;laranja;framboesa"
{% endhint %}

{% hint style="warning" %}

#### jsonGet&#x20;

Obtém o valor da Propriedade do JSON passado.

***

**Sintaxe:**

jsonGet(JSON, Caminho, ValorPadrão = @null)

***

**Parâmetros:**

JSON: Texto

Caminho: Texto

ValorPadrão: Qualquer tipo \[= @null] Valor retornado se não encontrar o caminho passado.

***

**Retorna:**

Qualquer tipo

***

**Exemplo:**

jsonGet("{""a"":{""b"":\[1,\[2.1,2.2],3]}}","a.b\[1]") ›› "\[2.1,2.2]"
{% endhint %}

{% hint style="warning" %}
**lag**&#x20;

Retorna o valor anterior de Campo.

***

**Sintaxe:**

lag(Campo, Deslocamento = @null, Opcoes = @null)

***

**Parâmetros:**

Campo: Texto

Deslocamento: Número \[= @null]

Opcoes: Texto \[= @null]

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

lag("campo") ›› @null
{% endhint %}

{% hint style="warning" %}
**lead**&#x20;

Retorna o valor seguinte de Campo.

***

**Sintaxe**:

lead(Campo, Deslocamento = @null, Opcoes = @null)

***

**Parâmetros:**

Campo: Texto

Deslocamento: Número \[= @null]

Opcoes: Texto \[= @null]

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

lead("campo") ›› @null
{% endhint %}

{% hint style="warning" %}
**length**&#x20;

Retorna o tamanho do Texto.

***

**Sintaxe:**

length(Texto)

***

**Parâmetro:**

Texto: Texto

***

**Retorna:**

Número

***

**Exemplo:**

length("abc
{% endhint %}

{% hint style="warning" %}

#### log&#x20;

Retorna o log de Valor na Base informada.

***

**Sintaxe:**

log(Valor, Base)

***

**Parâmetros:**

Valor: Número

Base: Número

***

**Retorna:**

Número

***

**Exemplo:**

log(100,10) ›› 2
{% endhint %}

{% hint style="warning" %}

#### log10&#x20;

Retorna o log de Valor na base 10.

***

**Sintaxe:**

log10(Valor)

***

**Parâmetros:**

Valor: Número

***

**Retorna:**

Número

***

**Exemplo:**

log10(100) ›› 2
{% endhint %}

{% hint style="warning" %}

#### logE&#x20;

Retorna o log de Valor na base e.

***

**Sintaxe:**

logE(Valor)

***

**Parâmetros:**

Valor: Número

***

**Retorna:**

Número

***

**Exemplo:**

logE(100) ›› 4.60517018598809
{% endhint %}

{% hint style="warning" %}

#### lowerCase&#x20;

Converte um Texto para caixa baixa.

***

**Sintaxe:**

lowerCase(Texto, Opções = 0)

***

**Parâmetros:**

Texto: Texto Texto a ser convertido.

Opções: Número \[= 0] 0. Todo o texto é convertido.

1. Apenas a primeira letra do texto é convertida.
2. A primeira letra de cada palavra é convertida.

***

**Retorna:**

Texto

***

**Observação:**

Os seguintes caracteres delimitam palavras: {espaço} ! " # $ % & ' ( ) \* + , - . / : ; < = > ? @ \[ \ ] ^ \_ \` { | } \~ ¨ ´

***

**Exemplos:**

lowerCase("SANTA CATARINA",0) ›› "santa catarina"&#x20;

lowerCase("SANTA CATARINA",1) ›› "sANTA CATARINA"&#x20;

lowerCase("SANTA CATARINA",2) ›› "sANTA cATARINA"
{% endhint %}

{% hint style="warning" %}
**median\_cont**

&#x20;Retorna a mediana de Campo.

***

**Sintaxe:**

median\_cont(Campo)

***

**Parâmetros:**

Campo: Texto

***

**Retorna:**

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo:**

median\_cont("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}
**median\_cont\_over**

Retorna a mediana do campo agregado definido no parâmetro **CampoAgregado.**

***

**Sintaxe:**

median\_cont\_over(CampoAgregado)

***

**Parâmetros:**

**CampoAgregado:** Texto\
O campo deve conter agregações

***

**Retorna:**

Número

***

**Observação:**

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplos:**

median\_cont\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### not&#x20;

Inverte um valor booleano.

***

**Sintaxe:**

not(Valor)

***

**Parâmetros:**

Valor: Booleano Valor a ser invertido.

***

**Retorna:**

Booleano

***

**Exemplo:**

not(@false) ›› 1
{% endhint %}

{% hint style="warning" %}

#### or&#x20;

Verifica os valores booleanos passados. Retorna verdadeiro se ao menos um for verdadeiros. Retorna falso se todos forem falso.

***

**Sintaxe:**

or(Valor 1, Valor 2, ...)

***

**Parâmetros:**

Valor 1: Booleano Primeiro valor a ser testado.

Valor 2: Booleano Segundo valor a ser testado.

***

**Retorna:**

Booleano

***

**Exemplo:**

or(2<3,3<2) ›› 1
{% endhint %}

{% hint style="warning" %}
**padStr**

Preenche um Texto até um Tamanho usando Txt1 e, opcionalmente, Txt2, de acordo com o Modo.

***

**Sintaxe:**

padStr(Texto, Tamanho, Txt1 = @null, Modo = @null, Txt2 = @null)

***

**Parâmetros:**

Texto: Texto

Tamanho: Número

Txt1: Texto \[= @null]

Modo: Número \[= @null] 0. Direita.

1. Esquerda.
2. Direita e esquerda.
3. Esquerda e direita.

Txt2: Texto \[= @null]

***

**Retorna:**

Texto

***

**Exemplos:**

padStr("abc",5,"=+",2) ›› "=abc="&#x20;

padStr(:cpf,11,"0",1) ›› "00000000000"&#x20;

padStr("abc",7,"=+",2) ›› "=+abc=+"&#x20;

padStr("abc",7,"+=",2,"=+") ›› "=+abc+="&#x20;

padStr("abc",7,"+=",3,"=+") ›› "+=abc=+"
{% endhint %}

{% hint style="warning" %}
**parseDT**&#x20;

Tenta interpretar um Texto como data de acordo com a Mascara definida e, opcionalmente, retorna o valor Padrao se a interpretação falhar.

***

**Sintaxe:**

parseDT(Texto, Mascara = "d/m/y h:n", Padrao = @null, UTC = @null)

***

**Parâmetros:**

Texto: Texto Valor a ser interpretado como data.

Mascara: Texto \[= "d/m/y h:n"] Máscara a ser utilizada na interpretação. d Dia (com 1-2 casas decimais) dd Dia (com 2 casas decimais) m Mês (com 1-2 casas decimais) mm Mês (com 2 casas decimais) y Ano (com 1-2 casas decimais) yyyy Ano (com 4 casas decimais) h Hora (com 1-2 casas decimais) hh Hora (com 2 casas decimais) n Minuto (com 1-2 casas decimais) nn Minuto (com 2 casas decimais) s Segundo (com 1-2 casas decimais) ss Segundo (com 2 casas decimais) z Milissegundo (com 1-3 casas decimais) zzz Milissegundo (com 3 casas decimais) t Timezone

Padrao: Número \[= @null] Valor retornado se a interpretação falhar.

UTC: Booleano \[= @null] Se verdadeiro, retorna a data/hora UTC. Se falso, retorna a data/hora local (do servidor).

***

**Retorna:**

Número

***

**Exemplo:**

formatD(parseDT("1969-12-15","y-m-d")) ›› "30/12/1899"
{% endhint %}

{% hint style="warning" %}
**percent**

Retorna o percentual de Campo em relação ao total.

***

**Sintaxe**:

percent(Campo, Opcoes = @null)

***

**Parâmetros**:

Campo: Texto

Opcoes: Texto \[= @null]

***

**Retorna**:

Número

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

percent("campo") ›› @null
{% endhint %}

{% hint style="warning" %}
**percentile\_cont**

Retorna o percentil de Campo.

***

**Sintaxe**:

percentile\_cont(Campo, Valor = 0.5)

***

**Parâmetros**:

Campo: Texto

Valor: Número \[= 0.5]

***

**Retorna**:

Número

***

**Observação**:

O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

percentile\_cont("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}
**percentile\_cont\_over**

Retorna o percentil do campo agregado definido no parâmetro **CampoAgregado.**

***

**Sintaxe**:

percentile\_cont\_over(CampoAgregado, Valor = 0.5)

***

**Parâmetros**:

**CampoAgregado:** Texto\
O campo deve conter agregações

**Valor:** Número \[= 0.5]

***

**Retorna**:

Número

***

**Observação**:

Esta função realiza a agregação de outra agregação.\
O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

percentile\_cont\_over("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### piece&#x20;

Retorna o n-ésimo pedaço de um Texto particionado por Separador.

***

**Sintaxe:**

piece(Texto, Separador, Índice = 1)

***

**Parâmetros:**

Texto: Texto

Separador: Texto Particionador do texto.

Índice: Número \[= 1] Índice do pedaço a retornar.

***

**Retorna:**

Texto

***

**Exemplo:**

piece("01/01/2001","/",3) ›› "2001"
{% endhint %}

{% hint style="warning" %}

#### pieceCount&#x20;

Retorna a quantidade de pedaços de um Texto particionado por Separador.

***

**Sintaxe:**

pieceCount(Texto, Separador)

***

**Parâmetros:**

Texto: Texto

Separador: Texto Particionador do texto.

***

**Retorna:**

Número

***

**Observação:**

Mesmo um texto vazio contém ao menos um pedaço.

***

**Exemplos:**

pieceCount("01/01/2001","/") ›› 3&#x20;

pieceCount("","/") ›› 1
{% endhint %}

{% hint style="warning" %}

#### pieceCountN&#x20;

Retorna a quantidade de pedaços de um Texto particionado por Separador mas retorna zero se o texto for vazio.

***

**Sintaxe:**

pieceCountN(Texto, Separador)

***

**Parâmetros:**

Texto: Texto

Separador: Texto Particionador do texto.

***

**Retorna:**

Número

***

**Observação:**

Um texto vazio retorna zero.

***

**Exemplos:**

pieceCountN("01/01/2001","/") ›› 3&#x20;

pieceCountN("","/") ›› 0
{% endhint %}

{% hint style="warning" %}
**rank**&#x20;

Retorna o ranking de Campo.

***

**Sintaxe**:

rank(Campo, Opcoes = @null)

***

**Parâmetros**:

Campo: Texto

Opcoes: Texto \[= @null]

***

**Retorna**:

Qualquer tipo

***

**Observação**:

O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

rank("campo") ›› @null
{% endhint %}

{% hint style="warning" %}

#### replace&#x20;

Procura no Texto as ocorrências de Remover e substitui por Inserir.

***

**Sintaxe:**

replace(Texto, Remover, Inserir = @null, Opções = \[1, 2])

***

**Parâmetros:**

Texto: Texto

Remover: Texto Valor a ser removido

Inserir: Texto \[= @null] Valor a ser inserido

Opções: Lista \[= \[1, 2]]

1. Ignora a caixa do texto procurado.
2. Substitui todas as ocorrências.

***

**Retorna:**

Texto

***

**Exemplos:**

replace("Abacate","a","*",\[]) ›› "Ab\_cate"*&#x20;

*replace("Abacate","a","*",\[1]) ›› "*bacate"*&#x20;

*replace("Abacate","a","*",\[2]) ›› "Ab\_c\_te"&#x20;

replace("Abacate","a","\_",\[1,2]) ›› "\_b\_c\_te"
{% endhint %}

{% hint style="warning" %}

#### round&#x20;

Arredonda um Valor com os Decimais especificados.

***

**Sintaxe*****:***

round(Valor, Decimais = 0)

***

**Parâmetros:**

Valor: Número

Decimais: Número \[= 0] Decimais a exibir após o arredondamento.

***

Retorna:

Número

***

**Exemplo:**

round(2.392,1) ›› 2.4
{% endhint %}

{% hint style="warning" %}

#### script&#x20;

Permite a execução sequencial de expressões.

***

**Sintaxe:**

script(Expressão 1, Expressão 2, ...)

***

**Parâmetros:**

Expressão 1: Qualquer tipo Primeira expressão a ser executada.

Expressão 2: Qualquer tipo Segunda expressão a ser executada.

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O retorno da função é o retorno da última expressão passada. A constante @currValue contém o valor da expressão anterior. Também é possível usar a função setVar para armazenar um valor para uso em expressões subsequentes.

***

**Exemplo:**

script(setVar("a",2+5),3-1,@currValue\*:a) ›› 14
{% endhint %}

{% hint style="warning" %}

#### setVar&#x20;

Atribuiu um valor à uma variável.

***

**Sintaxe:**

setVar(Nome, Valor)

***

**Parâmetros:**

Nome: Texto Nome da varável que receberá o valor.

Valor: Qualquer tipo Valor a ser atribuído à variável.

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O valor retornado pela função é o valor atribuído à variável.

***

**Exemplo:**

setVar("minhaVariavel",3-5) ›› -2
{% endhint %}

{% hint style="warning" %}
**sort**&#x20;

Ordena uma Lista.

***

**Sintaxe**:

sort(Lista, Direção = 1)

***

**Parâmetros**:

Lista: Lista

Direção: Número \[= 1] 1 Ascendente -1 Decrescente

***

**Retorna**:

Lista

***

**Exemplos**:

sort(\["abacaxi","laranja","framboesa"]) ›› \["abacaxi", "framboesa", "laranja"]&#x20;

sort(\[1,7,0,2.3],-1) ›› \[7, 2.3, 1, 0]
{% endhint %}

{% hint style="warning" %}
**split**&#x20;

Divide Texto usando o Separadores.

***

**Sintaxe**:

split(Texto, Separadores)

***

**Parâmetros**:

Texto: Texto

Separadores: Texto ou Lista

***

**Retorna**:

Lista

***

**Exemplos**:

split("abacaxi,laranja,framboesa", ",") ›› \["abacaxi", "laranja", "framboesa"] split("abacaxi,laranja;framboesa", \[",", ";"]) ›› \["abacaxi", "laranja", "framboesa"]
{% endhint %}

{% hint style="warning" %}

#### sqlLike&#x20;

Verifica se Texto atende à Máscara.

***

**Sintaxe:**

sqlLike(Texto, Máscara)

***

**Parâmetros:**

Texto: Texto

Máscara: Texto Coringas: \_ 1 caractere % 1 sequência de caracteres

***

**Retorna:**

Booleano

***

**Observação:**

O teste não ignora a caixa ou caracteres especiais, assim como o operador like em um comando SQL.

***

**Exemplo:**

sqlLike("Salvador","%alva%") ›› 1
{% endhint %}

{% hint style="warning" %}

#### sqrt&#x20;

Retorna a n-ésima raiz de um valor.

***

**Sintaxe:**

sqrt(Valor, Raiz = 2)

***

**Parâmetros:**

Valor: Número

Raiz: Número \[= 2]

***

Retorna:

Número

***

**Exemplo:**

sqrt(81,3) ›› 4.32674871092223
{% endhint %}

{% hint style="warning" %}

#### subStr&#x20;

Retorna um pedaço de Texto.

***

**Sintaxe:**

subStr(Texto, Posição = 1, Tamanho = 1)

***

**Parâmetros:**

Texto: Texto

Posição: Número \[= 1] Posição do pedaço a retornar (base 1)

Tamanho: Número \[= 1] Tamanho do pedaço a retornar (base 1)

***

**Retorna:**

Texto

***

**Exemplo:**

subStr("Santa Maria/RS",7,3) ›› "Mar"
{% endhint %}

{% hint style="warning" %}

#### total

Retorna o total do **Campo** agregado passado.\
Em uma visão monodimensional, o total representa o rodapé.\
Em uma visão multidimensional, pode ser o total geral ou o subtotal de um grupo.

***

**Sintaxe:**

total(Campo, Linha = @null, Coluna = @null)

***

**Parâmetros:**

**Campo:** Texto\
Deve ser utilizado um campo agregado

**Linha**: Número \[= @null]

* Se este valor for omitido, ou se for repassado um valor zero, será utilizada a linha relativa ao total geral;
* Se for informado um valor positivo, será utilizada a linha de um grupo superior:
  1. Primeiro grupo (pai);
  2. Segundo grupo (avô); <br>
* Se um valor negativo for informado, será utilizada a linha de um grupo inferior ao total geral;  \
  -1. Primeiro grupo abaixo do total geral (filho);  \
  -2. Segundo grupo abaixo do total geral (neto); <br>

Coluna: Número \[= @null]

* Se este valor for omitido, será utilizado o mesmo valor informado para a Linha;
* Se for repassado um valor zero, será utilizada a coluna relativa ao total geral;
* Se for informado um valor positivo, será utilizada a coluna de um grupo superior:
  1. Primeiro grupo (pai);
  2. Segundo grupo (avô); <br>
* Se um valor negativo for informado, será utilizada a coluna de um grupo inferior ao total geral;  \
  -1. Primeiro grupo abaixo do total geral (filho);  \
  -2. Segundo grupo abaixo do total geral (neto); <br>

***

**Retorna:**

Qualquer tipo

***

**Observação:**

O uso desta função só faz sentido com um metadado.

***

**Exemplos:**

total("sum\_field")
{% endhint %}

{% hint style="warning" %}

#### translate&#x20;

Procura no Texto as ocorrências de cada caracter contido em Remover e substitui pelo caracter correspondente contido em Inserir.

***

**Sintaxe:**

translate(Texto, Remover, Inserir = @null, Opções = \[1, 2])

***

**Parâmetros:**

Texto: Texto

Remover: Texto Valor a ser removido

Inserir: Texto \[= @null] Valor a ser inserido

Opções: Lista \[= \[1, 2]]

1. Ignora a caixa do texto procurado.
2. Substitui todas as ocorrências.

***

Retorna:

Texto

***

**Observação:**

Se houver mais caracteres em Remover do que em Inserir, estes caracteres são removidos mas nada é inserido no lugar. Se houver mais caracteres em Inserir do que em Remover, estes caracteres são simplesmente ignorados.

***

**Exemplos:**

translate("mãçã","ãÇ","ac",\[]) ›› "maçã"&#x20;

translate("mãçã","ãÇ","ac",\[1]) ›› "macã"&#x20;

translate("mãçã","ãÇ","ac",\[2]) ›› "maça"&#x20;

translate("mãçã","ãÇ","ac",\[1,2]) ›› "maca"
{% endhint %}

{% hint style="warning" %}

#### trunc&#x20;

Trunca um Valor com os Decimais especificados.

***

**Sintaxe:**

trunc(Valor, Decimais = 0)

***

**Parâmetros:**

Valor: Número

Decimais: Número \[= 0] Decimais a exibir após o truncamento.

***

**Retorna:**

Número

***

**Exemplos:**

trunc(2.392,1) ›› 2.3&#x20;

trunc(-2.392,1) ›› -2.3
{% endhint %}

{% hint style="warning" %}

#### upperCase&#x20;

Converte um Texto para caixa alta.

***

**Sintaxe:**

upperCase(Texto, Opções = 0)

***

**Parâmetros:**

Texto: Texto Texto a ser convertido.

Opções: Número \[= 0] 0. Todo o texto é convertido.

1. Apenas a primeira letra do texto é convertida.
2. A primeira letra de cada palavra é convertida.

***

**Retorna:**

Texto

***

**Observação:**

Os seguintes caracteres delimitam palavras: {espaço} ! " # $ % & ' ( ) \* + , - . / : ; < = > ? @ \[ \ ] ^ \_ \` { | } \~ ¨ ´

***

**Exemplos:**

upperCase("santa catarina",0) ›› "SANTA CATARINA"&#x20;

upperCase("santa catarina",1) ›› "Santa catarina"&#x20;

upperCase("santa catarina",2) ›› "Santa Catarina"
{% endhint %}

{% hint style="warning" %}
**var**&#x20;

Retorna a variação de Campo.

***

**Sintaxe**:

var(Campo, Deslocamento = @null, Opcoes = @null)

***

**Parâmetros**:

Campo: Texto

Deslocamento: Número \[= @null]

Opcoes: Texto \[= @null]

***

**Retorna**:

Número

***

**Observação**:

O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

var("campo") ›› @null&#x20;
{% endhint %}

{% hint style="warning" %}
**Exemplos:**

upperCase("santa catarina",0) ›› "SANTA CATARINA"&#x20;

upperCase("santa catarina",1) ›› "Santa catarina"&#x20;

upperCase("santa catarina",2) ›› "Santa Catarina"
{% endhint %}

{% hint style="warning" %}
**varPer**&#x20;

Retorna a variação percentual de Campo.

***

**Sintaxe**:

varPer(Campo, Deslocamento = @null, Opcoes = @null)

***

**Parâmetros**:

Campo: Texto

Deslocamento: Número \[= @null]

Opcoes: Texto \[= @null]

***

**Retorna**:

Número

***

**Observação**:

O uso desta função só faz sentido com um metadado.

***

**Exemplo**:

varPer("campo") ›› @null
{% endhint %}

{% hint style="warning" %}

#### xor&#x20;

Verifica os valores booleanos passados. Retorna verdadeiro se um, e somente um, for verdadeiro. Retorna falso se todos forem falso ou houver mais de um verdadeiro.

***

**Sintaxe:**

xor(Valor 1, Valor 2, ...)

***

**Parâmetros:**

Valor 1: Booleano Primeiro valor a ser testado.

Valor 2: Booleano Segundo valor a ser testado.

***

**Retorna:**

Booleano

***

**Exemplo:**

xor(2<3,3>2) ›› 0
{% endhint %}
