Saltar para o conteúdo principal

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])
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
tabslist de mapnão[]Abas do formulário; vazio dá um formulário de uma só.-
sectionslist de mapnão[]Secções do formulário quando não há abas.-
hiddenFieldslist de stringnão-Colunas escondidas do formulário, POR NOME.-
toolbarmapnão-Barra de ações do formulário.-
fieldOverridesmapnã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)
wizardModebooleannão-Percorre as abas como um assistente, uma a uma; só sai no JSON quando é verdadeiro.-
builderModeenumerationnão-Modo em que o construtor do formulário abre: auto dispõe os campos sozinho, advanced respeita o layout guardado.-
rightPanelmapnão-Painel de contexto à direita, para um componente pesado (document, linked_view, description, checklist).-
bottomPanelmapnão-Painel de contexto em baixo, com a mesma forma do da direita.-

tabs[]

Cada elemento de tabs é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
labelstringsim-Título da aba (omissão de leitura: "Tab").-
sectionslist de mapnão[]Secções desta aba, com a forma das de topo.-

tabs[].sections[]

Cada elemento de tabs[].sections é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
typestringsim-Tipo da secção: section, row (linha de colunas), toolbar_section ou special_section.-
labelstringnão-Título da secção; sai no JSON mesmo quando é nulo.-
fieldslist de stringnão-Colunas desenhadas nesta secção, POR NOME.-
childrenlistnã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.-
columnsintegernão2Número de colunas da linha; só sai no JSON quando o type é row.-
visibilitymapnão-Nome do campo governado na chave → regra que decide se ele aparece. A chave do mapa é uma coluna, POR NOME.-
collapsedByDefaultbooleannão-Abre fechada; só sai no JSON quando é verdadeiro.-
rowLeftFractionnumbernã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:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
dependsOnstringsim-Coluna de que a visibilidade depende, POR NOME.coluna (nome)
operatorstringsim-Comparação aplicada ao valor dessa coluna.-
valuestringnão-Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
actionenumerationsim-O que fazer ao campo quando a condição se verifica.-
ruleslist de mapnã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:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
dependsOnstringsim-Coluna de que a visibilidade depende, POR NOME.coluna (nome)
operatorstringsim-Comparação aplicada ao valor dessa coluna.-
valuestringnão-Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
actionenumerationsim-O que fazer ao campo quando a condição se verifica.-
combineWithPrevenumerationnão"and"Como se junta à condição anterior do conjunto.-

sections[]

Cada elemento de sections é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
typestringsim-Tipo da secção: section, row (linha de colunas), toolbar_section ou special_section.-
labelstringnão-Título da secção; sai no JSON mesmo quando é nulo.-
fieldslist de stringnão-Colunas desenhadas nesta secção, POR NOME.-
childrenlistnã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.-
columnsintegernão2Número de colunas da linha; só sai no JSON quando o type é row.-
visibilitymapnão-Nome do campo governado na chave → regra que decide se ele aparece. A chave do mapa é uma coluna, POR NOME.-
collapsedByDefaultbooleannão-Abre fechada; só sai no JSON quando é verdadeiro.-
rowLeftFractionnumbernão-Fração da largura dada à coluna esquerda da linha, de 0 a 1.-

sections[].visibility{}

Cada entrada de sections[].visibility é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
dependsOnstringsim-Coluna de que a visibilidade depende, POR NOME.coluna (nome)
operatorstringsim-Comparação aplicada ao valor dessa coluna.-
valuestringnão-Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
actionenumerationsim-O que fazer ao campo quando a condição se verifica.-
ruleslist de mapnã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:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
dependsOnstringsim-Coluna de que a visibilidade depende, POR NOME.coluna (nome)
operatorstringsim-Comparação aplicada ao valor dessa coluna.-
valuestringnão-Valor comparado: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
actionenumerationsim-O que fazer ao campo quando a condição se verifica.-
combineWithPrevenumerationnão"and"Como se junta à condição anterior do conjunto.-

toolbar

ChaveTipoObrigatórioOmissãoDescriçãoReferência
itemslist de stringnão-Colunas (tipicamente componentes de ação) postas na barra.-
labelstringnão-Título da barra, quando tem.-

fieldOverrides{}

Cada entrada de fieldOverrides é um objeto:

ChaveTipoObrigatórioOmissãoDescriçãoReferência
widthCodestringnão-Largura do campo no formulário, no vocabulário do construtor (quarter, third, half, twoThirds, full).-
helpTextstringnão-Texto de ajuda mostrado sob o campo.-
requiredOverridebooleannão-Torna o campo obrigatório (ou não) só neste formulário.-
defaultValueOverridestringnão-Valor inicial do campo neste formulário: dado de utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui.-
rowLeftFractionnumbernão-Fração da largura dada a este campo quando está numa linha de dois.-

rightPanel

ChaveTipoObrigatórioOmissãoDescriçãoReferência
fieldNamestringsim-Coluna desenhada dentro do painel, POR NOME.coluna (nome)
defaultVisiblebooleannãotrueSe o painel abre visível.-
defaultSizenumbernão-Tamanho inicial do painel, em pixels.-
minSizenumbernão-Tamanho mínimo, em pixels, abaixo do qual o painel fecha; nulo usa o mínimo do próprio layout.-
maxRationumbernã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

ChaveTipoObrigatórioOmissãoDescriçãoReferência
fieldNamestringsim-Coluna desenhada dentro do painel, POR NOME.coluna (nome)
defaultVisiblebooleannãotrueSe o painel abre visível.-
defaultSizenumbernão-Tamanho inicial do painel, em pixels.-
minSizenumbernão-Tamanho mínimo, em pixels, abaixo do qual o painel fecha; nulo usa o mínimo do próprio layout.-
maxRationumbernã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.