Formulários Dinâmicos são formulários cujas estruturas se definem em um arquivo .json ou em um objeto 4D. São regenerados cada vez que se executam e oferecem um nível superior de flexibilidade. Algumas vantagens notáveis incluem:
- Usabilidade
- atualizações simples
- modificações dinâmicas do usuário
- fácil reutilização
- pesquisa mais rápida
- Portabilidade
- intercâmbio simplificado
- pode ser armazenado em controle de fonte
Cada objeto definido em um formulário dinâmico, incluido o formulário em si, tem uma ou mais propriedades. Consulte Diretório de Página para ver rapidamente suas descrições.
O exemplo abaixo é um arquivo JSON simples ("HW.json", armazenado na pasta Resources) com texto, uma imagem e um botão:
{
"windowTitle": "Hello World",
"windowMinWidth": 220,
"windowMinHeight": 80,
"method": "HWexample",
"pages": [
null,
{
"objects": {
"text": {
"type": "text",
"text": "Hello World!",
"textAlign": "center",
"left": 50,
"top": 120,
"width": 120,
"height": 80
},
"image": {
"type": "picture",
"pictureFormat": "scaled",
"picture": "/RESOURCES/Images/HW.png",
"alignment":"center",
"left": 70,
"top": 20,
"width":75,
"height":75
},
"button": {
"type": "button",
"text": "OK",
"action": "Cancel",
"left": 60,
"top": 160,
"width": 100,
"height": 20
}
}
}
]
}
Este formulário pode ser carregado em um diálogo com o código 4D abaixo:
Open form window("/RESOURCES/HW.json")
DIALOG("/RESOURCES/HW.json")
O que exibe o formulário:
Quando criar formulários a partir de arquivos, eles devem:
- ser adequados com o schema JSON . O formulário 4D JSON schema pode ser encontrado na pasta em: Resources/formsSchema.json. É sua responsabilidade verificar a validade do formato de arquivo .json. Veja o comando .
- estar em arquivos com a extensão de arquivo ".json" .
- ser armazenados dentro do pacote da aplicação, relativo ao arquivo de estrutura.
Notas:
- Comentários dentro de arquivos .json devem ser contidos dentro da propriedades "comments". Caracteres de código comuns para comentários (ou seja., "//", "/*", "'", etc.) vão tornar o arquivo inválido.
- Arrays em JSON atuam como coleções em 4D.
Todas as rotas de arquivos podem ser relativas ou absolutas. Devem utilizar '/' como delimitador de rota e são resolvidas da maneira abaixo:
- Uma rota relativa não deve começar por '/'. Se resolve relativamente ao documento JSON onde foi encontrado a sstring de rota,
- Uma rota absoluta começa com '/'. Por razões de segurança, só é aceita "/RESOURCES" como rota absoluta e se designa a pasta de recursos do banco de dados atual. Por exemplo, "/RESOURCES/templates/myfile.json" aponta ao arquivo "myfile.json" localizado na pasta de recursos do banco de dados atual.
Notas:
- A resolução do nome é sensível a maiúsculas e minúsculas
- 4D não resolve uma rota a um arquivo .json localizado na rede (a partir de "http/https").
- Se a rota for incorreta ou o arquivo não for válido pelo esquema JSON, se gerará um erro.
Formulários dinâmicos podem conter ponteiros JSON. Ponteiros JSON são automaticamente resolvidos quando chamar um comando 4D que aceite um formulário dinâmico como parâmetro (rota de arquivo .json ou objeto 4D):
Para saber mais sobre ponteiros JSON, veja a seção Definir Ponteiros JSON.
Documentação removida
A documentação nesta seção foi atualizada e movida para developer.4d.com nas seções abaixo: