Skip to main content

report

Report

Relatório autónomo: um documento HTML escrito pela IA (ou um template de PDF) desenhado sobre dados ao vivo, sem rede.

  • Kind: view
  • Key: report
  • Categoria: relatório
  • Envelope: lista de um só elemento (a config vive em config[0])
Envelope de um só elemento

View.config é uma lista com um único elemento: a configuração vive em config[0], não em config. Uma config escrita como mapa cru é lida de qualquer maneira, mas entra nos relatórios como desvio de envelope.

Campos

ChaveTipoObrigatórioOmissãoDescriçãoReferência
kindenumerationnão"html"HTML autónomo numa webview isolada, ou PDF desenhado pelo motor de relatórios a partir do template.-
scopeenumerationnão"collection"O relatório é do conjunto de linhas, ou de UMA linha (que fica disponível como current).-
titlestringnão""Título do relatório.-
artifactstringnã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}}
emailBodystringnão-Variante estática para email (CSS embutido, sem JS). A app escreve-a a partir do rascunho da IA, mas nenhum consumidor a lê.expressões {{record.coluna}}
dataContractmapnão{}Que dados do OutDo são injetados a cada abertura: uma consulta por conjunto de linhas, mais as variáveis.-
templatejsonnão-O JSON do template de PDF (página, cabeçalho, corpo, rodapé e blocos) quando o tipo é native.expressões {{record.coluna}}
filterGroupmapnão-Grupo de filtros aplicado às linhas da vista.-
facetPanelStatejsonnão-Estado do painel de filtros facetados, por utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-

dataContract

ChaveTipoObrigatórioOmissãoDescriçãoReferência
querieslist de mapnão[]As consultas, uma por chave de dados.-
variablesjsonnã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:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
namestringsim-Chave sob a qual as linhas aparecem no documento.-
featurestringsim-Feature de onde saem as linhas: id, nome, ou a referência simbólica que a IA escreve.feature (uuid ou nome)
columnslist de stringnão[]Colunas trazidas, POR NOME; vazio = todas. Só sai no JSON quando não está vazia.-
filterlist de stringnão[]Filtros de linha na forma campo:operador:valor (a mesma sintaxe das ferramentas de leitura da IA).-
limitintegernão-Máximo de linhas trazidas.-

filterGroup

ChaveTipoObrigatórioOmissãoDescriçãoReferência
combinatorenumerationnão"and"Como se combinam as regras do grupo: and exige todas, or basta uma.-
ruleslist de mapnão-As regras do grupo.-
groupslist de mapnão-Subgrupos aninhados, com a mesma forma.-

filterGroup.rules[]

Cada elemento de filterGroup.rules é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
idstringnão-Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
columnNamestringnão-Coluna desta tabela, POR NOME.coluna (nome)
operatorstringnão-Operador da comparação.-
valuestringnão-Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
secondValuestringnã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:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
combinatorenumerationnão"and"Como se combinam as regras do subgrupo.-
ruleslist de mapnão-As regras do grupo.-
groupslistnã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:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
idstringnão-Identificador da regra, gerado pela app. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
columnNamestringnão-Coluna desta tabela, POR NOME.coluna (nome)
operatorstringnão-Operador da comparação.-
valuestringnão-Valor da comparação: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
secondValuestringnã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

[
{
"kind": "html",
"scope": "collection",
"title": "",
"artifact": "",
"dataContract": {}
}
]

Gerado de definitions.json versão 17f3e0bc59d9. Esta página nasce no build: não se edita à mão.