form
Formulário
Um registo de cada vez, com os campos dispostos em secções, linhas e abas.
- Kind:
view - Key:
form - Categoria:
formulário - Envelope: lista de um só elemento (a config vive em
config[0])
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
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
tabs | list de map | não | [] | Abas do formulário; vazio dá um formulário de uma só. | - |
sections | list de map | não | [] | Secções do formulário quando não há abas. | - |
hiddenFields | list de string | não | - | Colunas escondidas do formulário, POR NOME. | - |
toolbar | map | não | - | Barra de ações do formulário. | - |
fieldOverrides | map | não | - | Nome da coluna na chave → o que se sobrepõe ao componente dela neste formulário. A referência à coluna está na chave do mapa, não no valor. | chave: coluna (nome) |
wizardMode | boolean | não | - | Percorre as abas como um assistente, uma a uma; só sai no JSON quando é verdadeiro. | - |
builderMode | enumeration | não | - | Modo em que o construtor do formulário abre: auto dispõe os campos sozinho, advanced respeita o layout guardado. | - |
rightPanel | map | não | - | Painel de contexto à direita, para um componente pesado (document, linked_view, description, checklist). | - |
bottomPanel | map | não | - | Painel de contexto em baixo, com a mesma forma do da direita. | - |
tabs[]
Cada elemento de tabs é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
label | string | sim | - | Título da aba (omissão de leitura: "Tab"). | - |
sections | list de map | não | [] | Secções desta aba, com a forma das de topo. | - |
tabs[].sections[]
Cada elemento de tabs[].sections é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
type | string | sim | - | Tipo da secção: section, row (linha de colunas), toolbar_section ou special_section. | - |
label | string | não | - | Título da secção; sai no JSON mesmo quando é nulo. | - |
fields | list de string | não | - | Colunas desenhadas nesta secção, POR NOME. | - |
children | list | não | - | Secções encaixadas, com a MESMA forma desta. O layout do formulário é recursivo e uma FieldDecl const não se pode referir a si própria: os níveis abaixo do primeiro varrem-se às cegas (só uuids). Como os campos são NOMES de coluna, não há uuid morto a escapar - o que se perde é a contagem exacta das referências por nome em secções encaixadas. | - |
columns | integer | não | 2 | Número de colunas da linha; só sai no JSON quando o type é row. | - |
visibility | map | não | - | Nome do campo governado na chave → regra que decide se ele aparece. A chave do mapa é uma coluna, POR NOME. | - |
collapsedByDefault | boolean | não | - | Abre fechada; só sai no JSON quando é verdadeiro. | - |
rowLeftFraction | number | não | - | Fração da largura dada à coluna esquerda da linha, de 0 a 1. | - |
tabs[].sections[].visibility{}
Cada entrada de tabs[].sections[].visibility é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
dependsOn | string | sim | - | Coluna de que a visibilidade depende, POR NOME. | coluna (nome) |
operator | string | sim | - | Comparação aplicada ao valor dessa coluna. | - |
value | string | não | - | Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
action | enumeration | sim | - | O que fazer ao campo quando a condição se verifica. | - |
rules | list de map | não | - | A forma de VÁRIAS condições: o toJson escreve a condição sozinha quando é uma só e este rules quando são mais. | - |
tabs[].sections[].visibility{}.rules[]
Cada elemento de tabs[].sections[].visibility{}.rules é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
dependsOn | string | sim | - | Coluna de que a visibilidade depende, POR NOME. | coluna (nome) |
operator | string | sim | - | Comparação aplicada ao valor dessa coluna. | - |
value | string | não | - | Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
action | enumeration | sim | - | O que fazer ao campo quando a condição se verifica. | - |
combineWithPrev | enumeration | não | "and" | Como se junta à condição anterior do conjunto. | - |
sections[]
Cada elemento de sections é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
type | string | sim | - | Tipo da secção: section, row (linha de colunas), toolbar_section ou special_section. | - |
label | string | não | - | Título da secção; sai no JSON mesmo quando é nulo. | - |
fields | list de string | não | - | Colunas desenhadas nesta secção, POR NOME. | - |
children | list | não | - | Secções encaixadas, com a MESMA forma desta. O layout do formulário é recursivo e uma FieldDecl const não se pode referir a si própria: os níveis abaixo do primeiro varrem-se às cegas (só uuids). Como os campos são NOMES de coluna, não há uuid morto a escapar - o que se perde é a contagem exacta das referências por nome em secções encaixadas. | - |
columns | integer | não | 2 | Número de colunas da linha; só sai no JSON quando o type é row. | - |
visibility | map | não | - | Nome do campo governado na chave → regra que decide se ele aparece. A chave do mapa é uma coluna, POR NOME. | - |
collapsedByDefault | boolean | não | - | Abre fechada; só sai no JSON quando é verdadeiro. | - |
rowLeftFraction | number | não | - | Fração da largura dada à coluna esquerda da linha, de 0 a 1. | - |
sections[].visibility{}
Cada entrada de sections[].visibility é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
dependsOn | string | sim | - | Coluna de que a visibilidade depende, POR NOME. | coluna (nome) |
operator | string | sim | - | Comparação aplicada ao valor dessa coluna. | - |
value | string | não | - | Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
action | enumeration | sim | - | O que fazer ao campo quando a condição se verifica. | - |
rules | list de map | não | - | A forma de VÁRIAS condições: o toJson escreve a condição sozinha quando é uma só e este rules quando são mais. | - |
sections[].visibility{}.rules[]
Cada elemento de sections[].visibility{}.rules é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
dependsOn | string | sim | - | Coluna de que a visibilidade depende, POR NOME. | coluna (nome) |
operator | string | sim | - | Comparação aplicada ao valor dessa coluna. | - |
value | string | não | - | Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
action | enumeration | sim | - | O que fazer ao campo quando a condição se verifica. | - |
combineWithPrev | enumeration | não | "and" | Como se junta à condição anterior do conjunto. | - |
toolbar
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
items | list de string | não | - | Colunas (tipicamente componentes de ação) postas na barra. | - |
label | string | não | - | Título da barra, quando tem. | - |
fieldOverrides{}
Cada entrada de fieldOverrides é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
widthCode | string | não | - | Largura do campo no formulário, no vocabulário do construtor (quarter, third, half, twoThirds, full). | - |
helpText | string | não | - | Texto de ajuda mostrado sob o campo. | - |
requiredOverride | boolean | não | - | Torna o campo obrigatório (ou não) só neste formulário. | - |
defaultValueOverride | string | não | - | Valor inicial do campo neste formulário: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
rowLeftFraction | number | não | - | Fração da largura dada a este campo quando está numa linha de dois. | - |
rightPanel
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
fieldName | string | sim | - | Coluna desenhada dentro do painel, POR NOME. | coluna (nome) |
defaultVisible | boolean | não | true | Se o painel abre visível. | - |
defaultSize | number | não | - | Tamanho inicial do painel, em pixels. | - |
minSize | number | não | - | Tamanho mínimo, em pixels, abaixo do qual o painel fecha; nulo usa o mínimo do próprio layout. | - |
maxRatio | number | não | - | Tamanho máximo como fração do espaço disponível, de 0 a 1; nulo usa o máximo do próprio layout. | - |
bottomPanel
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
fieldName | string | sim | - | Coluna desenhada dentro do painel, POR NOME. | coluna (nome) |
defaultVisible | boolean | não | true | Se o painel abre visível. | - |
defaultSize | number | não | - | Tamanho inicial do painel, em pixels. | - |
minSize | number | não | - | Tamanho mínimo, em pixels, abaixo do qual o painel fecha; nulo usa o mínimo do próprio layout. | - |
maxRatio | number | não | - | Tamanho máximo como fração do espaço disponível, de 0 a 1; nulo usa o máximo do próprio layout. | - |
Exemplo JSON
[
{
"tabs": [],
"sections": []
}
]
Gerado de definitions.json versão 17f3e0bc59d9. Esta página nasce no build: não se edita à mão.