O que há de novo em 4D v19

Tradução automática de Deepl

Este documento é uma compilação de todas as novas características disponíveis em 4D v19 . Note que cada característica tem um post de blog relacionado para o acompanhar através de exemplos concretos. Estes posts do blog podem ser acedidos clicando no título da característica.

Também, secções com a tag blank estão relacionadas com todas as novas funcionalidades lançadas entre 4D v18 R6 e 4D v19.

Este documento está dividido em sete secções:

Apoio nativo de silício

Após o anúncio inovador da Apple(os novos Silicon Macs), lançámos o 4D v19 seis meses antes do previsto para lhe fornecer uma versão nativa de Silicon 4D o mais cedo possível. Para além das notáveis melhorias de desempenho, eis o que há de novo:

Como os Silicon Macs já não utilizam uma arquitectura de processador x86 como os Macs e PCs Intel, não podem executar o mesmo código compilado. Como tal, tivemos de melhorar o nosso compilador com uma compilação específica de Silício (disponível apenas em modo de projecto). Agora será possível compilar as suas aplicações para arquitecturas Intel (Windows e Intel Mac), arquitectura Silicon (Silicon Mac), ou ambas as arquitecturas.

Plugins

Os plugins também serão ligeiramente afectados. Para que um plugin funcione tanto em Intel como em Silicon Macs, será necessário compilá-lo como um binário universal. E se utilizar plugins de terceiros, certifique-se de que descarrega versões binárias nativas de Silício ou universais.

Precisa de mais tempo?

Claro que o 4D v19 continuará a trabalhar com a Rosetta. Se precisar de tempo para pôr a sua aplicação a funcionar nativamente, é sempre possível executá-los na Rosetta.

Características do modo de projecto

Os projectos são um tipo de arquitectura que representa um enorme passo em frente para as aplicações 4D. Acrescentam a capacidade de potenciar ferramentas de controlo de fonte, programação colaborativa, partilha de código, modularidade, e muito, muito mais. Na altura da redacção deste manual, graças à arquitectura do projecto e à capacidade de partilhar o código-fonte das aplicações de projecto através de um sistema de controlo de fontes, publicámos mais de 45 repositórios para o GitHub. Isto inclui HDIs, componentes, e aplicações de exemplo completo.

4D v19 traz todo um novo conjunto de funcionalidades que irão melhorar grandemente a sua experiência de programação.

Aulas

Graças ao modo de projecto, introduzimos as aulas. Uma classe permite definir o comportamento de um objecto através de propriedades e funções. Uma vez definida uma classe, é possível instanciar objectos desta classe em qualquer parte do seu código. Cada objecto é uma instância da sua classe. As classes podem estender outras classes, e depois herdar das suas funções.

Dois tipos de classes estão disponíveis em 4D: classes 4D incorporadas (devolvidas pelo comando 4D ) e classes de utilizador (devolvidas pelo comando cs ).

Para criar um objecto como instância de uma classe, usar o comando cs com a função de novo membro. Outro termo importante a conhecer é o construtor. O construtor é utilizado para criar e instanciar um objecto com atributos predefinidos. É chamado automaticamente quando um objecto é inicializado. A criação de uma classe é feita a partir do menu “Novo” na barra de ferramentas, ou a partir do diálogo “Explorador”. Será exibido um editor de classes onde se pode criar o construtor de classes e funções. Ler a documentação

Herança de classe

A herança permite a uma classe herdar o comportamento de outra classe (a classe mãe ). Para derivar uma classe criança de uma classe pai, use a palavra-chave Classe estende a palavra-chave. Isto chama automaticamente o construtor da classe pai (se não tiver definido um construtor específico para a classe filha ). Também se pode usar o comando Super para chamar o construtor da classe pai. Leia a documentação

Parâmetros de nomenclatura para métodos e funções

Não há necessidade de passar por uma variável intermédia, pode agora nomear os seus parâmetros e resultados ao declarar a:

  • método do projecto,
  • gatilho,
  • método da base de dados,
  • método de formulário,
  • construtor de classes,
  • função de classe. Ler a documentação

Pré-visualização do CSS no editor de formulários

Esta característica foi o pedido de característica mais votado e o mais rápido a tornar-se um pedido de característica mais votado no nosso fórum de pedido de característica. Permite-lhe visualizar a renderização final do CSS no editor de formulários. Um novo ícone na barra de ferramentas permite-lhe visualizar o seu formulário com ou sem renderização CSS, e até ver como seria com renderização CSS específica em Mac ou Windows.

Quanto às propriedades de sobreposição no modo CSS, um novo tipo de escudo (semelhante aos escudos para Método de Objectos ou Ordem de Entrada) é exibido no editor de formulários. Agora é fácil de ver quais os objectos que são afectados pelo estilo CSS. Ler a documentação

Desenvolvimento de código de servidor

O desenvolvimento e depuração de código de servidor em aplicações de projecto torna-se mais fácil. No modo de desenvolvimento em equipa, é comum que vários programadores façam o desenvolvimento de um único utilizador e submetam as suas alterações a um sistema de controlo de versões. O comando RELOAD PROJECT, em combinação com comandos como git pull, permite actualizar um servidor em execução com novo código sem necessidade de reiniciar para testes, ou mesmo para produção.

Quando um cliente Desenvolvedor 4D se liga a um Servidor 4D no mesmo computador, o ficheiro .4DZ não é transferido do servidor para o cliente. O 4D Remote gere os ficheiros do projecto (métodos, formulários, recursos, etc.) como se fosse um cliente 4D de um único utilizador. Os ficheiros de projecto são partilhados pelo Servidor 4D e pelo 4D Remote. Desta forma, pode modificar o seu código e testá-lo em tempo real.

Se quiser que o servidor recarregue os ficheiros modificados, mude para o modo de aplicação a partir do ambiente de desenvolvimento. Mova o Servidor 4D para o primeiro plano ou seleccione o item de menu “Ficheiro / Guardar tudo” no 4D Remote (ou utilize o novo comando RELOAD PROJECT ).

Lembre-se que a execução de um método no lado do cliente executa automaticamente uma acção “Guardar tudo” , e como resultado, recarrega os ficheiros modificados no lado do servidor. Ler a documentação

Macros

As macros estão agora disponíveis no editor de formulários. Com uma macro de formulário, pode:

  • Modificar, apagar ou adicionar uma propriedade a um ou mais objectos de formulário, tais como alterar a cor ou largura de um botão
  • Adicionar ou apagar um ou mais objectos de formulário (incluindo o seu método de objecto associado)
  • Seleccionar ou anular a selecção de objectos de formulário no editor
  • Mostrar um diálogo modal para introduzir um parâmetro na mosca
  • Calcular a posição ideal dos objectos de forma e movê-los
  • Criar uma classe CSS a partir de um objecto de formulário para usar como modelo
  • Verificar se os caminhos de imagem na forma são válidos
  • Abra ficheiros CSS no seu editor CSS em vez de procurar ficheiros no seu disco
  • Verificar se as referências XLIFF têm a sua correspondência nos ficheiros XLIFF
  • e muito mais!

