Novidades em 4D v19 R4

Linguagem 4D

Retornar, continuar, saltar e mais!

Nós escutamos suas sugestões no fórum 4D com várias melhorias na linguagem 4D!

  • Declarações que permitem pular um bloco de código:
    • A palavra chave return termina a execução do método ou função na qual aparece e retorna o controle para o método de chamada. Também pode retornar um valor opcional.
    • A palavra chave break termina o loop que o contém. A declaração abaixo é executada é aquela imediatamente depois do corpo do looping.
    • A declaração continue termina a execução das declarações na iteração do loop atual  e continua a execução do loop com a próxima iteração.
  • Seguido da avaliação de curto circuito: em uma expressão que usa um operador AND ou OR, uma avaliação de curto circuito significa que o segundo argumento é executado ou avaliado somente se o primeiro não for suficiente para determinar o valor da expressão. Adicionamos dois novos operadores:
    • && para o operador AND:
    • || para o operador OR
  • E então temos um operador ternário, que é uma condição seguida por um ponto de interrogação ( ? ), uma expressão para avaliar se a condição for verdadeira seguido por dois pontos (:), e finalmente a expressão para avaliar se a condição for falsa: expressão booleana? valor se True: valor se False.

 

Novo comando para obter informação detalhada sobre licenças

4D v19 R4 tem agora um novo comando que dá toda a informação sobre seu uso de licença: Get License Usage. Também expandimos nossos históricos de diagnóstico. Graças a essa funcionalidade, é possível seguir o consumo de licença em seu servidor, otimizar seu uso e planejar para necessidades futuras.

 

Mais opções para comando enterable

O comando OBJECT SET ENTERABLE foi melhorado, permitindo gerenciar um campo que não é editável.  Como um terceiro parâmetro, o comando é compatível com um booleano ou inteiro. 

  • Assim pode usar o comando como antes sem mudar seu código ao passar um booleano. Só a propriedade editável é modificada (False ou True).
  • Ou pode passar um inteiro. Assim pode estabelecer a propriedade editável e enfocável para seu campo.

 

interface de usuário

High DPI on Windows: compatibilidade para telas de alta resolução

Alto DPI significa “High Dots Per Inch”: representa a densidade de píxels – quanto maior a DPI, maior a densidade de píxels. Em telas 4K, a densidade de píxels pode ser tão alta que exibir normalmente faria com que todos ícones e controles ficassem muito pequenos. Dessa forma, windows permite que mude a escala de texto, ícones e controles. Em telas 4K, é ativado por padrão. Oferecemos primeiro compatibilidade com alta DPI em Mac, e com v19R4, 4D é totalmente compatível com Windows. O resultado é melhor qualidade de texto e imagem.

 
 

System workers

Lançar um processo externo de forma assíncrona

Outra funcionalidade muito pedida. está agora disponível. Às vezes é necessário rodar processos no fundo e realizar ações específicas baseadas no seu código output logo que possível, enquanto o processo ainda estiver rodando. Por exemplo para exibir uma barra de progresso.  4D permite que inicie um processo em segundo plano com a nova classe 4D.SystemWorker e execute automaticamente métodos de callback quando o processo retornar informação. Assim, se usar com uma interface, ela continua  responsiva ao usuário enquanto o processo externo estiver sendo executado, e quando terminar, pode exibir o resultado para seu cliente.

 

ORDA

Agora com aliases

4D v19 R4 agora vem com o novo conceito ORDA: Aliases/apelidos. São continuações lógicas e complementares de atributos computados. Como sugere o nome, um alias é um atalho para objeto de datastore existente. São definidos como “entity dataclass” como os atributos calculados. Enquanto um atributo calculado pode processar qualquer cálculo ou fórmula, um alias é só um atalho, fazendo com que o desenvolvimento seja mais fácil e rápido. Um exemplo de uso é dar acesso fácil a atributos relacionados (o que significa esconder a complexidade de bancos de dados relacionados).

 

