Descubra o poder das formas dinâmicas

Tradução automática de Deepl

Já nos disse o quanto quer uma funcionalidade para construir formulários dinâmicos totalmente adaptados às necessidades dos seus utilizadores finais . Bem, nós ouvimo-lo, e 4D v16 R6 now abre novas oportunidades com formulários dinâmicos! Fornecidos como pré-visualização em 4D v16 R6, os formulários dinâmicos permitem-lhe programar a construção dos seus formulários num objecto ou carregá-los a partir de um ficheiro de texto. Mas isto apenas risca a superfície do que cozinhámos para si.

Formulários dinâmicos – Exemplo de base de dados

forma dinâmica Benefícios

Nas formas dinâmicas, todo o conteúdo da forma – páginas, objectos de forma, e as propriedades de cada objecto – são descritos num formato de texto (formato JSON). Assim, as formas dinâmicas podem ser armazenadas num objecto ou num ficheiro. Para uma migração suave, é possível ter ambos os tipos de formulários numa base de dados, ou seja, tanto formulários regulares (armazenados num formato binário no ficheiro .4DB) como formulários dinâmicos(armazenados como texto em qualquer parte do disco).

Os formulários dinâmicos podem ser utilizados com aplicações compiladas ou isoladas. A vantagem dos novos formulários versus formulários binários regulares é que se pode modificá-los apenas actualizando o ficheiro JSON … sem ter de recompilar o pedido. Isto dá-lhe uma grande flexibilidade na implementação.

A utilização de formulários dinâmicos tem também outros grandes benefícios. Já teve um cliente que solicitou a alteração da fonte para todos os objectos dos formulários? Com formulários dinâmicos, é tão simples como fazer uma “Pesquisa e Substituição” num ficheiro de texto!

Agora digamos que quer enviar um determinado formulário por e-mail a um colega de trabalho, só tem de enviar um único ficheiro de texto em vez de todo o pacote da base de dados. Os formulários dinâmicos também simplificam a reutilização de um formulário noutra aplicação sem o incómodo de o mover para outra base de dados … basta copiar/colar um único ficheiro e está feito!

comandos que suportam formulários dinâmicos

Doravante, todos os comandos 4D que utilizam um nome de formulário foram melhorados para aceitar também uma descrição de formulário como um objecto ou um caminho de ficheiro:.

“Exemplo “HELLO WORLD

descrição do formulário a partir de um ficheiro de texto

Vamos dar um exemplo simples com apenas um texto e um botão:

Hello World dialogA descrição textual do formulário é a seguinte:

{
    ... list of form parameters ...
    "pages": [  ... list of form pages ...
        null, ... page 0 ...
        {     ... page 1 ...
            "objects": {    ... list of form objects in page 1 ...

                "text": {
                    "type": "text",
                    "text": "Hello World !",
                    "left": 20, "top": 20, "width": 200, "height": 20
                },

                "button": {
                    "type": "button",
                    "text": "OK",
                    "left": 120, "top": 40, "width": 100, "height": 20
                }
            }}]
}

E aqui está o código para carregar este formulário num diálogo:

DIALOG ("/RESOURCES/helloWorld.json")

A gramática é definida por um esquema JSON. A documentação também fornece a lista completa de atributos que podem ser utilizados em formulários dinâmicos, com detalhes sobre que atributos são suportados por cada objecto de formulário. Não se esqueça que pode utilizar o JSON Validate comando para verificar se o JSON na descrição do seu formulário está de acordo com o esquema do JSON.

Construir uma forma num objecto

Agora, vamos tornar esta forma totalmente dinâmica, construindo-a apenas com código!

// Build form description
$label:=New object("tipo"; "texto"; "texto"; "Olá Mundo!";"top";20;"left";20;"width";200;"height";20)
$button :=New object("type";"button";"text";"OK";"top";40;"left";120;"width";100;"height";20)
$page :=New object("objectos";New object("etiqueta";$label; "botão";$button))
$form :=New object("páginas";New collection(Null;$page); "windowTitle"; "A minha primeira forma dinâmica"; "rightMargin";20; "bottomMargin";20)

// Load the form in a dialog
$w:=Open form window($form)
DIALOG ($form)

Como pode ver, dá-lhe a flexibilidade de construir os seus formulários de acordo com as suas necessidades. Depois de ter escrito os seus formulários num ficheiro ou num objecto, pode utilizá-los da mesma forma que utilizaria formulários normais.

E quanto à edição de formulários?

De momento, não há nenhum mecanismo disponível para editar os seus formulários dinâmicos a não ser a utilização de um editor de texto. Mas isto não vai durar! Está a caminho um editor de formulários dedicado especificamente a formulários dinâmicos. Quando? Fique atento.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.