As macros de formulário estão disponíveis a partir do menu contextual. As macros da base de dados anfitriã são exibidas primeiro, seguidas pelas macros componentes. Para executar uma macro, basta clicar no item do menu. Para criar macros de formulário, declare-as num ficheiro formMacros.json no primeiro nível da pasta Sources do seu projecto. Certifique-se de verificar os exemplos de macros que disponibilizámos no GitHub. Pode integrá-los nas suas aplicações como componentes para os testar. Leia a documentação

Documentação do método

Pode escrever a sua própria documentação para os métodos de base de dados, gatilho, projecto, e tabela. A documentação é guardada num ficheiro Markdown com o mesmo nome que o método ou formulário numa pasta de documentação. Markdown é um formato padrão para documentação e permite estilos de formatação melhorados. O formato pode ser exibido no Explorador 4D, no GitHub, ou em outras ferramentas. A documentação pode conter uma descrição de um elemento, assim como qualquer informação necessária para compreender como o elemento funciona na base de dados. Para criar ou editar o ficheiro de documentação numa base de dados de projectos, a partir do Explorador, clicar no botão “Criar” ou seleccionar o item de menu “Editar Documentação”. 4D cria o ficheiro correspondente e abre-o no seu editor predefinido com um modelo pré-definido. Leia a documentação

4D fornece três temas de fontes automáticas que respeitam as directrizes de cada plataforma. 4D v19 permite-lhe anular o tamanho destes temas automáticos e ter mais controlo sobre a forma como o seu texto é exibido. Leia a documentação

4D para iOS

O conjunto de características 4D para iOS expandiu-se com 4D v19:

Trabalho offline blank

Tem agora a capacidade de trabalhar offline e interagir com o seu servidor 4D de uma forma muito flexível.

Quando não há rede disponível, as suas tarefas são colocadas em fila de espera, à espera que o servidor esteja disponível. Isto garante-lhe uma forma muito suave e eficiente de trabalhar, com aplicações que funcionam sem qualquer atraso. Leia a documentação

Ligação profunda

A ligação profunda permite-lhe partilhar um URL, por exemplo, num e-mail. Clicando no URL abrirá directamente um registo específico numa aplicação 4D para iOS. Em combinação com notificações push, pode informar os vendedores sobre uma nova cotação ou agentes de seguros sobre um novo caso. Um único clique abre directamente a aplicação e mostra o registo apropriado. Ler a documentação

Notificações push

As notificações push são uma forma perfeita de manter os seus utilizadores de aplicações iOS envolvidos e informados.

Pode configurar as notificações push para activar a sincronização nos dispositivos iOS. Isto permite que a interface do utilizador seja actualizada instantaneamente, fornecendo aos utilizadores dados em tempo real que podem verificar ao receberem uma notificação. Leia a documentação

Novos formatos de parâmetros: Assinatura e código de barras

Para ajudar a tornar as suas aplicações mais interactivas, foram adicionados novos formatos de parâmetros a 4D para iOS:

  • Formato de assinatura: assine com a ponta de um dedo e envie as assinaturas directamente da sua aplicação para o servidor. Isto poderia ser útil para recolher assinaturas de clientes após a entrega de um pacote, por exemplo.
  • Formato de código de barras: associar qualquer valor a um código de barras (EAN13, EAN8, Código QR, etc.) a ser extraído simplesmente digitalizando-o a partir de um formulário de Acção. Esta é uma forma muito conveniente de adicionar, por exemplo, uma referência ao item, digitalizando um Código QR directamente a partir da sua aplicação. Leia a documentação

Pode aceder e publicar as relações de Um para Muitos na secção Estrutura. Em suma, isto significa que pode exibir as relações Many to Many, o que lhe permite entregar aplicações iOS com melhor ergonomia do que nunca. Isto vem com características adicionais tais como adicionar interacções a um campo deixando cair uma relação sobre ele e exibindo o número de registo correspondente ao clicar na relação Um para Muitos. Leia a documentação

Suporte de leitura de código de barras

A pesquisa é muito melhorada graças à adição de suporte de leitura de códigos de barras. Isto torna possível ter aplicações adaptadas a situações de campo (por exemplo, para necessidades de inventário de armazém).

Mais tecnicamente, esta funcionalidade permite:

  • Filtrar um formulário de lista em função do valor do código. Se um registo corresponder ao valor do código de barras, o formulário de detalhe do registo será aberto automaticamente.
  • Quando combinado com ligação profunda, exibindo formulários específicos de lista e de detalhe, basta digitalizar um código de barras cujos valores são esquemas de URL ou ligações universais. Ler a documentação

Entrar com o QRCode blank

4D para iOS fornece uma nova forma moderna de entrar no sistema. O modelo do formulário de login SignInWithQRCode permite aos utilizadores da aplicação iniciar sessão digitalizando o QRCode, ou aceder directamente à aplicação se já tiverem sido autenticados. Ler a documentação

Sincronização de dados optimizada

4D para o processo de sincronização de dados iOS foi optimizado, melhorando a velocidade de sincronização de dados até 25 vezes mais rápido. Ler a documentação

Autenticação de Email

4D para iOS permite-lhe determinar a autenticidade e legitimidade da pessoa que tenta entrar na sua aplicação. O processo actualiza o estado da sessão de um utilizador para lhe dar acesso à aplicação:

  1. No formulário de login, quando um utilizador introduz um endereço de e-mail e clica no botão Login , o estado da sessão é actualizado para “pendente” e um e-mail com uma ligação de validação é enviado para esse endereço de e-mail.
  2. Quando o utilizador clica na ligação de validação, o estado da sessão muda de “pendente” para “aceite”.
  3. O utilizador pode reabrir a aplicação. Como o estado da sessão é agora “aceite”, o acesso é concedido.

O componente que trata e torna o processo mais fácil está disponível, para que o utilizador possa adaptar o processo de autenticação às suas próprias necessidades. Leia a documentação

Construir modelos de formulários de detalhe

Uma vez que os formulários de detalhe podem ser percorridos, pode deixar cair tantos campos quantos desejar nos seus modelos de formulários de detalhe. Há muitas maneiras de adicionar campos aos seus formulários de detalhe:

  • Seleccione um modelo em branco e largue todos os seus campos no mesmo
  • Arrastar e largar campos em qualquer parte da vista para os adicionar e exibir imediatamente após o último campo adicionado, ou largá-los entre os campos
  • Faça duplo clique num campo para o adicionar no fim da lista
  • Clique com o botão direito do rato sobre um dos campos disponíveis na tabela de Campos à esquerda. Isto irá exibir um menu que lhe permite adicionar quaisquer campos em falta aos seus formulários de detalhe. Leia a documentação

Modelos prontos a usar

