Fórmulas Utilizadas: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 118: | Linha 118: | ||
'''DiferencaDatas({DataInicial}, {DataFinal}, {intervalo})''' | '''DiferencaDatas({DataInicial}, {DataFinal}, {intervalo})''' | ||
{intervalo}: A diferença que deseja informar. O parâmetro intervalo deve ser uma das seguintes opções: | {intervalo}: A diferença que deseja informar. O parâmetro intervalo deve ser uma das seguintes opções:<br> | ||
"dias": Para calcular a diferença em dias. | "dias": Para calcular a diferença em dias.<br> | ||
"meses": Para calcular a diferença em meses. | "meses": Para calcular a diferença em meses.<br> | ||
"anos": Para calcular a diferença em anos. | "anos": Para calcular a diferença em anos.<br> | ||
Edição das 17h25min de 9 de setembro de 2024
Ordenação de Relatório
Por padrão a ordem dos números no Gerador de Relatórios ocorre como string, assim quando impresso obedece a sequencia como o exemplo abaixo.
1
10
1
12
21
Dessa forma se faz necessário definir o número de dígitos através de fórmula. Então numa situação onde se quer ordenar, por exemplo, os meses de um relatório por vencimentos para que considere os dois dígitos deve-se seguir a estrutura da fórmula destacada abaixo.
right("00" + totext(month({Documento.Vencto})),2)
- A informação month faz referência ao agrupamento por mês.
- Dentro das chaves deve-se inserir o item que deseja ordenar.
- O número 2 corresponde a quantidade de dígitos que deseja considerar.
Ordenação de data em relatório
Ao informar uma data no agrupamento do relatório, a ordenação também acontece como string, sendo trazido assim:
01/02/2024
02/12/2023
02/11/2024
15/10/2022
21/12/2025
Para definir a ordenação, considerando as datas crescentes no formato DD/MM/AAAA, basta utilizar a formula a seguir:
ToTex ({Documento.Vencto}, "yyyy/MM/dd")
Caso seja necessário agrupar por mês, para que o ano também seja considerado, basta remover o dia da fórmula, ficando:
ToTex ({Documento.Vencto}, "yyyy/MM")
Caso seja necessário agrupar somente pelo ano manter apenas o ano na fórmula, ficando:
ToTex ({Documento.Vencto}, "yyyy")
Aumentar Casas Decimais na Visualização
Para aumentar a quantidade de casas decimais mostradas na visualização deve utilizar a seguinte formula:
totext({RelOrdemProducao.Qtde}, 4)
- Dentro das chaves deve-se inserir o item que deseja ordenar.
- O número 4 corresponde a quantidade de casas decimais que deseja ser mostrado.
Caso seja uma fórmula por grupo deve utilizar a:
totext(Sum ({RelEstoqueAnterior.Saldo}, {@FormulaGrupo01}),4)
Fórmula IsNull
A fórmula IsNull é utilizada em relatórios para substituir um valor "Null" do banco de dados por um valor padrão, afim de permitir sua utilização em relatórios.
A sintaxe padrão é:
IsNull({Campo},valor_padrao) = valor_padrao
Inserir CEP com máscara em Relatório / Formulário
Para utilizar o atributo de CEP no Gerador de Relatórios, basta utilizar a seguinte fórmula:
Left ({Pessoa_Cliente.Cep},5) + "-"+ Right ({Pessoa_Cliente.Cep},3)
Para utilizar no Gerador de Impressões em Formulários basta utilizar a seguinte fórmula:
ConcatenarValores([[ParteTexto({Pessoa_Cliente.Cep},0,5)]],-,[[ParteTexto({Pessoa_Cliente.Cep},5,3)]],,,,)
Fórmula para contar a quantidade de dias em um intervalo de datas
Para realizar a contagem de dias entre um intervalo de datas basta utilizar a seguinte fórmula:
round({Duplicata.Vencto}-{Duplicata.Emissao})
Como parâmetro é possível utilizar qualquer atributo de data dentro do ERP.
Para que o resultado impresso não mostre casas decimais, basta inserir o comando ToText.
Ex: ToText(round({Duplicata.Vencto}-{Duplicata.Emissao}),0)
Também é possível utilizar o comando "CurrentDate" para que o relatório sempre considere a data do dia.
Ex: round({Duplicata.Vencto}-CurrentDate)
Fórmula para coletar somente as Horas em uma coluna que tenha data, hora, minuto e segundo
Para mostrar as Horas em uma coluna que tenha data, basta utilizar a seguinte fórmula:
ToText ({Viagem.HoraInicial}, "HH:mm:ss")
Caso queira saber o intervalo de horas use essa formula: DateDiff("h", {Viagem.HoraInicial}, {Viagem.HoraFinal})
Como parâmetro é possível utilizar qualquer atributo de data que tenha horas dentro do ERP. Caso queira também poderá usar somente as hora, ou somente os minutos: HH = Horas; MM = minutos e ss = Segundos
Outra opção para saber o intervalo de horas em um serviço por exemplo, é a seguinte fórmula: timevalue({OrdemServicoServ.HoraFim} - {OrdemServicoServ.HoraInicio})
Essa opção é para lançamentos com intervalos mais curtos, como por exemplo um serviço que se inicia às 06:45 e terminar às 07:10, utilizando essa fórmula teremos o resultado de 00:25:00. Caso seja utilizado o "DateDiff", teríamos o resultado de 01:25:00, isso porque o "DateDiff" considera as horas sendo diferentes também, então como houve alteração de 6 pra 7, isso é considerado. O que não ocorre utilizando o TimeValue.
Imprimir os parâmetros de um filtro pré estabelecido no relatório
É possível carregar na impressão de um relatório os parâmetros indicados nos filtros, antes da impressão. Para isso, após indicar os filtros no gerador de relatório, basta adicionar uma fórmula (geralmente no cabeçalho) com a seguinte estrutura:
"Data de Emissão: " + {?Pedido-DataEmissao}
Fórmula para contar a quantidade de dias, meses ou anos em um intervalo de datas
Para utilizar a formula:
DiferencaDatas({DataInicial}, {DataFinal}, {intervalo})
{intervalo}: A diferença que deseja informar. O parâmetro intervalo deve ser uma das seguintes opções:
"dias": Para calcular a diferença em dias.
"meses": Para calcular a diferença em meses.
"anos": Para calcular a diferença em anos.