Construindo templates
Blocos comuns
- Loop
- Loop com schema explícito
- Condição simples
- Escopo temporário
- Formatação de valor
Blocos condicionais
Referência de tags
Tags de agregação
sum_by — Soma valores numéricos de um campo em todos os itens de uma coleção.Todas as tags de agregação usam precisão decimal para evitar erros de arredondamento de ponto flutuante. Campos ausentes ou não numéricos são ignorados. Retorna
0 se nenhum item corresponder.Tag de data e hora
date_time — Retorna a data e a hora atuais no fuso horário local do runtime do Reporter, formatadas conforme a string de formato informada.
Exemplos:
Tag aritmética
calc — Avalia expressões matemáticas com suporte a variáveis do contexto do template.
Exemplos:
Variáveis que não podem ser resolvidas usam
0 por padrão. Divisão por zero produz um erro.Tag de seleção agrupada
last_item_by_group — Agrupa itens por um campo e seleciona o item mais recente de cada grupo, ordenado por um campo de data (decrescente). Opcionalmente filtra os itens antes. Útil para relatórios regulatórios que exigem o registro mais recente por conta, agrupado por categoria.group_by aceita uma lista de campos separados por vírgula para agrupamento composto. Tamanho máximo da coleção: 100.000 itens. Os resultados são ordenados pelo valor de group_by para uma saída determinística.Tags de contador
counter — Incrementa um contador nomeado em 1. Não produz saída. Contadores têm escopo por renderização.Referência de filtros
percent_of
Calcula a porcentagem de um valor em relação a um total. Retorna uma string formatada com 2 casas decimais.category.amount = "6.00" e total.expenses = "20.00":
strip_zeros
Remove zeros à direita de um valor numérico sem arredondar.decimal
Mostra um número com um número fixo de casas decimais, de 0 a 18.rjust, ljust ou center podem vir depois de decimal na mesma expressão. O Reporter recusa um template que usa decimal dentro de uma tag {% %}.
slice
Extrai uma substring usando índices de início e fim (baseados em 0).replace
Substitui todas as ocorrências de uma string de busca por uma string de substituição. Formato:"search:replacement".
where
Filtra um array de objetos por igualdade de campo. Aceita campos aninhados via notação de ponto.sum (filtro)
Soma valores numéricos de um campo em todos os itens de um array. Usa precisão decimal.count (filtro)
Conta elementos de um array em que um campo corresponde a um valor. Aceita campos aninhados.add_day
Adiciona um campodia a cada linha de uma lista. O valor é o dia do campo de data indicado, como um número no formato YYYYMMDD. Use-o para agrupar ou comparar linhas por dia.
add_signed
Adiciona um camposigned a cada linha de uma lista. O valor é o valor indicado, negativo quando o direction da linha é debit. Use-o para somar um saldo líquido.
filter (função)
Retorna as linhas de uma lista cujo campo é igual a um valor.contains
Verifica se um valor está parcialmente contido em outro, sem diferenciar maiúsculas de minúsculas. Útil quando os dados incluem prefixos ou sufixos dinâmicos.- Origem:
0#@external/BRL - Destino:
@external/BRL
true porque @external/BRL existe dentro do valor de origem.
Resumo de operadores e filtros
Filtragem avançada
Ao gerar um relatório, você pode enviar filtros no corpo da requisição para restringir os dados. Os filtros seguem uma estrutura de datasource > tabela > campo: Schema único (padrão):