Mais de 40 modelos prontos a usar estão disponíveis no editor do projecto. A galeria é baseada numa lista dinâmica de modelos actualizados disponíveis no GitHub. Para utilizar um modelo, está disponível um íconeMais” tanto para formulários de lista como de detalhe. Clique nele para exibir a lista completa de modelos da secção de Formulários. Seleccionar o modelo e 4D para iOS irá tratar da instalação. Poderá então adaptá-lo às suas necessidades. Ler a documentação

ORDA

4D v19 continua a trazer melhorias à ORDA. Para além das diversas características disponíveis (ver abaixo), a ORDA torna possível criar funções de classe de alto nível acima do modelo de dados. Isto permite escrever código orientado para os negócios para esconder a complexidade, reduzir erros, e acelerar o processo de desenvolvimento. Além disso, pode expor o seu projecto tal como uma API com um servidor REST.

Classes ORDA para lidar com o modelo de dados

A estrutura da ORDA (datastore, dataclass, entidade, selecção de entidades) é constituída por objectos fortemente tipificados ligados a classes ORDA específicas. Isto significa que pode escrever funções que escondem a complexidade da implementação física dos seus dados.

4D cria automaticamente o seguinte:

  • Classe de entidade: Para funções de implementação relacionadas com uma entidade (por exemplo, para calcular os custos de envio para a cotação actual. Código atribuído a um determinado registo).
  • Classe EntitySelection: Para implementar funções relacionadas com a selecção de uma entidade (por exemplo, para executar uma estatística sobre os registos seleccionados. Código atribuído a uma selecção)
  • Classe DataClass: Para implementar funções relacionadas com a classe de dados (para executar código relacionado com uma tabela, mas independente de um registo ou selecção específica. Por exemplo, para criar um novo registo com base em parâmetros fornecidos)
  • DataStore: Para implementar funções relacionadas com a DataStore (para executar código não relacionado com uma tabela ou registo, semelhante a um método genérico de projecto). Ler a documentação

Classes de modelos de dados ORDA e REST

Pode chamar funções de classe definidas para o modelo de dados ORDA através de pedidos REST, a fim de beneficiar do API exposto do projecto de aplicação 4D visado. Exponha a sua lógica empresarial com um API controlado (através das suas classes) para outras ferramentas, tais como estruturas web como Angular ou Reagir. Leia a documentação

Âmbito e contexto de execução das funções

Por defeito, no modo cliente/servidor, as funções da classe ORDA são executadas no servidor. Com a nova palavra-chave local, é possível optar por executar algumas funções no cliente. Também pode escolher quais as funções a publicar (ou não) como APIs para clientes REST com a nova palavra-chave exposta. Ler a documentação

Looping com uma nova etiqueta 4D blank

Uma nova etiqueta 4D está agora disponível: a etiqueta 4DEACH. Pode ser usada como etiqueta 4D em páginas SHTML, bem como com o comando PROCESS 4D TAGS, tornando mais simples a utilização de ORDA ou objecto em PROCESS 4D TAGS ou SHTML. Ler a documentação

Actualização do modelo

Ao trabalhar com 4D em modo autónomo, já não precisa de reiniciar a sua base de dados para ter uma datastore actualizada quando a estrutura é actualizada.

Se trabalhar em modo cliente/servidor, isto funciona bem para o código em execução no Servidor 4D. Para clientes remotos, é simplesmente necessário reiniciar o cliente que requer a actualização da estrutura. Ler a documentação

Selecções de entidades partilháveis

Por vezes pode querer partilhar uma selecção de entidade com outro processo ou torná-la disponível para todos os processos. Por exemplo, imagine que está a efectuar uma consulta complexa para encontrar todas as facturas em atraso, permitir aos utilizadores finais seleccionar algumas (ou todas), e enviar um lembrete de pagamento por correio electrónico. O envio de emails é melhor feito noutro processo para evitar bloquear o utilizador.

Em vez de construir uma lista de chaves primárias para passar para o outro processo, uma selecção de entidade partilhada pode ser directamente passada para outro processo. As selecções de entidades partilhadas podem até ser anexadas ao objecto de Armazenamento a ser partilhado com todos os processos.

Em suma, uma selecção de entidade pode ser partilhável ou não partilhável:

  • Uma selecção de entidade partilhável pode ser armazenada num objecto partilhado ou numa colecção partilhada e pode ser partilhada entre vários processos ou trabalhadores. Não permite a adição de novas entidades. A tentativa de adicionar uma entidade a uma selecção de entidade partilhável desencadeará um erro.
  • Uma selecção de entidade não partilhável não pode ser partilhada entre processos, nem pode ser armazenada num objecto ou colecção partilhada. A tentativa de armazenar uma selecção de entidade não partilhável num objecto ou colecção partilhados desencadeará um erro. Contudo, uma selecção de entidade não partilhável aceita a adição de novas entidades. Ler a documentação

Novos métodos de selecção de entidades

Os novos métodos de membros estão à sua disposição:

  • extract(): para extrair dados de uma selecção de entidade. Isto permite-lhe construir uma colecção totalmente personalizada com os dados de selecção da sua entidade. Pode especificar os atributos da classe de dados que deseja extrair e os seus nomes na colecção resultante.
  • refresh(): invalida os dados de selecção da entidade na cache ORDA. Desencadeia uma actualização a partir do servidor na próxima vez que utilizar os dados. Por defeito, a cache ORDA expira após 30 segundos, por isso use este método de membro no caso de necessitar de dados actualizados imediatamente. Leia a documentação

Linguagem 4D e outras características de programação

Suporte de Modo Escuro em macOS blank

4D adicionou o suporte do Modo Escuro, que é aplicado automaticamente se o Modo Escuro for ligado ao nível MacOS. Isto é apenas o início e mais será lançado em versões futuras, como o suporte em todos os componentes (por exemplo, o widget 4D Write Pro), e o Modo Design. Leia a documentação

Múltiplos temas para o editor de código blank

4D oferece-lhe temas básicos que pode enriquecer e adaptar ao seu próprio gosto:

  • “tema de luz padrão” (baseado no editor de cor clássico)
  • “tema negro por defeito” (nova cor)

Se preferir as cores no tema do seu colega ou se encontrar um tema mais ao seu gosto no GitHub, por exemplo, pode importá-las adicionando o ficheiro de temas JSON:

  • “<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme” em macOS
  • “<diskName>:UserName>AppData\4D\4DEditorTheme” no Windows. Ler a documentação
Lançar uma compilação por programação blank

Em sistemas de integração contínua, cada vez que o código é submetido, ou numa base horária, é automaticamente lançada uma compilação do código fonte. Esta abordagem permite verificar as fusões no servidor de gestão de código. A partir do 4D v19, o novo comando Compile Project permite lançar a compilação do código, para que se possa configurar este tipo de sistema. Ler a documentação

Gerir a informação da sua candidatura blank

Para construir a sua aplicação, utiliza o comando BUILD APPLICATION com um conjunto de chaves XML que lhe permitem configurar a aplicação construída. Após o processo de construção, é possível adicionar informações como empresa, direitos de autor, ou versão para a aplicação. Começando com 4D v19, pode lê-los, adicioná-los ou modificá-los em plataformas Windows ou MacOS sem necessidade de dominar a linguagem XML e a estrutura do ficheiro info.plist.

