.tpl manualmente. Ele gera o código do template automaticamente a partir da configuração dos blocos.
Acessando o Template Builder
Para abrir o Template Builder:
Você também pode editar um template existente no builder clicando no nome dele na lista de templates (se ele foi criado originalmente com o builder).
Layout do editor
Cabeçalho
A barra superior contém:- Voltar — retorna para a lista de templates.
- Nome do template — campo de texto editável inline.
- Formato de saída — seletor entre XML, HTML, CSV, TXT ou PDF.
Quando PDF é selecionado, o código de template gerado utiliza formato HTML. A saída é renderizada como HTML e convertida para PDF no momento da geração do relatório.
- Modo de visualização — alterne entre Visual (editor de blocos) e Código (preview do código gerado).
- Baixar arquivo .tpl — faz download do código do template gerado como arquivo
.tpl. - Salvar — valida os blocos e salva o template.
Canvas (modo Visual)
A área principal onde você monta o template. Ela contém:- Barra de ferramentas de blocos — paleta de tipos de blocos disponíveis no topo. Clique em um tipo de bloco para adicioná-lo ao canvas.
- Lista de blocos — a lista ordenada de blocos que compõem o template. Você pode arrastar os blocos para reordená-los.
Canvas (modo Código)
Um preview somente leitura do código gerado com syntax highlighting. Expressões de template ({{ }}), tags ({% %}) e comentários ({# #}) são diferenciados por cor. Você pode copiar o código ou fazer download.
Barra lateral de Data Sources
Um painel à esquerda mostrando as conexões de banco de dados configuradas. Você pode:- Navegar por schemas e tabelas dos seus Data Sources.
- Clicar em um campo para adicionar automaticamente um bloco Variável referenciando esse campo.
A barra lateral de Data Sources só mostra conexões configuradas na seção Data Sources. Se nenhuma conexão estiver disponível, o painel exibirá uma mensagem orientando a configuração.
Tipos de blocos
O builder disponibiliza 13 tipos de blocos, cada um com uma função específica:
| Bloco | Descrição | ||
|---|---|---|---|
| Texto | Conteúdo de texto estático (HTML, XML, CSV ou qualquer texto). | ||
| Variável | Insere um valor de um campo de data source. Suporta filtros (ex: upper, lower). Pode referenciar data source, tabela, campo e índice. | ||
| Loop | Itera sobre uma coleção de uma tabela de data source. Requer um nome de iterador e uma fonte iterável (ex: dataSource.table). Aceita blocos filhos. | ||
| Condicional | Renderiza blocos filhos com base em uma condição (ex: account.status == "active"). Suporta operadores: ==, !=, >, <, >=, <=, &&, ` | `. Opcionalmente inclui bloco else. | |
| Agregação | Realiza cálculos agregados: Soma, Contagem, Média, Mínimo, Máximo ou Último Item por Grupo. Requer fonte, campo e condição opcional. | ||
| Cálculo | Avalia uma expressão matemática (ex: value * 1.05). Suporta operadores: +, -, *, /, ** (potência), % (módulo). | ||
| Data/Hora | Insere data/hora formatada. Opcionalmente referencia um campo de data; usa a hora atual do servidor se vazio. | ||
| Contador | Incrementa ou exibe um contador nomeado. Útil para numeração de linhas. Pode gerenciar múltiplos contadores. | ||
| Comentário | Adiciona um comentário que não aparece no relatório gerado. | ||
| Seção | Agrupa blocos filhos sob um título de seção. Útil para organizar templates grandes. | ||
| With (Atribuir) | Atribui o resultado de uma expressão a uma variável, que blocos filhos podem referenciar. | ||
| Expressão | Insere uma expressão inline renderizada como {{ expression }}. Suporta filtros com pipe. | ||
| Tag Personalizada | Renderiza uma tag de template personalizada (ex: include, load). Aceita nome da tag e argumentos opcionais. |
Trabalhando com blocos
Adicionando blocos
- Clique em um tipo de bloco na barra de ferramentas no topo do canvas, ou
- Clique em um campo na barra lateral de Data Sources para adicionar um bloco Variável automaticamente.
Reordenando blocos
Arraste os blocos usando a alça de arrasto para reordená-los dentro do template.Configurando blocos
Cada bloco possui seu próprio formulário de configuração que aparece inline. Preencha os campos obrigatórios para o tipo de bloco (ex: fonte e campo para Variável, condição para Condicional).Opções dos blocos
Cada bloco possui opções adicionais no cabeçalho:- Inline — renderiza o bloco sem quebra de linha após ele.
- Remover espaços em branco — remove espaços ao redor da saída do bloco.
- Duplicar — cria uma cópia do bloco.
- Excluir — remove o bloco do template.
Blocos contêiner
Alguns blocos aceitam blocos filhos (Loop, Condicional, Seção, With). Você pode adicionar blocos dentro deles para criar lógica de template aninhada. Blocos condicionais também suportam filhos else.Salvando e fazendo download
Quando você clica em Salvar, o builder:
- Valida todos os blocos quanto a campos obrigatórios e configuração correta.
- Envia os blocos para o backend para geração de código.
- Se a geração no backend falhar, faz fallback para geração de código local.
- Salva o template com o arquivo
.tplgerado.
.tpl gerado a qualquer momento usando o botão Baixar arquivo .tpl no cabeçalho, sem precisar salvar.
Atalhos de teclado
| Atalho | Ação |
|---|---|
Ctrl+Z / ⌘+Z | Desfazer |
Ctrl+Shift+Z / ⌘+Shift+Z | Refazer |