Desativar mapeamento padrão de valores null a um valor em branco

Quando criar um novo campo em seu banco de dados, 4D permite que escolha se vai querer mapear valores NULL para valores em branco. A partir de 4D v19 R4, em novos projetos, 4D não mapeia mais como padrão os valores NULL para valores faltantes.

Isso é bom porque ORDA foi criado especificamente para trabalhar com valores NULOS e poupa o trabalho de remendos não elegantes.

 

 

gerenciamento de trava pessimista via Rest

Com 4D v19 R4, se pode usar REST API para travar ou destravar uma entidade.  Isso é particularmente útil para:

  • Manter um código consistente se está acostumado a trabalhar com a REST API. Não precisa escrever uma função nas classes ORDA Data Model para travar/destravar uma entidade.
  • Utilizar sem problema o bloqueio pessimista com a API REST.

4D for Mobile

atributos objeto para apps avançados

A partir de agora é possível usar quase todo tipo de atributos em seus projetos móveis: texto, datas, horas, inteiros. 4D v19 R4 traz ainda outro: atributos de objeto. Permite que exiba campos objetos em sua aplicação móvel em formato legível por humanos ou em formato JSON. Campos objeto são usados para armazenar vários dados em sua aplicação 4D. Agora são facilmente usáveis em apps móveis. Isso significa construir aplicações iOS e Android ainda mais avançadas.

 

melhorias de gerenciamento de dados

Com 4D v19 R4, a seção de dados foi melhorada para dar mais informação sobre os dados que vai empacotar com sua aplicação móvel. Por exemplo, se obtém o número exato de entidades e o tamanho de dados para classe de dados, evitando ter excesso de dados em seu app móvel Essa melhoria ajuda a garantir a validade das pesquisas clicando no botão Validate. Obtém mais feedback visual com mensagens de erro se a pesquisa for incorreta.

 

Novidades em 4D for Android 

Muitas melhorias foram trazidas para 4D for Android, permitindo aproveitar a mesma experiência premium que  4D for iOS oferece. 4D v19 R4 traz:

  • Compatibilidade com relações One to N: Exibe os dados relativos a um registro na lista em formulário detalhado.
  • Ações Online: Possível modificar uma entidade ou seleção de entidade em modo online.
  • E campo objeto formatado: Exibe campo objeto em sua aplicação móvel em formato legível por humanos ou formato JSON.
 
 
 

4D Write Pro

quebra de página dentro de linhas de tabela

4D v19 R4 vem com novos atributos para definir o layout de tabelas. Pode criar documentos complexos 4D Write com facilidade, mas mais importante, documentos visualmente fascinantes: agora temos quebras de página dentro da linhas de tabela. Isso é útil quando as células tiverem texto longo (ou vários parágrafos). Pode ser interessante definir que uma célula (e portanto uma linha da tabela) pode também ser dividida em duas para preencher o espaço disponível nas páginas dos documentos:

  • wk page break inside paragraph pode ser aplicado a parágrafos, mas também a qualquer alvo ou escopo tal como o próprio documento, uma seção em particular, uma seleção de texto, etc. Em todos os casos, o atributo será atribuído aos parágrafos dentro do alvo. Isso facilita a programação.
  • wk page break inside table permite que uma tabela seja dividida em duas (ou mais) partes, a separação é feita entre duas linhas da tabela (como normalmente)
     
  • wk page break inside row também permite dividir a tabela, mas agora dentro de linhas. Note que a opção é dependente da anterior. Se uma tabela pode ser divididade, as linhas também não poderão.

 

Note que a opção de quebra de página dentro de linhas de tabela está disponível na barra de ferramentas e widgets da barra lateral.

Modo Dark

Com 4D v19 R4, 4D Write Pro pode desenvolver e lançar modo claro ou escuro em macOS. Os últimos widgets na biblioteca são compatíveis com modo escuro (em macOS):

  • Barra de ferramentas Interface 4D Write Pro
  • Interface 4D Write Pro
  • Área texto enriquecido na Barra lateral