Para isso, adicionámos duas novas funções à classe File para permitir a leitura e escrita de informação da aplicação:

  • Para adicionar a informação a um ficheiro .exe (Windows) ou .plist (macOS), é possível passar um objecto com os atributos que se pretende definir para a função setAppInfo.
  • Para ler a informação de um ficheiro .exe ou .plist, basta usar getAppInfo, e obtém todos os atributos num único objecto. Ler a documentação

Simplificar a criação do Cliente do Arquivo 4D blank

Começando com macOS Big Sur, as aplicações não assinadas não podem ser executadas. No passado, lançámos uma solução de trabalho para construir aplicações cliente-servidor a correr num servidor Windows e a aceitar ligações de clientes Mac. Com o lançamento de 4D v19, actualizámos a construção de aplicações em 4D para lidar com este cenário.

Evolução do formato de registo 4D blank

Revimos recentemente os nossos formatos de registo para melhorar a legibilidade e a conformidade com a análise automatizada. Fizemos estas melhorias em resposta a situações da vida real que vivemos, abordando directamente as questões que estavam a limitar a nossa capacidade de utilizar os registos 4D. Leia a documentação.

Utilizar colecções e listas dentro de objectos de formulários blank

Começando com 4D v19, é possível utilizar colecções para definir o conteúdo de alguns objectos de interface, incluindo a utilização da função Formulário. Isto é muito útil para a gestão genérica da interface. Também acrescentámos melhorias à forma como as listas são utilizadas.

A utilização da lista foi melhorada:
Listas hierárquicas
Controlos de tabulação (primeiro caso de utilização)

As colecções podem agora ser utilizadas como referências com os seguintes objectos:
– Listas descendentes (também conhecidas como “listas pop-up”)
Caixas Combo
– Controlos de tabulação (segundo caso de utilização). Ler a documentação

Nova sintaxe de declaração

Uma nova sintaxe para declarar as suas variáveis está agora disponível. Utiliza a palavra-chave var, o nome da variável, e o seu tipo. Esta nova sintaxe permite-lhe melhorar muito a auto-completação ao declarar as suas variáveis. Pode declarar variáveis utilizando tanto a sintaxe clássica como a nova sintaxe na mesma base de dados. Leia a documentação

Exibição do protótipo e breve descrição

Para simplificar e facilitar a escrita do código no editor, o protótipo de uma função e uma breve descrição são exibidos no editor de código.

A lista de sugestões mostra o preenchimento inteligente do código (com uma breve descrição) e o protótipo, para que se possa escrever o código mais rápida e correctamente. E enquanto escreve a sua função, 4D exibe o protótipo da função e uma breve descrição da função. Destaca também o parâmetro que está a completar actualmente. Leia a documentação

Emails

Apoio OAuth 2.0

OAuth 2.0 é uma norma de autenticação e autorização que protege os dados do utilizador ao fornecer acesso aos dados sem revelar a identidade ou credenciais do utilizador. Ultimamente, os servidores de correio electrónico começaram a passar para esta norma a fim de aumentar a segurança. O Office365 e o Gmail recomendam a utilização do OAuth 2.0 para tratar as mensagens de correio electrónico.

Começando com 4D v19, estamos a fornecer uma forma de configurar o OAuth 2.0. Os transportadores IMAP, SMTP, e POP3 apoiam agora nativamente o protocolo OAuth 2.0. Leia a documentação

Gerir bandeiras IMAP

O protocolo IMAP permite-lhe associar uma lista de bandeiras com uma mensagem, a fim de gerir informações adicionais. Adicionámos um conjunto de funções ao objecto de transporte IMAP para adicionar ou remover bandeiras IMAP.

Com o protocolo IMAP, pode gerir cinco bandeiras :

  • \Visto: A mensagem foi lida.
  • \Respondeu: A mensagem foi respondida.
  • \Bandeiras: A mensagem está marcada como “assinalada” para atenção urgente/especial.
  • \Apagada: Mensagem é marcada como “a ser apagada”. A remoção tem efeito quando a função expunge() é chamada, mudar as caixas de correio, ou fechar a ligação. Esta bandeira já é adicionada pela função delete( )
  • \Desenho: A mensagem não completou a composição (marcada como um rascunho). Ler a documentação

Criar, apagar, e renomear caixas de correio com IMAP blank

As funções estão disponíveis para o ajudar a gerir as suas caixas de correio através da programação. Isto inclui a criação, renomeação e eliminação de caixas de correio. Uma caixa de correio é exibida como uma pasta em clientes de correio electrónico, tais como Microsoft Outlook ou Apple Mail. Leia a documentação

Guardar e-mails numa caixa de correio específica

Ao enviar um e-mail de 4D, se os seus clientes esperam receber uma cópia na caixa de correio “Enviado” exibida pelo Outlook ou Apple Mail, pode guardar uma cópia da mesma depois de a enviar:

  1. Crie dois transportadores: um transportador SMTP para enviar o correio electrónico ao seu cliente, e um transportador IMAP para carregar o seu correio electrónico no seu servidor de correio.
  2. Após enviar o seu correio electrónico com SMTP, utilize a função append() do transportador IMAP. Leia a documentação

Pesquisar e descarregar e-mails

O método searchMails permite recuperar uma lista de mensagens com base em critérios tais como todos os e-mails não lidos ou todos os e-mails de uma pessoa específica dentro das últimas 4 semanas. O comando retorna uma colecção de IDs de correio, que podem ser utilizados directamente pelo novo método getMails (para os descarregar, por exemplo). Ler a documentação

Copiar, mover e apagar e-mails

Três novas funções foram adicionadas ao transportador IMAP: copiar(), mover(), e apagar(). Ler a documentação

Receber e-mails utilizando POP3

Pode descarregar localmente os seus e-mails e removê-los do seu servidor de e-mail via POP3 graças ao novo comando do novo transportador POP3. O Protocolo dos Correios (POP) é um protocolo padrão da Internet utilizado para recuperar correio electrónico de um servidor de correio. Este padrão é útil para acções como a ligação a um servidor POP3, a recuperação de mensagens para as processar automaticamente (para as guardar na sua base de dados local), e a sua eliminação do servidor. Além disso, foram acrescentados vários métodos para melhorar o tratamento do correio electrónico:

  • getMailInfoList(): Retorna informação sobre todas as mensagens na sua caixa de correio.
  • getMailInfo(): Devolve informação sobre uma única mensagem.
  • getMail(): Isto permite-lhe descarregar mensagens específicas passando um número de mensagem devolvido por getMailInfoList() como parâmetro.
  • delete(): Sinaliza mensagens específicas a serem apagadas durante o encerramento da sessão.
  • getBoxInfo(): Devolve o número de mensagens de correio electrónico na sua caixa de correio e o tamanho da caixa de correio. Ler a documentação

Receber e-mails utilizando o IMAP

