Melhore o seu processo de desenvolvimento com os seus formulários

Durante a fase de desenvolvimento, a detecção precoce de erros de sintaxe é importante para produzir código de qualidade. A verificação de código em tempo real é uma ajuda valiosa para os programadores. Não só melhora a eficiência, como também melhora a qualidade e aumenta a produtividade. Corrigindo erros imediatamente, pode concentrar-se no desenvolvimento funcional de sua aplicação, ao invés de em bugs irritantes que aparecem durante a compilação.

Com 4D 20 R8, temos o prazer de introduzir duas novas caraterísticas que transformarão a forma como trabalha.

  • A primeira é a capacidade de associar uma classe com um formulário, permitindo a verificação de sintaxe com expressões como Form.myProperty.
  • A segunda é uma verificação em tempo real de expressões na lista de propriedades, com uma descrição do erro ou aviso apresentado.

Associar uma classe a um formulário

Agora é possível associar uma classe de usuário a um formulário utilizando o novo atributo “Form class“. Este atributo permite-lhe escrever o objeto devolvido pelo comando Form permitindo a utilização de expressões como Form.myProperty. A classe de usuário pode ser do projeto anfitrião ou de um componente.

Instanciação automática em tempo de execução

Ao abrir um formulário, você pode passar um objeto para o comando DIALOG. Este objeto torna-se então acessível dentro do formulário através do comando Form.

O objeto passado para o comando DIALOG pode ser uma instância de uma classe. Veja como fazer isso:

var $h : Integer
var $o : cs.Person
$o :=cs.Person.new()
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass"; $o)

A partir da versão 4D 20 R8, se define a propriedade “Form class” no formulário sem passar um objeto ao comando DIALOG 4D automaticamente lida com a instanciação. Simplesmente escreva:

var $h : Integer
$h :=Open form window("FormWithClass")
DIALOG ("FormWithClass")

O comando Form devolve um objeto que é uma instância da classe “Person”. Pode verificar isto no formulário com o comando OB Instance of.

$n:=OB Instance of(Form; cs.Person)

Agora, você pode chamar uma função de classe simplesmente escrevendo: “Form.message()”.

Vantagens para o editor de código

Funcionalidade de autocompletar

O comando Form se beneficia do preenchimento automático no editor de código. Ao digitar “Form.”, 4D vai sugerir todas as propriedades e funções declaradas na classe associada. Não é mais necessário inverter duas letras no nome de uma propriedade ou usar uma letra minúscula em vez de uma letra maiúscula no nome de uma função.

Por exemplo, com nossa simples classe “Person” definida como segue:

property firstname : Text
property lastname : Text
property email : Text

Class constructor
This .firstname:=""
This .lastname:=""
This .email:=""

Function get fullname () : Text
return This .firstname+" "+This.lastname

Ao utilizar o comando Form num método de formulário, o editor de código oferece-lhe uma lista exata para completar o seu código:

blank

Verificar a funcionalidade de sintaxe

Quando utiliza expressões do tipo “Form.myProperty” no método de formulário, ou nos métodos de objetos de formulário, beneficiará do poder do verificador de sintaxe.

Vejamos o exemplo da aula anterior. No código do método do formulário, nós:

  • forçamos um número inteiro num atributo de texto,
  • utilizamos um atributo desconhecido,
  • atribuímos um número inteiro a um atributo computado de tipo texto.

 

Na imagem seguinte, pode ver que o editor de código identificou efetivamente erros ou avisos.

blank

Vantagens para o editor de formulários

Verificação da sintaxe integrada na lista de propriedades

A verificação da sintaxe já não está limitada ao editor de código. Esta funcionalidade é estendida às expressões da lista de propriedades (como“Datasource” ou“Meta info expression“). Como resultado, receberá notificações imediatas de erros e avisos.

blank

Não é necessário esperar pelos resultados da compilação para descobrir erros. Graças a esta funcionalidade, será informado logo na fase de edição.

Compilação

Naturalmente, se não tiver resolvido os novos erros diretamente, o compilador irá detectá-los durante o processo de compilação.

Diálogo do compilador

Todos os avisos e erros serão apresentados na janela de compilação. Se der duplo clique numa expressão de objeto de formulário, o formulário correspondente será aberto, destacando o objeto problemático e a sua propriedade na lista de propriedades.

blank

Comando Compilar projeto

Em caso de falha na compilação, o comando Compile project devolve um objeto com avisos e erros. O comando também foi ampliado para devolver avisos ou erros detectados nas expressões de objeto de formulário.

{
    "sucesso":falso,
    "errors":[{
        "message": "Propriedade não declarada 'firstName' utilizada. (550.26)",
        "isError":false,
        "código":{
            "type": "formObjectExpression",
            "formName": "Pessoa",
            "objectName": "InputFirstname",
            "propertyName": "dataSource",
            "file":"[object File]"
            }
        }]
}

O que vem a seguir

Estas novas funcionalidades tornarão a escrita de código mais fácil e eficiente.

Não hesite em partilhar as suas experiências com estas melhorias. Os seus comentários são valiosos para nos ajudar a compreender como estas ferramentas o ajudam no dia a dia e para as adaptarmos melhor às suas necessidades.

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.