4D View Pro

opções de Workbook

Quando criar um documento com4D View Pro, precisa geralmente afina experiência de usuário, escondendo as abas da folha, barras de rolagem, desativando o menu contextual ou o arrastar e soltar… Todas essas funcionalidades estão disponíveis com o comando VP SET WORKBOOK OPTIONS.

 

acelere seus processos de desenvolvimento com “templates/modelos.”

Criar relatórios ou planilhas de modelos existentes acelera o desenvolvimento. Da mesma forma que um usuário usando copiar e colar, com  4D v19 R4, o desenvolvedor pode simplesmente “copiar” um intervalo de células de outro local ou área. O comando VP MOVE CELLS permite copiar/cortar um intervalo de células em outro local ou entre duas áreas. Outra forma de copiar um intervalo é copiá-lo com um objeto usando o comando VP Copy to object, por exemplo, para salvá-lo em seu banco de dados. Assim pode colar o objeto quando precisar com o comando VP PASTE FROM OBJECT.

 
editor de código

mude rapidamente para funções diferentes de uma classe.

Classes foram introduzidas com 4D v18 R3. Isso permite organizar sua lógica de negócios e separá-la da UI mais rapidamente.

Classes são compostas de várias funções de diferentes tamanhos. Não é sempre fácil encontrar a função a modificar ou mover de uma função para outra. É possível usar o explorer, que exibe as classes e funções, mas quando está escrevendo código na janela de editor, você não quer perder tempo mudando entre janelas.

Com 4D v19 R4, a lista de funções em sua classe é exibida na barra de ferramentas de editor de código, permite pular rapidamente para uma função específica. 

 

etiquetas de comentário

4D v19 R4 melhora os comentários com etiquetas de comentários para melhor organizar seus comentários: etiquetas são usadas para classificar comentários para simplesmente colocar a tag no começo da linha de comentário. Colocamos três etiquetas a sua disposição:

  • MARK
  • TODO
  • FIXME

A etiqueta MARK permite dividir seu código em seções. Pode escrever de três formas diferentes. As outras duas tags TODO e FIXME, são escritas da mesma maneira. O interessante é que têm ícones diferentes na lista, o que permite organizar seu código para priorizar suas ações futuras.

 

produtividade melhorada com verificar a sintaxe de objeto

Auto-completar para classes já está disponível desde 4D v18 R4. Essa funcionalidade simplifica a escrita de código e limita os erros em nomes de função. Mas não evita-os totalmente; é fácil reverter duas letras, esquecer uma letra maiúscula, e daí gastar tempo procurando porque seu código não funciona. Mas agora pode perguntar a 4D para verificar se as classes ou funções existem. A partir de 4D v19 R4, um aviso é exibido no editor de código se chamar uma função que não exista.

 

Novas possibilidades para personalizar o editor de código

Além de personalizar a janela e a área de código,  4D v19 R4 traz duas novas opções de personalização:

  • Mostrar ou esconder as dez áreas de transferência. 
  • O ícone mostrar/esconder” foi movido para a parte de baixo do lado das listas.

lançamento

Usa aplicações de cliente fusionado duplicadas.

Como um editor de software, alguns de seus clientes podem ter muitas instâncias de sua aplicação servidor fusionadas, por exemplo, uma aplicação de servidor fusionado para cada empresa ou um grupo. Nesse tipo de arquitetura de lançamento, os escritórios de seus clientes geralmente pedem para instalar uma aplicação de cliente fusionado para cada aplicação de servidor fusionado em seu computador porque querem usar o software para cada empresa. A partir de agora, pode usar uma nova chave buildApp para fazer com que cada aplicação de cliente fusionada duplicada use suas própria pasta de preferências de usuário (baseado em sua rota de aplicação): ClientUserPreferencesFolderByPath.

Quer saber mais? Leia todos os blogs posts sobre 4D v19 R4