Quanto a SMTP e POP3, o novo comando do novo transportador IMAP trata do protocolo IMAP. Adicionámos comandos que permitem escolher uma caixa de correio e descarregar um e-mail. Leia a documentação

Descarregar e-mails em formato MIME

4D v19 fornece um comando para lhe permitir armazenar e-mails no seu formato original, não convertido, recebido. Utilizando o método POP3_transporter.getMIMEAsBlob( ), pode obter um BLOB contendo o conteúdo MIME para uma mensagem específica, que pode ser guardado na sua base de dados ou noutro local. Leia a documentação

Encriptar os seus próprios dados com o algoritmo 4D blank

4D oferece-lhe uma forma simples, mas poderosa, de encriptar os seus dados. Agora, também lhe permite utilizar o mesmo algoritmo que o utilizado para a encriptação de dados (AES-256) para as suas próprias necessidades. Assim, agora pode encriptar e desencriptar qualquer informação que deseje com um conjunto de novos comandos: Encriptar dados BLOB e decifrar dados BLOB. Leia a documentação

Nova classe CryptoKey

A nova classe CryptoKey fornece um conjunto de métodos para realizar operações criptográficas comuns (tais como assinatura e verificação, encriptação e desencriptação). Fornece uma forma de garantir:

  • Confidencialidade (protecção de dados contra acesso não autorizado)
  • Integridade (assegurar que os dados estão completos e correctos)
  • Autenticidade (validar a autenticidade de uma mensagem ou de um remetente/receptor) Ler a documentação

Web

Sessões web escaláveis

O Servidor Web 4D suporta agora sessões web escaláveis, um novo tipo de sessão web que melhorará grandemente o desempenho das suas aplicações web.

As sessões web escaláveis podem tratar de vários processos em modo preventivo. Isto significa que podem tratar de vários pedidos de agentes de utilizadores ao mesmo tempo, e também podem partilhar dados entre estes processos. Leia a documentação

SameSite e atributos Secure para cookies blank

Os biscoitos evoluíram ao longo dos anos, mas deixaram algumas questões herdadas. Para lidar com isto e permitir um modelo seguro por defeito para cookies, os navegadores (incluindo Safari, Chrome, Firefox, e Edge) estão a mudar o seu comportamento relativamente aos atributos SameSite e Secure. Por essa razão, o 4D v19 está a trazer algumas melhorias. Leia a documentação

Apoio à partilha de recursos de origem cruzada(CORS)

O protocolo CORS impede uma página web de fazer pedidos para outros domínios que não o seu próprio. Contudo, se precisar de permitir que outros sítios façam pedidos HTTP ao seu servidor para obter ou enviar alguns dados, agora é possível via

  • programação: graças aos comandos WEB SET OPTION e WEB Server . Eles tomam em domínio parâmetros para permitir acções específicas (GET, POST, HEAD, PUT)
  • definições da base de dados: graças às opções disponíveis na janela Definições > Web > Opções (II). Ler a documentação

Explorador de Dados (Pré-visualização)

4D v19 oferece uma versão prévia do Data Explorer 4D. Os programadores e administradores 4D podem agora explorar facilmente os seus dados de aplicação num navegador Web sem necessidade de licença de Servidor Web. Veja este vídeo para ver o produto em acção.

Pasta de cache 4D personalizada para servidor 4D fundido

Se a sua máquina aloja uma aplicação de servidor fundida construída com diferentes versões 4D, poderá encontrar problemas devido à pasta de estrutura 4D partilhada. Para evitar a partilha desta pasta de sistema entre aplicações de servidor fundidas construídas com diferentes versões 4D, pode agora definir o nome da pasta durante o processo de construção da aplicação com a nova chave buildApp para definir a sua própria pasta de estrutura. Leia a documentação

Pasta de cache 4D personalizada para clientes 4D fundidos

A ligação da sua aplicação remota a vários servidores pode por vezes resultar na obtenção de uma grande pasta de recursos locais no sistema, o que pode consumir muito tempo, volume e largura de banda. A nova chave buildApp torna possível a partilha da mesma pasta de recursos locais entre todos os servidores idênticos. Leia a documentação

Melhor integração dos periódicos

Ao executar um Servidor 4D em produção, tudo deve ser totalmente automático e funcionar sem a intervenção de um administrador. Isto é especialmente importante com a Actualização Automática e quando se opera no modo Headless. Após uma perda ou falha de energia, pequenos erros no diário podem impedir um Servidor 4D de reiniciar automaticamente. Uma nova opção permite agora suprimir as mensagens de erro não crítico (mas ainda reportando-as num registo), reduzindo o tempo de inactividade do sistema. Ler a documentação

Conceder dinamicamente permissões de utilização

Seguindo a capacidade de utilizar o seu próprio sistema de gestão do utilizador final e o comando SET USER ALIAS, adicionámos a capacidade de gerir as permissões do utilizador final. O novo comando SET GROUP ACCESS permite-lhe definir dinamicamente as permissões de grupo. Leia a documentação

Armazenar os pseudónimos dos utilizadores na revista

O comportamento do comando SET USER ALIAS foi alargado em 4D v19 para que se saiba quem fez o quê. Agora, quando um pseudónimo é definido, é também armazenado no diário. Isto permite-lhe recuperar o utilizador correcto, mesmo que vários utilizadores partilhem a mesma conta de computador e/ou sistema. O nome do utilizador é exibido no diário:

  • nas fichas de análise de actividade e Rollback do MSC
  • o diálogo apresentado com o comando CHECK LOG FILE
  • o ficheiro JSON gerado pelo LOG FILE TO JSON Leia a documentação

Monitorizar operações lentas

Para descobrir que operações estão a atrasar um servidor, pode usar o novo comando START MONITORING ACTIVITY . Ele regista na memória as operações que excedem uma duração especificada.

Com base nas especificações definidas por este comando, pode também obter todas as actividades registadas com o comando Get Monitored Activity(). Assim que decidir parar de gravar a actividade da sua aplicação 4D ou esvaziar a lista de actividades, chamar o comando STOP MONITORING ACTIVITY (). Leia a documentação

Caixa de listagem

Gerir cliques em células editadas

O sobre clicado

O evento do formulário é desencadeado quer uma célula esteja a ser editada ou não, dando-lhe um maior controlo e melhorando a interface. Isto pode ser útil se quiser exibir os valores possíveis para uma célula quando esta está a ser editada, utilizando, por exemplo, um menu contextual. Uma vez seleccionada a linha, pode oferecer uma escolha de cor para essa linha ou célula em particular.

Para assegurar a compatibilidade, se já tiver um código que corre durante o evento clicado, pode querer parar a execução desse código quando ocorre um clique dentro de uma célula editada. Neste caso, basta testar previamente o estado da célula com a função de edição de texto. Ler a documentação

Colunas de tempo e cálculos de rodapé blank

Embora as novas caixas de listagem utilizando colecções ou selecções de entidades ofereçam mais possibilidades, não permitiam a exibição de tempo e cálculos automáticos no rodapé, ao contrário das caixas de listagem que exibiam matrizes ou registos.

