report
Relatório
Um relatório guardado: as entradas e as fontes que pede, e o conteúdo (template de PDF ou documento HTML com o contrato de dados). Viaja nos pacotes com a tabela principal.
- Kind:
structure - Key:
report - Categoria:
estrutura - Envelope: mapa (um objeto JSON em
config)
Campos
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
inputs | list de map | não | [] | O que quem abre o relatório tem de dar: um registo, uma coleção de registos ou um valor. | - |
sources | list de map | não | [] | Conjuntos de linhas com nome que o conteúdo lê. | - |
template | json | não | - | O JSON do template de PDF (página, cabeçalho, corpo, rodapé e blocos) quando o tipo é native. | expressões {{record.coluna}} |
artifact | string | não | "" | O documento HTML autónomo (CSS e JS embutidos, sem rede), com os tokens que o runtime substitui ao abrir. | expressões {{record.coluna}} |
dataContract | map | não | {} | Que dados do OutDo são injetados a cada abertura: uma consulta por conjunto de linhas, mais as variáveis. | - |
filterGroup | map | não | - | Pré-filtro sobre a coleção da entrada records. | - |
inputs[]
Cada elemento de inputs é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
name | string | sim | - | Nome da entrada, único no relatório. | - |
kind | enumeration | sim | - | Um registo da tabela, os registos da coleção, ou um valor. | - |
feature | uuid | não | - | Tabela do registo ou da coleção. Só nas entradas record e records. | feature (uuid) |
type | enumeration | não | "text" | Tipo do valor. Só nas entradas value. | - |
label | string | não | - | Rótulo mostrado a quem preenche. | - |
required | boolean | não | true | A entrada tem de ser dada. | - |
sources[]
Cada elemento de sources é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
name | string | sim | - | Nome da fonte, único no relatório. | - |
feature | uuid | sim | - | Tabela de onde saem as linhas. | feature (uuid) |
filter | map | não | - | Filtro sobre as linhas da fonte. Os valores aceitam {{record.*}} e {{params.*}}. | - |
order | map | não | - | Ordem das linhas. | - |
limit | integer | não | - | Máximo de linhas da fonte. | - |
sources[].filter
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
combinator | enumeration | não | "and" | Como se combinam as regras do grupo: and exige todas, or basta uma. | - |
rules | list de map | não | - | As regras do grupo. | - |
groups | list de map | não | - | Subgrupos aninhados, com a mesma forma. | - |
sources[].filter.rules[]
Cada elemento de sources[].filter.rules é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
id | string | não | - | Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
columnName | string | não | - | Coluna da tabela da fonte, POR NOME. | coluna de feature (nome) |
operator | string | não | - | Operador da comparação. | - |
value | string | não | - | Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
secondValue | string | não | - | Segundo valor, usado pelos operadores de intervalo. Só aparece no JSON quando não é nulo. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
sources[].filter.groups[]
Cada elemento de sources[].filter.groups é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
combinator | enumeration | não | "and" | Como se combinam as regras do subgrupo. | - |
rules | list de map | não | - | As regras do grupo. | - |
groups | list | não | - | Subgrupos de terceiro nível: varrem-se às cegas (uma FieldDecl const não se pode referir a si própria). | - |
sources[].filter.groups[].rules[]
Cada elemento de sources[].filter.groups[].rules é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
id | string | não | - | Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
columnName | string | não | - | Coluna da tabela da fonte, POR NOME. | coluna de feature (nome) |
operator | string | não | - | Operador da comparação. | - |
value | string | não | - | Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
secondValue | string | não | - | Segundo valor, usado pelos operadores de intervalo. Só aparece no JSON quando não é nulo. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
sources[].order
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
field | string | não | - | Coluna da tabela da fonte, POR NOME. | coluna de feature (nome) |
dir | enumeration | não | "asc" | Ascendente ou descendente. | - |
dataContract
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
queries | list de map | não | [] | As consultas, uma por chave de dados. | - |
variables | json | não | {} | Variáveis passadas ao documento: nome → valor. Dados de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
dataContract.queries[]
Cada elemento de dataContract.queries é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
name | string | sim | - | Chave sob a qual as linhas aparecem no documento. | - |
feature | string | sim | - | Feature de onde saem as linhas: id, nome, ou a referência simbólica que a IA escreve. | feature (uuid ou nome) |
columns | list de string | não | [] | Colunas trazidas, POR NOME; vazio = todas. Só sai no JSON quando não está vazia. | - |
filter | list de string | não | [] | Filtros de linha na forma campo:operador:valor (a mesma sintaxe das ferramentas de leitura da IA). | - |
limit | integer | não | - | Máximo de linhas trazidas. | - |
filterGroup
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
combinator | enumeration | não | "and" | Como se combinam as regras do grupo: and exige todas, or basta uma. | - |
rules | list de map | não | - | As regras do grupo. | - |
groups | list de map | não | - | Subgrupos aninhados, com a mesma forma. | - |
filterGroup.rules[]
Cada elemento de filterGroup.rules é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
id | string | não | - | Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
columnName | string | não | - | Coluna desta tabela, POR NOME. | coluna (nome) |
operator | string | não | - | Operador da comparação. | - |
value | string | não | - | Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
secondValue | string | não | - | Segundo valor, usado pelos operadores de intervalo. Só aparece no JSON quando não é nulo. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
filterGroup.groups[]
Cada elemento de filterGroup.groups é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
combinator | enumeration | não | "and" | Como se combinam as regras do subgrupo. | - |
rules | list de map | não | - | As regras do grupo. | - |
groups | list | não | - | Subgrupos de terceiro nível: varrem-se às cegas (uma FieldDecl const não se pode referir a si própria). | - |
filterGroup.groups[].rules[]
Cada elemento de filterGroup.groups[].rules é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
id | string | não | - | Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
columnName | string | não | - | Coluna desta tabela, POR NOME. | coluna (nome) |
operator | string | não | - | Operador da comparação. | - |
value | string | não | - | Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
secondValue | string | não | - | Segundo valor, usado pelos operadores de intervalo. Só aparece no JSON quando não é nulo. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
Exemplo JSON
{
"inputs": [],
"sources": [],
"artifact": "",
"dataContract": {}
}
Gerado de definitions.json versão 35a57cb3aa07. Esta página nasce no build: não se edita à mão.