Difference between revisions of "Expressions/pt-br"
(Created page with "As funções auxiliares básicas são funções padrão do sistema e implementam funcionalidades úteis para compor expressões complexas.") |
(Created page with "Sintaxe: COUNT_DISTINCT(<expressão>) Exemplo: '''COUNT_DISTINCT("Produto")''' - Retorna o número de ocorrências únicas de produtos") |
||
(141 intermediate revisions by 4 users not shown) | |||
Line 19: | Line 19: | ||
* Se o componente possui as colunas ''Preço Total'' e ''Quantidade'', pode-se criar uma expressão para calcular o ''Preço Unitário''. Ficaria assim: | * Se o componente possui as colunas ''Preço Total'' e ''Quantidade'', pode-se criar uma expressão para calcular o ''Preço Unitário''. Ficaria assim: | ||
− | ** ''Preço Total'' / ''Quantidade'' | + | ** ''"Preço Total"'' / ''"Quantidade"'' |
* Além disso, pode-se utilizar valores fixos, como por exemplo: | * Além disso, pode-se utilizar valores fixos, como por exemplo: | ||
− | ** ''Preço Total'' / 10 | + | ** ''"Preço Total"'' / 10 |
Lembramos apenas que atualmente o TaticView suporta apenas expressões cujo retorno é numérico. | Lembramos apenas que atualmente o TaticView suporta apenas expressões cujo retorno é numérico. | ||
+ | |||
+ | As expressões suportam a barra inversa como [[EscapeChar|caractere de escape]] para que nomes possam conter os caracteres delimitadores. | ||
Abaixo detalhes sobre o funcionamento das expressões. | Abaixo detalhes sobre o funcionamento das expressões. | ||
Line 31: | Line 33: | ||
== Estrutura básica de uma expressão == | == Estrutura básica de uma expressão == | ||
+ | ==== Identificador ==== | ||
+ | |||
+ | É o nome do campo ou coluna envolvido na expressão, deve ser delimitado por aspas duplas. | ||
+ | |||
+ | * Exemplos: "Preço médio", "Parafuso 1\" philips", "Vendedor" | ||
==== Operando de Valor ==== | ==== Operando de Valor ==== | ||
Line 38: | Line 45: | ||
* Exemplos: 1, 1.05, 2.55 | * Exemplos: 1, 1.05, 2.55 | ||
+ | * Importante: Não é permitido usar separador de milhar nos valores, assim como "," como separador decimal. | ||
==== Operando de Texto ==== | ==== Operando de Texto ==== | ||
Line 72: | Line 80: | ||
* Exemplo: IF("Produto" == "#null";0;20) | * Exemplo: IF("Produto" == "#null";0;20) | ||
− | |||
== Expressões Aritméticas == | == Expressões Aritméticas == | ||
Line 96: | Line 103: | ||
<operando ou expressão> - <operando ou expressão> | <operando ou expressão> - <operando ou expressão> | ||
Exemplo: | Exemplo: | ||
− | '''"Preço" | + | '''"Preço" - "Impostos"''' – Subtrai os valores dos campos ''Preço'' e ''Impostos'' |
Line 197: | Line 204: | ||
Exemplos: | Exemplos: | ||
'''IF(("Preço" > 0) && ("Vendedor" == 'André Moraes');450;0)''' – Se o ''Preço'' for maior que ''0'' '''E''' o ''Vendedor'' for igual a ''André Moraes'', retorna ''450'', se não retorna ''0'' | '''IF(("Preço" > 0) && ("Vendedor" == 'André Moraes');450;0)''' – Se o ''Preço'' for maior que ''0'' '''E''' o ''Vendedor'' for igual a ''André Moraes'', retorna ''450'', se não retorna ''0'' | ||
− | |||
'''IF(("Cidade" != "#null") && ("Produto" != 'Lasanha');1;0)''' – Se a ''Cidade'' for diferente de nula '''E''' o ''Produto'' for diferente de ''Lasanha'' retorna ''1'', se não retorna ''0'' | '''IF(("Cidade" != "#null") && ("Produto" != 'Lasanha');1;0)''' – Se a ''Cidade'' for diferente de nula '''E''' o ''Produto'' for diferente de ''Lasanha'' retorna ''1'', se não retorna ''0'' | ||
Line 209: | Line 215: | ||
Exemplos: | Exemplos: | ||
'''IF(("Preço" > 1000) || ("Lucro" >= 50);75;55)''' – Se o ''Preço'' for maior que ''1000'' '''OU''' o ''Lucro'' for maior ou igual a ''50'' retorna ''75'', se não retorna ''55'' | '''IF(("Preço" > 1000) || ("Lucro" >= 50);75;55)''' – Se o ''Preço'' for maior que ''1000'' '''OU''' o ''Lucro'' for maior ou igual a ''50'' retorna ''75'', se não retorna ''55'' | ||
− | + | '''IF(("Cidade" != "#null") || ("Produto" != 'Lasanha');1;0)''' - Se ''Cidade'' não for null '''OU''' ''Produto'' deferente de ''Lasanha'' returna ''1'' senão retorna ''0'' | |
− | |||
− | '''IF(("Cidade" != "#null") || ("Produto" != 'Lasanha');1;0 | ||
− | |||
Line 231: | Line 234: | ||
− | ==== ABS | + | ==== Função ABS ==== |
− | + | Função que retorna o valor numérico absoluto de um valor numérico base. | |
− | + | Sintaxe: | |
− | ABS(< | + | ABS(<expressão>) |
− | + | Exemplo: | |
− | '''ABS(" | + | '''ABS("Preço" / "Quantidade")''' – Retorna o valor absoluto do ''Preço'' divido pela ''Quantidade'' |
− | ==== AVG | + | ==== Função AVG ==== |
− | + | Retorna a média dos valores de uma sequência de valores. Pode ser utilizado para retornar a média de diferentes valores de uma mesma linha das tabelas. | |
− | + | Sintaxe: | |
− | AVG(< | + | AVG(<expressão 1>; <expressão 2>; ...) |
− | + | Exemplo: | |
− | '''AVG(" | + | '''AVG("Impostos"; "Lucro"; "Custo")''' – Retorna a média entre a soma das colunas ''Impostos'', ''Lucro'' e ''Custo'' |
− | ==== BETWEEN | + | ==== Função BETWEEN (Entre) ==== |
− | + | Verifica se um valor está estre os limites dos parâmetros utilizados. | |
− | + | Sintaxe: | |
− | BETWEEN(< | + | BETWEEN(<expressão a ser testada>; <limite inicial>; <limite final>) |
− | + | Exemplo: | |
− | '''BETWEEN(" | + | '''BETWEEN("Data Emissão"; '01/01/2019'; '31/12/2019')''' – Retorna true se a ''Data Emissão'' estiver entre ''01/01/2019'' e ''31/12/2019''. Caso contrário retorna false |
+ | ==== Função COUNT ==== | ||
− | + | Retorna o número de ocorrências (linhas) de uma coluna ou valor. | |
− | + | Por ora, esta função funciona apenas em expressões de Fontes de Dados | |
− | + | Sintaxe: | |
− | + | COUNT(<expressão>) | |
− | + | Exemplo: | |
− | ''' | + | '''COUNT("Produto")''' - Retorna o número de ocorrências (linhas) de produtos |
− | + | ==== Função COUNT_DISTINCT ==== | |
+ | Retorna o número de ocorrências únicas (linhas) de uma coluna ou valor. | ||
− | + | Por ora, esta função funciona apenas em expressões de Fontes de Dados | |
− | + | Sintaxe: | |
+ | COUNT_DISTINCT(<expressão>) | ||
+ | Exemplo: | ||
+ | '''COUNT_DISTINCT("Produto")''' - Retorna o número de ocorrências únicas de produtos | ||
− | + | ==== Função IF ELSE (Se.... Senão...) ==== | |
− | |||
− | |||
− | |||
− | + | Testa uma expressão booleana e aplica uma condição em caso verdadeiro (true) ou outra condição nos casos de retornar falso (false). Precisa de três parâmetros, separados por ponto e virgula (;). O primeiro parâmetro é a expressão a ser testada, o segundo o valor a ser aplicado no caso de verdadeiro e o terceiro para ser aplicado no caso de falso. | |
+ | Sintaxe: | ||
+ | IF(<expressão a ser testada>; <expressão no caso de verdadeiro>; <expressão no caso de falso>) | ||
+ | Exemplos: | ||
+ | '''IF(BETWEEN("Valor"; 0; 100); 10; 250)''' – Se o ''Valor'' estiver entre ''0'' e ''100'' retorna ''10'', se não retorna ''250'' | ||
+ | '''IF("Lucro" == 0;0;"Lucro" + "Impostos")''' - Se ''Lucro'' igual a ''0'' retorna ''0'', senão retorna a soma de ''Lucro'' e ''Impostos'' | ||
+ | '''IF("Código Produto" == 3231;0;"Quantidade" * 3;"Quantidade")''' - Se ''Código Produto'' igual a ''3231'' retorna ''Quantidade'' vezes 3 | ||
− | ==== | + | ==== Função LOG ==== |
− | + | Retorna o logaritmo de um número em uma base definida. Pode ser utilizada com apenas um parâmetro, neste caso é utilizado o logaritmo na base 10. Caso seja utilizado dois parâmetros, o segundo serve para informar a base a ser utilizada pelo logaritmo. | |
− | + | Sintaxe: | |
− | + | LOG(<expressão>; <base>) | |
− | + | Exemplos: | |
− | '''" | + | '''LOG("Lucro")''' – Retorna o logaritmo do campo ''Lucro'' |
+ | '''LOG("Preço";2)''' - Retorna o logaritmo do campo ''Preço'' na base ''2'' | ||
− | ==== | + | ==== Função MAX ==== |
− | + | Retorna o maior valor entre dois valores. | |
− | + | Sintaxe: | |
− | + | MAX(<expressão 1>; <expressão 2>) | |
− | + | Exemplo: | |
− | '''" | + | '''"Valor" / MAX("Quantidade"; 1)''' – Divide o ''Valor'' pelo maior valor entre a ''Quantidade'' e ''1'' |
− | ==== | + | ==== Função MIN ==== |
− | + | Retorna o menor valor entre dois valores. | |
− | + | Sintaxe: | |
− | + | MIN(<expressão 1>; <expressão 2>) | |
− | + | Exemplo: | |
− | ''' | + | '''"Valor" / MIN("Custo"; 100)''' – Divide o ''Valor'' pelo menor valor entre ''Custo'' e ''100'' |
− | |||
+ | ==== Função POTENCIA ==== | ||
− | + | Retorna a potência de um valor em um expoente definido. Pode ser utilizada com apenas um parâmetro, neste caso considera o expoente padrão 2. Se um segundo parâmetro for passado, esse será o expoente. | |
− | + | Sintaxe: | |
+ | POW(<expressão>; <expoente>) | ||
+ | Exemplos: | ||
+ | '''POW("Lucro")''' – Retorna a potência do valor ''Lucro'' | ||
+ | '''POW("Custo"; 3)''' - Retorna a potência do calor ''Custo'' elevado na terceira | ||
− | |||
− | |||
− | |||
− | |||
+ | ==== Função RANDOM ==== | ||
− | + | Retorna um número aleatório dentro dos limites dos valores passados como argumentos. | |
− | + | Sintaxe: | |
+ | RANDOM(<limite inicial>; <limite final>) | ||
+ | Exemplo: | ||
+ | '''RANDOM(10; 100)''' – Retorna um número aleatório entre ''10'' e ''100'' | ||
− | + | ==== Função ROUND ==== | |
− | |||
− | |||
− | |||
− | + | Retorna o arredondamento de uma coluna de valor ou valor. | |
+ | Sintaxe: | ||
+ | ROUND(<valor>;<precisão>) | ||
+ | Exemplo: | ||
+ | '''ROUND("Lucro")''' - Se lucro for 10.38 retorna 10.00 | ||
+ | '''ROUND(15.65)''' - Retorna 16.00 | ||
+ | '''ROUND(1.777;1)''' - Retorna 1.8 | ||
− | ==== | + | ==== Função SQRT (Raiz Quadrada) ==== |
− | + | Retorna a raiz quadrada de um valor. | |
− | + | Sintaxe: | |
− | + | SQRT(<valor ou expressão>) | |
− | + | Exemplos: | |
− | ''' | + | '''SQRT("Lucro")''' – Retorna a raiz quadrada do valor ''Lucro'' |
+ | '''SQRT(81)''' - Retorna a raiz quadrada de ''81'' | ||
− | == | + | ==== Função LIKE (Contém) ==== |
− | + | Retorna verdadeiro (true) se o conteúdo desejado for encontrado na lista e falso (false) caso contrário. Precisa de dois parâmetros, o primeiro são os dados que serão consultados e o segundo é o termo a ser encontrado. Lembrando que é necessário utilizar o operador de curinga ''%'' e circundar o termo por aspa simples. | |
− | + | Sintaxe: | |
− | + | LIKE(<dados>; <termo>) | |
− | + | Exemplo: | |
− | + | '''LIKE("Produto"; '%anh%')''' – Retorna true se o ''Produto'' contém o termo ''anh'' ou false caso contrário | |
− | + | '''LIKE("Produto"; '%anh%')''' - Retorna verdadeiro se o ''Produto'' conter a string ''anh'', caso contrário falso | |
+ | == Funções de Data == | ||
− | + | As funções de data são operações que usam como parâmetro uma data e retornam também uma data. Existem algumas constantes para auxiliar na utilização das funções de data, são elas: | |
− | + | * 0: ''DATE_FIELD_YEAR'' (Parte do ano) | |
+ | * 1: ''DATE_FIELD_MONTH'' (Parte do mês) | ||
+ | * 2: ''DATE_FIELD_DAY'' (Parte do dia) | ||
+ | * 3: ''DATE_FIELD_FORTNIGHT'' (Parte da quinzena) | ||
+ | * 5: ''DATE_FIELD_WEEK'' (Parte da semana) | ||
− | |||
− | |||
− | |||
− | |||
+ | ==== Função DATE_PART (Parte da data) ==== | ||
− | + | Retorna parte de uma data. Precisa de dois parâmetros, o primeiro é a data de referência e o segundo é a constante que representa qual parte da data queremos obter. | |
− | + | Sintaxe: | |
+ | DATE_PART(< data>; <constante que representa qual parte>) | ||
+ | Exemplo: | ||
+ | '''DATE_PART("Data Emissão"; 0)''' - retorna a parte do ano da ''Data Emissão'' | ||
− | |||
− | |||
− | |||
− | |||
+ | ==== Função DAY_FROM_TODAY (Dias a partir de hoje) ==== | ||
− | + | Retorna uma contagem de dias para trás (negativa) ou para frente (positiva) contando a partir de hoje. Precisa de um parâmetro que indica o número de dias para adicionar ou subtrair. | |
− | + | Sintaxe: | |
+ | DAY_FROM_TODAY(<número de dias>) | ||
+ | Exemplo: | ||
+ | '''DAY_FROM_TODAY(-1)''' - retorna a data de ontem | ||
− | |||
− | + | ==== Função FIRST_DAY_OF (Primeiro dia de) ==== | |
− | |||
− | |||
− | |||
− | + | Retorna o primeiro dia de um agrupamento. Esta função possui duas variações: | |
− | * | + | * Com dois parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a primeira data (vide lista acima), e o segundo é a data base. |
− | + | Sintaxe: | |
− | FIRST_DAY_OF(< | + | FIRST_DAY_OF(<parte da data>; < data base>) |
− | + | Exemplos: | |
− | '''FIRST_DAY_OF( | + | '''FIRST_DAY_OF(0; DAY_FROM_TODAY(0))''' – retorna o primeiro dia do ano a partir de hoje |
+ | '''FIRST_DAY_OF(1;"Data Problema")''' - retorna o primeiro dia baseado na coluna ''Data Problema'' | ||
+ | * Com três parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a primeira data (vide lista acima), o segundo é o modificador da base da data a partir de hoje e o terceiro é a quantidade para alterar o modificador. | ||
− | + | Sintaxe: | |
+ | FIRST_DAY_OF(<parte da data>; <modificador da data>; <valor modificador da data>) | ||
+ | Exemplo: | ||
+ | '''FIRST_DAY_OF(1; 0; -1)''' – primeiro dia do mês atual do último ano | ||
− | |||
− | + | ==== Função LAST_DAY_OF (Último dia de) ==== | |
− | + | Retorna o último dia de um agrupamento de data. Esta função possui duas variações. | |
− | |||
− | |||
− | |||
− | + | * Com dois parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a última data (vide lista acima), e o segundo é a data base. | |
− | + | Sintaxe: | |
+ | LAST_DAY_OF(<parte da data>; < data base>) | ||
+ | Exemplos: | ||
+ | '''LAST_DAY_OF(0; DAY_FROM_TODAY(0))''' – retorna o último dia do ano a partir de hoje | ||
+ | '''LAST_DAY_OF(1;"Date Problema")''' - retorna o último dia do mês baseado na coluna ''Data Problema'' | ||
− | + | * Com três parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a última data (vide lista acima), o segundo é o modificador da base da data a partir de hoje e o terceiro é a quantidade para alterar o modificador. | |
− | |||
− | |||
− | |||
+ | Sintaxe: | ||
+ | LAST_DAY_OF(<parte da data>; <modificador da data>; <valor modificador da data>) | ||
+ | Exemplo: | ||
+ | '''LAST_DAY_OF(1; 0; -1)''' – último dia do mês atual do último ano | ||
− | |||
− | + | ==== Função NEW_DATE (Nova data) ==== | |
− | + | Cria uma nova data. Precisa de três parâmetros, o primeiro corresponde ao dia (entre 1 e 31), o segundo mês (entre 1 e 12) e o terceiro o ano. A data é criada do ano para o dia, ou seja, o dia deve ser válido para o mês e ano (considerando 29/02, o ano deve ser bissexto). | |
− | |||
− | |||
− | |||
+ | Sintaxe: | ||
+ | NEW_DATE(<dia>; <mês>; <ano>) | ||
+ | Exemplo: | ||
+ | '''NEW_DATE(1; 4; DATE_PART("Data Emissão"; 0))''' – cria o primeiro dia de abril do ano determinado pela linha atual da coluna ''Data Emissão'' | ||
− | |||
− | + | ==== Função NUM_OF_DAYS (Número de dias) ==== | |
− | + | Retorna o número de dias entre duas datas. Portanto necessita de duas datas. | |
− | |||
− | |||
− | |||
− | '''NUM_OF_DAYS(FIRST_DAY_OF(1;" | + | Sintaxe: |
+ | NUM_OF_DAYS(< data 1>; < data 2>) | ||
+ | Exemplos: | ||
+ | '''NUM_OF_DAYS(FIRST_DAY_OF(0; "Data Emissão"); "Data Emissão")''' – retorna o número de dias entre o primeiro dia do ano, baseado na coluna ''Data Emissão'', até o dia atual, baseado na mesma coluna | ||
+ | '''NUM_OF_DAYS(FIRST_DAY_OF(1;"Data Pedido");LAST_DAY_OF(1;"Data Pedido"))''' - retorna o número de dias do mês baseado na coluna ''Data Pedido''. | ||
− | ==== NUM_OF_MONTHS | + | ==== Função NUM_OF_MONTHS (Número de Meses) ==== |
− | + | Retorna o número de meses entre duas datas. Logo, dois parâmetros data são exigidos. | |
− | + | Sintaxe: | |
− | NUM_OF_MONTHS(< | + | NUM_OF_MONTHS(< data 1>; < data 2>) |
− | + | Exemplo: | |
− | '''NUM_OF_MONTHS(FIRST_DAY_OF(0; " | + | '''NUM_OF_MONTHS(FIRST_DAY_OF(0; "Data"); "Data")''' – Retorna o número de meses entre o primeiro dia do ano e o mês atual, com base na coluna ''Data'' |
− | ==== PREVIOUS_DATE | + | ==== Função PREVIOUS_DATE (Data anterior) ==== |
− | + | Dado um dia e um mês, retorna a última ocorrência dessa data. Ou seja, se a data atual (hoje) for menor do que a data passada por parâmetro (dia/mês), o retorno será a data (passada por parâmetro) do ano anterior. Se não o retorno será a data do ano atual. | |
− | + | Sintaxe: | |
− | PREVIOUS_DATE(< | + | PREVIOUS_DATE(<dia>; <mês>) |
− | + | Exemplos: | |
− | '''PREVIOUS_DATE(15;12)''' | + | '''PREVIOUS_DATE(15;12)''' – Considerando que a data de hoje seja 14/11/2019, a última vez que 15/Dezembro ocorreu em relação a data de hoje foi 15/12/2018, logo esse será o retorno. |
− | == | + | == Variáveis Especiais == |
− | + | Podem ser usadas em conjunto com as expressões para criar cálculos complexos. Devem ser utilizadas entre aspas duplas ('''"''') | |
− | * '''"@count"''' | + | * '''"@count"''' – Número total de linhas que foram retornadas para o componente |
− | * '''"@row"''' | + | * '''"@row"''' – Número da linha atual |
− | * '''"@sum[ | + | * '''"@sum[coluna]"''' – Somatório da coluna indicada. |
− | ** | + | ** Exemplo: ''"@sum[Preço]"'' – retorna a soma de todas as linhas da coluna ''Preço'' |
− | * '''"@avg[ | + | * '''"@avg[coluna]"''' – Média da coluna, semelhante a ''"@sum[coluna]"'' / ''"@count"'' |
− | * '''"@prev[ | + | * '''"@prev[coluna]"''' – Valor da linha anterior à linha atual, para essa coluna |
− | * '''"@accumCol[ | + | * '''"@totalRowValue[coluna]"''' - Valor da Linha de Total, (se presente), para essa coluna. |
− | ** | + | * '''"@accumCol[coluna]"''' – Valor acumulado da coluna até a linha corrente. Útil para calcular média variável. |
+ | ** Exemplo: ''"@accumCol[coluna]"'' / ''"@row"'' |
Latest revision as of 03:20, 5 October 2022
Contents
- 1 Estrutura básica de uma expressão
- 2 Expressões Aritméticas
- 3 Expressões Relacionais
- 4 Expressões Lógicas
- 5 Funções Auxiliares
- 6 Funções de Data
- 6.1 Função DATE_PART (Parte da data)
- 6.2 Função DAY_FROM_TODAY (Dias a partir de hoje)
- 6.3 Função FIRST_DAY_OF (Primeiro dia de)
- 6.4 Função LAST_DAY_OF (Último dia de)
- 6.5 Função NEW_DATE (Nova data)
- 6.6 Função NUM_OF_DAYS (Número de dias)
- 6.7 Função NUM_OF_MONTHS (Número de Meses)
- 6.8 Função PREVIOUS_DATE (Data anterior)
- 7 Variáveis Especiais
É possível criar expressões (fórmulas) diretamente nos componentes dos painéis. Podendo assim exibir valores calculados que não estão presentes no arquivo/planilha de origem dos dados.
Para criar as expressões (fórmulas) nos componentes, é necessário que o componente suporte à adição da coluna especial Expressão (Fórmula).
No TaticView, é possível utilizar nas expressões todas as colunas existentes no arquivo de dados, desde que estes sejam adicionados ao componente que receberá a expressão.
Além disso, também é possível utilizar números e textos fixos nos casos de expressões comparativas e ou cálculos matemáticos.
Exemplo de expressão:
- Se o componente possui as colunas Preço Total e Quantidade, pode-se criar uma expressão para calcular o Preço Unitário. Ficaria assim:
- "Preço Total" / "Quantidade"
- Além disso, pode-se utilizar valores fixos, como por exemplo:
- "Preço Total" / 10
Lembramos apenas que atualmente o TaticView suporta apenas expressões cujo retorno é numérico.
As expressões suportam a barra inversa como caractere de escape para que nomes possam conter os caracteres delimitadores.
Abaixo detalhes sobre o funcionamento das expressões.
Estrutura básica de uma expressão
Identificador
É o nome do campo ou coluna envolvido na expressão, deve ser delimitado por aspas duplas.
- Exemplos: "Preço médio", "Parafuso 1\" philips", "Vendedor"
Operando de Valor
São os valores numéricos. É possível utilizar tanto valores inteiros quanto valores decimais. Para valores decimais, o separador decimal deverá ser o ponto.
- Exemplos: 1, 1.05, 2.55
- Importante: Não é permitido usar separador de milhar nos valores, assim como "," como separador decimal.
Operando de Texto
São os operandos de texto. Para utilizar esse tipo de operando em uma expressão é necessário delimita-los pelo caractere aspa simples (').
- Exemplos: 'André Moraes', 'São Paulo', 'Espaguete'
Operando de Data
São valores que expressam qualquer data. Para representar uma data nas expressões o comportamento é semelhante aos operandos de texto, ou seja, o conteúdo deve ser circundado por aspa simples ('). Porém deve-se utilizar a máscara dd/MM/aaaa.
- Exemplos: '01/01/2019', '14/11/2019', '25/12/2019'
Operando Booleano
São operadores do tipo verdadeiro ou falso. Normalmente utilizados para validar, ou não, uma condição em uma expressão mais complexa.
- Exemplos: true, false
Parênteses
Utilizados para agrupar e separar partes de uma expressão. Expressões dentro de parênteses são processados antes das demais.
- Exemplos: ("Lucro"/"Preço Total") + 10
Operando de variável do sistema
São variáveis pré-definidas no sistema. Para utilizar as variáveis do sistema deve-se precede-las por hashtag (#) e delimita-las por aspas duplas ("). Atualmente apenas a variável "#null" está disponível e indica conteúdos nulos.
- Exemplo: IF("Produto" == "#null";0;20)
Expressões Aritméticas
As expressões aritméticas relacionam dois operandos (que pode ser qualquer um dos operandos descritos acima, ou ainda outra expressão) para compor a soma, subtração, multiplicação ou divisão.
Soma (+)
Soma dois operandos de valor. Representado pelo caractere +.
Sintaxe:
<operando ou expressão> + <operando ou expressão>
Exemplo:
"Impostos" + "Comissões" – Soma os valores dos campos Impostos e Comissões
Subtração (-)
Subtrai dois operandos de valor ou o resultado de outra expressão. Representado pelo caractere -.
Sintaxe:
<operando ou expressão> - <operando ou expressão>
Exemplo:
"Preço" - "Impostos" – Subtrai os valores dos campos Preço e Impostos
Multiplicação (*)
Multiplica dois operandos de valor ou resultados de outra expressão. Representado pelo caractere de multiplicação *.
Sintaxe:
<operando ou expressão> * <operando ou expressão>
Exemplo:
"Quantidade" * "Preço Unitário" – Multiplica o valor do campo Quantidade pelo valor do campo Preço Unitário
Divisão (/)
Divide dois operandos de valor ou resultado de outras expressões. Representada pelo caractere de divisão /.
Sintaxe:
<operando ou expressão> / <operando ou expressão>
Exemplo:
"Preço" / "Quantidade" – Divide o valor do campo Preço pelo valor do campo Quantidade
Expressões Relacionais
As expressões relacionais comparam dois operandos (valor/texto ou outra expressão) para avaliar se uma condição é verdadeira (true) ou falsa (false). Normalmente utilizada com funções de decisão, como o IF (Se).
Igualdade (==)
Compara se dois operandos são iguais, retornando true se forem iguais ou false se diferentes. Representado pelo operador de igualdade ==.
Sintaxe:
<operando ou expressão> == <operando ou expressão>
Exemplo:
IF("Produto" == "#null";0;20) – Se o produto for nulo, considera o valor 0. Caso contrário considera o valor 20
Diferente (!=)
Compara se dois operandos são diferentes, retornando true se foram diferentes ou false se iguais. Representado pelo operador de diferença !=.
Sintaxe:
<operando ou expressão> != <operando ou expressão>
Exemplo:
IF("Produto" != 'LASANHA';0;20) – Se o produto for diferente de Lasanha, considera o valor 0. Caso contrário considera o valor 20
Maior que (>)
Compara se o primeiro operador (da esquerda) é maior que o segundo operador (da direita), retornando true se for maior e false se for menor ou igual. Representado pelo operador maior >.
Sintaxe:
<operando ou expressão> > <operando ou expressão>
Exemplo:
IF("Valor Bruto" > 1000;1;0) – Se o Valor Bruto for maior que 1000, retorna o valor 1, se não o valor 0
Maior ou igual a (>=)
Compara se o primeiro operador (da esquerda) é maior ou igual ao segundo operador (da direita), retornando true se for maior ou igual e false se for menor. Representado pelo operador maior >=.
Sintaxe:
<operando ou expressão> >= <operando ou expressão>
Exemplo:
IF("Valor Bruto" >= 2500;100;0) – Se o Valor Bruto for maior ou igual a 2500 retorna 100, caso contrário retorna 0
Menor que (<)
Compara se o primeiro operador (da esquerda) é menor que o segundo operador (da direita), retornando true se for menor e false se for maior ou igual. Representado pelo operador maior <.
Sintaxe:
<operando ou expressão> < <operando ou expressão>
Exemplo:
IF("Valor Bruto" < 100;50;200) – Se o Valor Bruto for menor que 100, retorna 50, se não retorna 200
Menor ou igual a (<=)
Compara se o primeiro operador (da esquerda) é menor ou igual ao segundo operador (da direita), retornando true se for menor ou igual e false se for maior. Representado pelo operador maior <=.
Sintaxe:
<operando ou expressão> <= <operando ou expressão>
Exemplo:
IF("Valor Bruto" <= 500;100;0) – Se o Valor Bruto for menor ou igual a 500 retorna 100, se não retorna 0
Expressões Lógicas
As expressões lógicas agrupam dois operandos (booleano ou outra expressão) para compor uma expressão lógica, com o objetivo de avaliar a relação de dois operadores booleanos em um resultado verdadeiro (true) ou falso (false). Normalmente esse tipo de expressão é utilizada para tomadas de decisão, como o IF (Se) e com expressões relacionais.
Operador E (&&)
Executa a operação lógica E entre dois valores booleanos. Ambos os valores devem retornar verdadeiro (true) para que o resultado da operação seja verdadeiro (true). Representado pelo operador &&.
Sintaxe:
<expressão> && <expressão>
Exemplos:
IF(("Preço" > 0) && ("Vendedor" == 'André Moraes');450;0) – Se o Preço for maior que 0 E o Vendedor for igual a André Moraes, retorna 450, se não retorna 0 IF(("Cidade" != "#null") && ("Produto" != 'Lasanha');1;0) – Se a Cidade for diferente de nula E o Produto for diferente de Lasanha retorna 1, se não retorna 0
Operador Ou (||)
Executa a operação lógica OU entre dois valores booleanos. Um dois dois valores deve ser verdadeiro (true) para que o resultado da operação seja verdadeiro (true). Representado pelo operador ||.
Sintaxe:
<expressão> || <expressão>
Exemplos:
IF(("Preço" > 1000) || ("Lucro" >= 50);75;55) – Se o Preço for maior que 1000 OU o Lucro for maior ou igual a 50 retorna 75, se não retorna 55 IF(("Cidade" != "#null") || ("Produto" != 'Lasanha');1;0) - Se Cidade não for null OU Produto deferente de Lasanha returna 1 senão retorna 0
Operador de Negação (!)
Executa a operação lógica de negação para um valor booleano. Se o resultado da operação for verdadeiro (true) o operador de negação converte para falso (false) e vice-versa. Representado pelo operador !.
Sintaxe:
!<expressão>
Exemplo:
IF(!BETWEEN("Data Entrega"; '01/01/2015'; '31/12/2015');2016; 2015) – Se a Data Entrega não tiver entre 01/01/2015 e 31/12/2015 retorna 2016. Se estiver entre esse período retorna 2015
Funções Auxiliares
As funções auxiliares básicas são funções padrão do sistema e implementam funcionalidades úteis para compor expressões complexas.
Função ABS
Função que retorna o valor numérico absoluto de um valor numérico base.
Sintaxe:
ABS(<expressão>)
Exemplo:
ABS("Preço" / "Quantidade") – Retorna o valor absoluto do Preço divido pela Quantidade
Função AVG
Retorna a média dos valores de uma sequência de valores. Pode ser utilizado para retornar a média de diferentes valores de uma mesma linha das tabelas.
Sintaxe:
AVG(<expressão 1>; <expressão 2>; ...)
Exemplo:
AVG("Impostos"; "Lucro"; "Custo") – Retorna a média entre a soma das colunas Impostos, Lucro e Custo
Função BETWEEN (Entre)
Verifica se um valor está estre os limites dos parâmetros utilizados.
Sintaxe:
BETWEEN(<expressão a ser testada>; <limite inicial>; <limite final>)
Exemplo:
BETWEEN("Data Emissão"; '01/01/2019'; '31/12/2019') – Retorna true se a Data Emissão estiver entre 01/01/2019 e 31/12/2019. Caso contrário retorna false
Função COUNT
Retorna o número de ocorrências (linhas) de uma coluna ou valor.
Por ora, esta função funciona apenas em expressões de Fontes de Dados
Sintaxe:
COUNT(<expressão>)
Exemplo:
COUNT("Produto") - Retorna o número de ocorrências (linhas) de produtos
Função COUNT_DISTINCT
Retorna o número de ocorrências únicas (linhas) de uma coluna ou valor.
Por ora, esta função funciona apenas em expressões de Fontes de Dados
Sintaxe:
COUNT_DISTINCT(<expressão>)
Exemplo:
COUNT_DISTINCT("Produto") - Retorna o número de ocorrências únicas de produtos
Função IF ELSE (Se.... Senão...)
Testa uma expressão booleana e aplica uma condição em caso verdadeiro (true) ou outra condição nos casos de retornar falso (false). Precisa de três parâmetros, separados por ponto e virgula (;). O primeiro parâmetro é a expressão a ser testada, o segundo o valor a ser aplicado no caso de verdadeiro e o terceiro para ser aplicado no caso de falso.
Sintaxe:
IF(<expressão a ser testada>; <expressão no caso de verdadeiro>; <expressão no caso de falso>)
Exemplos:
IF(BETWEEN("Valor"; 0; 100); 10; 250) – Se o Valor estiver entre 0 e 100 retorna 10, se não retorna 250 IF("Lucro" == 0;0;"Lucro" + "Impostos") - Se Lucro igual a 0 retorna 0, senão retorna a soma de Lucro e Impostos IF("Código Produto" == 3231;0;"Quantidade" * 3;"Quantidade") - Se Código Produto igual a 3231 retorna Quantidade vezes 3
Função LOG
Retorna o logaritmo de um número em uma base definida. Pode ser utilizada com apenas um parâmetro, neste caso é utilizado o logaritmo na base 10. Caso seja utilizado dois parâmetros, o segundo serve para informar a base a ser utilizada pelo logaritmo.
Sintaxe:
LOG(<expressão>; <base>)
Exemplos:
LOG("Lucro") – Retorna o logaritmo do campo Lucro LOG("Preço";2) - Retorna o logaritmo do campo Preço na base 2
Função MAX
Retorna o maior valor entre dois valores.
Sintaxe:
MAX(<expressão 1>; <expressão 2>)
Exemplo:
"Valor" / MAX("Quantidade"; 1) – Divide o Valor pelo maior valor entre a Quantidade e 1
Função MIN
Retorna o menor valor entre dois valores.
Sintaxe:
MIN(<expressão 1>; <expressão 2>)
Exemplo:
"Valor" / MIN("Custo"; 100) – Divide o Valor pelo menor valor entre Custo e 100
Função POTENCIA
Retorna a potência de um valor em um expoente definido. Pode ser utilizada com apenas um parâmetro, neste caso considera o expoente padrão 2. Se um segundo parâmetro for passado, esse será o expoente.
Sintaxe:
POW(<expressão>; <expoente>)
Exemplos:
POW("Lucro") – Retorna a potência do valor Lucro POW("Custo"; 3) - Retorna a potência do calor Custo elevado na terceira
Função RANDOM
Retorna um número aleatório dentro dos limites dos valores passados como argumentos.
Sintaxe:
RANDOM(<limite inicial>; <limite final>)
Exemplo:
RANDOM(10; 100) – Retorna um número aleatório entre 10 e 100
Função ROUND
Retorna o arredondamento de uma coluna de valor ou valor.
Sintaxe:
ROUND(<valor>;<precisão>)
Exemplo:
ROUND("Lucro") - Se lucro for 10.38 retorna 10.00 ROUND(15.65) - Retorna 16.00 ROUND(1.777;1) - Retorna 1.8
Função SQRT (Raiz Quadrada)
Retorna a raiz quadrada de um valor.
Sintaxe:
SQRT(<valor ou expressão>)
Exemplos:
SQRT("Lucro") – Retorna a raiz quadrada do valor Lucro SQRT(81) - Retorna a raiz quadrada de 81
Função LIKE (Contém)
Retorna verdadeiro (true) se o conteúdo desejado for encontrado na lista e falso (false) caso contrário. Precisa de dois parâmetros, o primeiro são os dados que serão consultados e o segundo é o termo a ser encontrado. Lembrando que é necessário utilizar o operador de curinga % e circundar o termo por aspa simples.
Sintaxe:
LIKE(<dados>; <termo>)
Exemplo:
LIKE("Produto"; '%anh%') – Retorna true se o Produto contém o termo anh ou false caso contrário LIKE("Produto"; '%anh%') - Retorna verdadeiro se o Produto conter a string anh, caso contrário falso
Funções de Data
As funções de data são operações que usam como parâmetro uma data e retornam também uma data. Existem algumas constantes para auxiliar na utilização das funções de data, são elas:
- 0: DATE_FIELD_YEAR (Parte do ano)
- 1: DATE_FIELD_MONTH (Parte do mês)
- 2: DATE_FIELD_DAY (Parte do dia)
- 3: DATE_FIELD_FORTNIGHT (Parte da quinzena)
- 5: DATE_FIELD_WEEK (Parte da semana)
Função DATE_PART (Parte da data)
Retorna parte de uma data. Precisa de dois parâmetros, o primeiro é a data de referência e o segundo é a constante que representa qual parte da data queremos obter.
Sintaxe:
DATE_PART(< data>; <constante que representa qual parte>)
Exemplo:
DATE_PART("Data Emissão"; 0) - retorna a parte do ano da Data Emissão
Função DAY_FROM_TODAY (Dias a partir de hoje)
Retorna uma contagem de dias para trás (negativa) ou para frente (positiva) contando a partir de hoje. Precisa de um parâmetro que indica o número de dias para adicionar ou subtrair.
Sintaxe:
DAY_FROM_TODAY(<número de dias>)
Exemplo:
DAY_FROM_TODAY(-1) - retorna a data de ontem
Função FIRST_DAY_OF (Primeiro dia de)
Retorna o primeiro dia de um agrupamento. Esta função possui duas variações:
- Com dois parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a primeira data (vide lista acima), e o segundo é a data base.
Sintaxe:
FIRST_DAY_OF(<parte da data>; < data base>)
Exemplos:
FIRST_DAY_OF(0; DAY_FROM_TODAY(0)) – retorna o primeiro dia do ano a partir de hoje FIRST_DAY_OF(1;"Data Problema") - retorna o primeiro dia baseado na coluna Data Problema
- Com três parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a primeira data (vide lista acima), o segundo é o modificador da base da data a partir de hoje e o terceiro é a quantidade para alterar o modificador.
Sintaxe:
FIRST_DAY_OF(<parte da data>; <modificador da data>; <valor modificador da data>)
Exemplo:
FIRST_DAY_OF(1; 0; -1) – primeiro dia do mês atual do último ano
Função LAST_DAY_OF (Último dia de)
Retorna o último dia de um agrupamento de data. Esta função possui duas variações.
- Com dois parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a última data (vide lista acima), e o segundo é a data base.
Sintaxe:
LAST_DAY_OF(<parte da data>; < data base>)
Exemplos:
LAST_DAY_OF(0; DAY_FROM_TODAY(0)) – retorna o último dia do ano a partir de hoje LAST_DAY_OF(1;"Date Problema") - retorna o último dia do mês baseado na coluna Data Problema
- Com três parâmetros, o primeiro é a constante do agrupamento da qual queremos obter a última data (vide lista acima), o segundo é o modificador da base da data a partir de hoje e o terceiro é a quantidade para alterar o modificador.
Sintaxe:
LAST_DAY_OF(<parte da data>; <modificador da data>; <valor modificador da data>)
Exemplo:
LAST_DAY_OF(1; 0; -1) – último dia do mês atual do último ano
Função NEW_DATE (Nova data)
Cria uma nova data. Precisa de três parâmetros, o primeiro corresponde ao dia (entre 1 e 31), o segundo mês (entre 1 e 12) e o terceiro o ano. A data é criada do ano para o dia, ou seja, o dia deve ser válido para o mês e ano (considerando 29/02, o ano deve ser bissexto).
Sintaxe:
NEW_DATE(<dia>; <mês>; <ano>)
Exemplo:
NEW_DATE(1; 4; DATE_PART("Data Emissão"; 0)) – cria o primeiro dia de abril do ano determinado pela linha atual da coluna Data Emissão
Função NUM_OF_DAYS (Número de dias)
Retorna o número de dias entre duas datas. Portanto necessita de duas datas.
Sintaxe:
NUM_OF_DAYS(< data 1>; < data 2>)
Exemplos:
NUM_OF_DAYS(FIRST_DAY_OF(0; "Data Emissão"); "Data Emissão") – retorna o número de dias entre o primeiro dia do ano, baseado na coluna Data Emissão, até o dia atual, baseado na mesma coluna NUM_OF_DAYS(FIRST_DAY_OF(1;"Data Pedido");LAST_DAY_OF(1;"Data Pedido")) - retorna o número de dias do mês baseado na coluna Data Pedido.
Função NUM_OF_MONTHS (Número de Meses)
Retorna o número de meses entre duas datas. Logo, dois parâmetros data são exigidos.
Sintaxe:
NUM_OF_MONTHS(< data 1>; < data 2>)
Exemplo:
NUM_OF_MONTHS(FIRST_DAY_OF(0; "Data"); "Data") – Retorna o número de meses entre o primeiro dia do ano e o mês atual, com base na coluna Data
Função PREVIOUS_DATE (Data anterior)
Dado um dia e um mês, retorna a última ocorrência dessa data. Ou seja, se a data atual (hoje) for menor do que a data passada por parâmetro (dia/mês), o retorno será a data (passada por parâmetro) do ano anterior. Se não o retorno será a data do ano atual.
Sintaxe:
PREVIOUS_DATE(<dia>; <mês>)
Exemplos:
PREVIOUS_DATE(15;12) – Considerando que a data de hoje seja 14/11/2019, a última vez que 15/Dezembro ocorreu em relação a data de hoje foi 15/12/2018, logo esse será o retorno.
Variáveis Especiais
Podem ser usadas em conjunto com as expressões para criar cálculos complexos. Devem ser utilizadas entre aspas duplas (")
- "@count" – Número total de linhas que foram retornadas para o componente
- "@row" – Número da linha atual
- "@sum[coluna]" – Somatório da coluna indicada.
- Exemplo: "@sum[Preço]" – retorna a soma de todas as linhas da coluna Preço
- "@avg[coluna]" – Média da coluna, semelhante a "@sum[coluna]" / "@count"
- "@prev[coluna]" – Valor da linha anterior à linha atual, para essa coluna
- "@totalRowValue[coluna]" - Valor da Linha de Total, (se presente), para essa coluna.
- "@accumCol[coluna]" – Valor acumulado da coluna até a linha corrente. Útil para calcular média variável.
- Exemplo: "@accumCol[coluna]" / "@row"