Agora todos os tipos de caixas de listagem podem exibir o tempo nas suas colunas e os cálculos no rodapé. Ler a documentação

Tipo melhorado à frente

Normalmente, uma caixa de listagem só pode receber eventos de teclas em modo de edição. Isto impediu a filtragem automática da lista ou a selecção de entradas quando um utilizador estava a utilizar o teclado ou caixas de listagem não-introduzíveis.

Agora, o evento On before Keystroke é gerado assim que a caixa de listagem tiver focalizado, e uma chave é digitada mesmo que os dados não estejam a ser introduzidos numa célula. Isto permite a 4D saber que teclas foram premidas e torna possível (por programação) tomar decisões tais como iniciar uma nova pesquisa ou alterar a selecção actual.

O novo comando Is editing text foi adicionado para ajudar a determinar se existe uma entrada contínua quando o evento On antes do toque de tecla é gerado. Por exemplo, permite que uma caixa de listagem seja editável – e ainda suporta características do tipo “type-ahead”. Os eventos On antes do pressionamento da tecla e On depois do pressionamento da tecla suportam agora diálogos de ajuda do sistema para seleccionar diacríticos tais como é, ä, ou caracteres asiáticos. O evento é adiado até o utilizador final seleccionar os caracteres finais. Não há necessidade de ser o próprio utilizador a tratar disto. Ler a documentação

Características da Pro Listbox gratuitamente

Já não precisa de uma licença 4D View Pro para utilizar estas características avançadas. Pode tirar o máximo partido das caixas de listagem para:

  • adaptar automaticamente a altura de cada linha ao seu conteúdo para que o texto completo ou imagem seja exibido
  • utilizar matrizes de objectos em colunas para permitir a introdução e exibição de vários tipos de valores nas filas de uma única coluna de caixa de listagem.

Criar filas móveis por código

No modo Design, quando se utilizam caixas de listagem baseadas em matriz, pode-se definir se os utilizadores finais podem mover linhas(por exemplo, para reordenar ou agrupar linhas, etc.). Os comandos LISTBOX SET PROPERTY e LISTBOX Get property foram actualizados para suportar a nova propriedade lk linhas móveis. Ler a documentação

Selecção da linha da caixa de listagem

O novo comando LISTBOX SELECT ROWS facilita a selecção de filas numa selecção de entidade. Toma a selecção de uma entidade como parâmetro, e as linhas correspondentes à selecção da entidade podem ser seleccionadas intuitivamente (incluindo as linhas adicionadas ou removidas da selecção). Para caixas de listagem de colecções, é possível passar uma colecção contendo as referências de objectos que se pretende seleccionar. Ler a documentação

Assumir o controlo da área de trabalho

Os elementos do sistema gráfico, tais como a doca macOS ou a barra de tarefas do Windows são tidos em conta para que se possa utilizar toda a área de trabalho disponível. Um novo parâmetro opcional foi adicionado ao comando SCREEN COORDINATES: Área de trabalho do ecrã. Desta forma, pode ter a certeza de que as janelas da sua aplicação se encontram numa área visível (especialmente no modo SDI no Windows). Ler a documentação

XML: Suporte melhorado de XPath

Começando em 4D v19, a implementação de XPath é mais compatível e simplifica as suas pesquisas, permitindo o apoio de expressões como //, @, *, e last(). Por razões de compatibilidade, a implementação anterior, não normalizada, é mantida por defeito nas bases de dados convertidas. Para tirar partido das características alargadas nas suas bases de dados convertidas, seleccione a opção Usar compatibilidade padrão XPath na página Compatibilidade. Ler a documentação

Melhoria do objecto e da colecção

O comando OB Copy() e o método de membro da colecção.copy( ) foram melhorados. Agora dão-lhe a capacidade de adicionar um objecto padrão num objecto ou colecção partilhada, tornando mais simples copiar o conteúdo deste objecto padrão para o objecto ou colecção partilhada. Para além disto, estão agora disponíveis novos comandos para manusear objectos como mapas hash:

  • Chaves OB: devolve os nomes de propriedade de um objecto como uma colecção
  • Valores OB: devolve os valores de propriedade de um objecto como uma colecção
  • OB Entradas: devolve uma colecção de objectos com propriedades chave (nome da propriedade) e valores (valor da propriedade). Ler a documentação

Criar uma área web fora do ecrã

4D v19 permite-lhe utilizar uma área web em modo offscreen com o comando WA Run offscreen area. Cria uma área web na memória e toma como parâmetros todas as peças de informação relevantes para a área web, como por exemplo:

  • o URL a carregar
  • o nome da zona
  • a fórmula chamada quando um evento é atirado pela área web

Para simplificar a depuração de áreas web fora do ecrã, foi adicionado o novo comando WA OPEN WEB INSPECTOR . Abre o inspector web e permite verificar se a página está correctamente carregada ou se o seu código JavaScript contém erros. Leia a documentação

Acesso aos valores dos objectos do formulário por programação

Dois novos comandos estão disponíveis para o ajudar a aceder aos valores dos objectos de forma, independentemente da sua variável ou expressão: OBJECTO Obter valor e OBJECTO CONFIGURAR VALOR.

  • Para obter o valor de um objecto de formulário, use o comando OBJECT Get value e passe o nome do seu objecto de formulário como um parâmetro.
  • Para definir o valor de um objecto formulário, utilize o comando OBJECT SET VALUE e passe o nome e o novo valor como parâmetros. Ler a documentação

Melhorias na comparação de cordas

4D fornece ferramentas versáteis para procurar e comparar cordas. Podem ser adaptadas a diferentes contextos e situações.

Com 4D v19, foram feitas actualizações ao comando Posição e o novo comando Comparar cadeias de caracteres foi adicionado:

  • Posição: este comando tem agora mais capacidades de comparação, tais como “sensível a maiúsculas e minúsculas” ou “sensível a acentos”, e as seguintes opções de pesquisa estão agora disponíveis:
    • língua japonesa (Hiragana/Katagana)
    • largura dos caracteres
    • “palavra inteira”
  • Comparar cordas: este novo comando permite comparar cordas com as mesmas opções que as adicionadas ao comando Posição. Este comando é baseado no idioma definido nas definições da base de dados. Isto pode ser útil para permitir tipos específicos, por exemplo. Ler a documentação

Melhoramentos do depurador 4D

4D v19 inclui novas opções e informações adicionais que facilitarão o rastreio e análise do seu código.

    • Parâmetros: Conhecer os parâmetros de entrada e saída de um método ou função, assim como o seu tipo, é essencial para a depuração do código. A linha de declaração é exibida na parte superior esquerda da janela do depurador. No painel da cadeia de chamadas, pode optar por exibir ou ocultar o tipo do parâmetro.
    • Comentários: Para ajudar a explicar um método ou função, uma prática comum é incluir comentários no início dos blocos de código. Estes comentários são agora visíveis no depurador. Ler a documentação

Depurador remoto

Esta funcionalidade permite-lhe decidir onde quer depurar o seu código do servidor (no lado do cliente ou do servidor). A depuração do lado do cliente é especialmente útil se executar o seu servidor em modo sem cabeça ou como um serviço do Windows.

Dois novos itens de menu foram adicionados em ambos os lados para gerir o anexo do depurador:

  • Anexo / Depurador de depuração: Anexar ou separar instantaneamente o depurador ao seu cliente ou servidor.
  • Anexe o depurador no arranque: Anexe o depurador quando iniciar o seu cliente ou servidor.

Tenha em mente que o depurador só pode ser anexado a uma única instância de 4D de cada vez. Por exemplo, se tentar anexar o depurador ao seu servidor sem o separar do cliente, receberá uma mensagem de erro com informações sobre o proprietário do depurador.

Para o ajudar a diferenciar se o depurador ou as janelas de erro são do servidor ou do cliente, alterámos o aspecto destas janelas. Ler a documentação

4D Write Pro

Converta os seus documentos Word para o formato 4D Write Pro blank

Pode agora importar documentos .docx em 4D Write Pro. Para o fazer, utilize a nova constante wk docx com o comando existente WP Importar documento. Note que o 4D Write Pro importará a maioria do conteúdo do documento MS Word, excepto o que não é suportado no 4D Write Pro (conforme detalhado no capítulo de documentação: Importação e exportação em formato .docx). Também, durante o processo de importação, é gerado um registo de importação e integrado dentro do próprio documento 4D Write Pro. Poderá consultá-lo para ver se existem diferenças potenciais entre o documento original e o documento convertido. Ler a documentação

Exportação directa para PDF

Sem instalar quaisquer controladores de impressão ou software adicional, os documentos 4D Write Pro podem ser exportados directamente para o formato PDF. Uma exportação directa não só é mais rápida e mais fiável do que um driver de impressão, como também lhe dá mais controlo sobre o resultado. Suporta hiperligações, permite a optimização do tamanho da imagem, e muito mais. O comando WP EXPORT DOCUMENT foi actualizado para aceitar uma nova constante: wk pdf. Leia a documentação

Encontrar e substituir blank

Encontrar e substituir texto dentro de um documento 4D Write Pro já é possível com comandos básicos como WP Get text e WP Set text. O novo comando WP Find all torna este processo mais rápido do que nunca. Ler a documentação

Localizar todas as pausas blank

4D Os documentos Write Pro suportam cinco tipos de pausas:

  • pausas de linha
  • pausas de parágrafo
  • quebras de página
  • quebras de secção
  • quebras de coluna

Por vezes, é necessário localizar um certo tipo de ruptura para a substituir por outro, ou simplesmente eliminar todas as suas ocorrências no documento. Para tornar isto possível, desenvolvemos uma nova função: WP Obter pausas. Ler a documentação

Fórmulas: gerir o comportamento de retorno de carruagem

O novo documento de propriedade wk break parágrafos em fórmulas define como deve ser tratado um retorno de transporte está disponível. Tem dois valores possíveis:

  • wk verdadeiro: Interpretado como quebra de parágrafo.
  • wk falso: (valor por defeito) Interpretado como quebras de linha. Ler a documentação

Melhorias da IU

Um novo separador está disponível no widget da interface 4D Write Pro. Permite a importação e exportação de documentos em diferentes formatos. Também acrescentámos melhorias à barra de ferramentas e à barra lateral. Agora pode:

  • aumentar ou diminuir o texto
  • copiar e colar a régua
  • alterar a cor de fundo de um parágrafo
  • mudar o estilo de uma palavra (maiúsculas, minúsculas, etc.). Ler a documentação

Seleccionar páginas widget para mostrar

4D mostra apenas as páginas mencionadas na colecção, na ordem da colecção. Isto permite reduzir o conjunto de características para o tornar mais simples para o utilizador final. Se apenas forem necessárias opções de estilo, é melhor não exibir as outras funcionalidades. Agora, o widget 4D Write Pro oferece a possibilidade de seleccionar quais as páginas a exibir com o novo método componente WP ShowTabPages. Basta passar o nome do widget e uma colecção de páginas para exibir quando se chama o método. Ler a documentação

Seleccionar carácter para separador decimal

Se tiver documentos de várias fontes, os números podem não estar formatados correctamente para as suas necessidades. Agora, 4D Write Pro permite-lhe especificar esta configuração para cada documento. Pode optar por alinhar os números para:

  • o ponto
  • a vírgula
  • o primeiro separador encontrado (ponto ou vírgula)
  • o separador definido no sistema operativo

A fim de maximizar a compatibilidade (com o MS Word em particular), a opção #3 é utilizada por defeito na criação de novos documentos. Ao migrar documentos 4D Write para 4D Write Pro, o separador definido pelo sistema é utilizado por defeito. Ler a documentação

Gerir hífenes suaves

A inserção de soft-hyphens foi simplificada, fornecendo novas acções padrão, bem como novos botões nos widgets da Interface 4D Write Pro.

Estão disponíveis duas novas acções padrão:

  • insertSoftHyphen
  • removeSoftHyphens

A funcionalidade foi também adicionada aos widgets da Interface 4D Write Pro tanto no widget da barra de ferramentas como no widget da barra lateral. Ler a documentação

Novas acções padrão para tabelas e seus elementos

4D v19 acrescenta novas acções padrão ao 4D Write Pro, direccionando tabelas, filas, e células. Permitem definir o tipo de borda de uma tabela, a cor de fundo de uma célula, o alinhamento vertical do texto numa linha, o alinhamento da própria tabela dentro do documento, as margens, o acolchoamento, e mais de 40 outras opções. Consequentemente, a interface do 4D Write Pro foi melhorada em termos de capacidade de processamento da tabela. Quatro novos botões foram adicionados para alterar o aspecto das tabelas, linhas, colunas e células. Ler a documentação

Apoio de atributo protegido

Em 4D v19, as partes designadas dos documentos 4D Write Pro (ou todas as partes) podem ser “não editáveis”. Estão disponíveis dois níveis de protecção. Primeiro, definir que parte dos documentos será protegida (por defeito, todas as partes são protegidas). Em seguida, activar a bandeira de protecção do documento para que as definições que fez sejam tidas em conta. Para tal, pode usar dois novos atributos com o comando WP SET ATTRIBUTES :

  • wk protegido (pode ser definido para quase qualquer tipo de alvo pertencente a um documento)
  • protecção wk activada (activa ou desactiva a protecção global de documentos). Ler a documentação

Gerir fórmulas dentro de documentos

4D v19 inclui um conjunto de comandos que o podem ajudar a gerir as fórmulas dentro dos seus documentos 4D Write Pro:

  • WP Obtenha fórmulas: Recupera todas as fórmulas dentro de um alvo específico (o próprio documento completo, e também partes mais específicas de um documento, tais como o corpo, a segunda secção, o cabeçalho à esquerda, etc.),
  • WP Inserir fórmula: Insere uma expressão como um objecto de fórmula dentro de um determinado intervalo,
  • Fórmulas WP Compute e Fórmulas WP Freeze: Podem ser utilizadas de forma muito semelhante(isto é, utilizando um alvo). Reavaliar todas as expressões de um documento ou simplesmente congelar apenas as expressões pertencentes aos rodapés. Ler a documentação

Apagar imagens

A eliminação de imagens em linha ou ancoradas pode agora ser feita com o novo comando WP DELETE PICTURE PICTURE . Basta recuperar a imagem que pretende apagar pela sua ID (usando WP Get elemento por ID) ou pela sua posição (usando WP Get elementos), depois chamar o comando. Ler a documentação

4D Ver Pro

Melhoramentos com SpreadJS v14 blank

4D v19 vem com uma nova fita 4D View Probbon. Para além do novo visual, adicionámos novas funcionalidades para suportar as novas funcionalidades do SpreadJS v14.

Esta nova barra de ferramentas traz novas funcionalidades, tais como:

  • Suporte de Acessibilidade: Fornece suporte de acessibilidade adequado para utilizadores com deficiências que utilizam tecnologias de assistência, tais como leitores de ecrã. Para mais informações, consultar Apoio à Acessibilidade
  • Comentário Indicador Personalização do Comentário: Os utilizadores podem agora alterar a cor e o tamanho do indicador.
  • Copiar imagens a partir de Excel: Suporta copiar imagens de Excel e colá-las em folhas. A imagem colada terá o mesmo tamanho, borda, e fundo do que no Excel.
  • Efeitos e Padrões de Preenchimento: Melhorar a aparência das células numa folha de cálculo através da aplicação de efeitos de padrão ou gradiente às células. Para mais informações, consulte Pattern Fill e Gradient Fill.

Apoio de seis línguas

Para além do inglês, acrescentámos o apoio ao francês, alemão, espanhol, japonês e português! Se for um utilizador 4D v19 ou superior com um sistema operativo correspondente aos idiomas suportados, notará que todos os elementos 4D View Pro estão agora traduzidos (fita, barra de ferramentas, menu contextual, mensagens de erro, etc.).

Fim do carregamento de documentos

Dois novos eventos estão disponíveis para lhe permitir saber quando os seus cálculos tiverem sido concluídos: No VP Range Changed e no evento Timer.

Isto pode ser útil, por exemplo, quando carregar um documento 4D View Pro grande com muitas fórmulas, e os cálculos podem demorar algum tempo a completar, ou quando utilizar uma área fora do ecrã e quiser exportar o documento para o formato PDF ou Excel. Nesses casos, é necessário aguardar que os cálculos terminem antes de prosseguir. Leia a documentação

Encontrar e substituir

Há alturas em que se inicializa um documento 4D View Pro, e é necessário encontrar alguns valores ou etiquetas e substituí-los por dados emitidos a partir de 4D. Agora é uma brisa com o comando VP Find. Graças a este comando, pode encontrar dados, fórmulas, ou etiquetas e substituí-los na folha inteira ou apenas numa parte específica da mesma. Leia a documentação

Fórmulas 4D em folhas de cálculo

O comando VP SET CUSTOM FUNCTIONS permite-lhe criar funções personalizadas em 4D View Pro para executar uma fórmula 4D. Não é necessário criar um método para usar uma variável simples em 4D View Pro, basta passá-la como parâmetro para a sua Fórmula. Além disso, o comando simplifica o tipo – frente para o utilizador final, fornecendo texto de ajuda e nomes de parâmetros. Em estruturas grandes, a utilização deste comando é muito mais rápida do que a utilização do comando genérico SET FIELD TITLES. Leia a documentação

Área fora do ecrã

O novo comando VP Run offscreen area permite manipular os comandos e funções 4D View Pro numa área fora do ecrã. Para o utilizar, basta passar a informação da área como parâmetro (por exemplo, o nome da área e o método chamado quando um evento é atirado pela área 4D View Pro). Ler a documentação

Fundir e desunir células

Um novo conjunto de comandos está à sua disposição para o ajudar a fundir e desintegrar um grupo de células através da programação:

  • Para criar uma célula fundida, defina um intervalo com todas as células que deseja combinar, depois passe-o em parâmetro ao novo comando VP ADD SPAN que combina as células num único intervalo de células.
  • Para recuperar todas as células fundidas, use o comando VP Get spans.
  • Para remover as células agrupadas no seu documento, use o comando VP REMOVE SPAN. Leia a documentação

Fórmulas: recalcular, suspender, e retomar

Três novos comandos permitem-lhe accionar os cálculos das fórmulas sempre que desejar:

  • Utilize os FÓRMULAS DE RECOMPUTAÇÃO do VP para recalcular as fórmulas quando os dados mudam.
  • Utilize VP SUSPEND COMPUTING e VP RESUME COMPUTING para, respectivamente, suspender e retomar os cálculos. Ler a documentação

Mais opções para personalizar as folhas de trabalho

O novo VP SET SHEET OPTIONS permite definir várias opções de folhas de uma área 4D View Pro. Por exemplo, este comando permite-lhe:

  • proteger uma folha de trabalho, impedindo que as células dentro dela sejam editadas
  • personalizar as cores dos separadores da sua folha de trabalho, linhas congeladas, linhas de grelha, ou o fundo e borda de uma selecção
  • gerir a visibilidade das linhas de grelha de uma folha de trabalho, e cabeçalhos de linhas/colunas. Ler a documentação

Gerir filas e colunas

4D v19 inclui novos comandos para gerir colunas e filas. Estes comandos permitem-lhe adaptar melhor os seus documentos às suas necessidades. As colunas e linhas podem ser adicionadas e removidas, ou ter o seu tamanho, visibilidade, e etiquetas de cabeçalho definidos com os seguintes comandos:

  • VP INSERT ROWS ou VP INSERT COLUMNS: Adicione linhas ou colunas passando um intervalo contendo a primeira coluna ou linha como parâmetro e o número de linhas ou colunas a adicionar.
  • VP SET COLUMN COUNT e VP SET ROW COUNT: Definir o número de colunas e filas apresentadas. Por defeito, uma folha 4D View Pro contém 100 colunas e 1.000 filas.
  • VP DELETE ROWS ou VP DELETE COLUMNS: Remover filas ou colunas específicas.
  • VP SET COLUMN ATTRIBUTES e VP SET ROW ATTRIBUTES : Especificar largura de coluna ou altura de linha; adicionar uma quebra de página para impressão; ocultar ou mostrar colunas ou linhas; permitir ou proibir o redimensionamento de colunas ou linhas pelos utilizadores; alterar etiquetas de cabeçalho de coluna ou linha. Ler a documentação

Bloquear filas e/ou colunas

O novo comando do VP SET FROZEN PANES ajuda-o a criar vidros. Se tiver uma grande tabela de dados, pode ser útil manter uma área de uma folha de trabalho visível enquanto se desloca para outra área. Com este comando, pode criar até 4 painéis na sua área: um à esquerda, um em cima, um à direita, e um em baixo. Leia a documentação

Solicitações R em profundidade