Novidades em 4D v19

Este documento é uma compilação de  todas as novas funcionalidades disponíveis em 4D v19. Note que cada funcionalidade tem um blog post relacionado que dá exemplos concretos. Esses blog posts podem ser acessados clicando no título da funcionalidade.

As sessões com a tag blank são para todas as novas funcionalidades lançadas entre 4D v18 R6 e 4D v19.

Esse documento é dividido em sete seções:

Suporte Native Silicon

A partir do anúncio explosivo de Apple (o novo Silicon Macs), lançamos 4D v19 seis meses antes do planejado para oferecer uma versão nativa de 4D para Silicon logo que possível. Além das fantásticas melhorias de performance, aqui estão as novidades:

 

Como Silicon Macs não usam mais uma arquitetura de processador x86 como Intel Macs e PCs, não podem executar o mesmo código compilado. Dessa forma, foi melhorado nosso compilador com um Silicon específico (disponível só em modo projeto). Agora pode compilar sua aplicação para arquiteturas Intel  (Windows e Intel Mac), arquitetura Silicon (Silicon Mac), ou ambas.

Plugins 

Plugins também serão levemente impactados. Para um plugin funcionar em Intel e Silicon Macs, é preciso compilar o plugin como binário universal. E se usar plugins terceira parte, tenha certeza de baixar versões Silicon-nativa ou versões binárias universais.

Precisa de mais tempo? 

 4D v19 vai continuar a trabalhar com Rosetta. Se precisar de mais tempo para fazer com que sua aplicação trabalhe nativamente, é sempre possível executá-las em  Rosetta.

Funcionalidades dependentes de modo projeto

Projetos, é uma arquitetura que representa uma evolução gigante para aplicações 4D. Elas abriram o mundo 4D para ferramentas de controle de fonte, programação colaborativa, partilhamento de código, modularidade e muiot mais! Com projetos e a habilidade para partilhar código fonte de aplicação de projetos via um sistema de controle de fonte, publicamos mais de 45 repositórios em GitHub (no momento de escrita do manual). Isso inclui HDIs, componentes e exemplos completos de aplicações. 

Com 4D v19, um novo conjunto de funcionalidades surgiram para melhorar sua experiência de programação.

 

Classes 

Graças ao modo projeto, introduzimos classes. Uma classe permite que defina o comportamento de um objeto através de propriedades e funções. Quando uma classe for definida, pode instanciar objetos dessa classe em qualquer parte do código. Cada objeto dé uma instância de sua classe. Classes podem estender outras classes e então herdar de suas funções.

Dois tipos de classes estão disponíveis em  4D: classes internas a 4D  (retornadas pelo comando 4D) e classes usuário (retornadas pelo comando cs).

Para criar um objeto como uma instância de classe, use o comando cs com a função membro new. Outro termo importante para saber é o constructor. O constructor é usado para criar e instanciar um objeto com atributos padrão. É chamado automaticamente quando um objeto for iniciado. Criar uma classe é feito a partir do menu “New” na barra de ferramenta, ou do diálogo “Explorer”. Um editor de classe vai ser exibido quando criar o constructor de classe e funções. Leia a documentação

Herança de Classe 

Herança permite que uma classe herde o comportamento de outra classe (a classe parent/pai). Para herdar de uma determinada classe, use a palavra chave Class extends, e o construtor da classe parent  é automaticamente chamada (se não tiver definido um construtor especifico para a classe child). Pode também usar o comando Super para chamar o construtor da classe parent. Leia a documentação

Nomear parâmetros para métodos e funções

Não precisa fazer uma variável intermediária, pode nomear seus parâmetros e resultados quando declarar:

  • um método de projeto,
  • trigger,
  • um método de banco de dados,
  • um método de formulário,
  • um construtor de classe,
  • uma função de classe. Leia a documentação

 

Preview CSS no editor de formulário

Essa funcionalidade foi a mais pedida na nossa enquete sobre funcionalidades no fórum. Permite prever a renderização CSS final no editor de Formulário. Para isso um novo ícone está disponível na barra de ferramentas, eprmitindo que veja seu formulário com ou sem a renderização CSS, mesmo mostrando como pareceria com uma renderização CSS específica em Mac ou Windows. Também se pode ignorar propriedades em modo CSS, um novo tipo shield (similar aos shields para Object Method ou Entry Order) está exibido no editor Form. Agora é fácil ver que objetos são impactados por CSS. Leia a documentação

 

Desenvolvimento código de Servidor

Desenvolvimento e depuração de código servidor em uma aplicação projeto ficou mais fácil. Em modo de desenvolvimento pode ter vários desenvolvedores usando desenvolvimento monousuário e colocando suas mudanças em um sistema de controle de versão –  RELOAD PROJECT combinado com comandos como git pull permite atualizar um servidor rodando com novos códigos sem reiniciar para testar ou mesmo em modo produção.

Quando um cliente 4D Developer conecta a um 4D Server no mesmo computador, o arquivo .4DZ não é transferido do servidor ao cliente. O 4D Remote gerencia os arquivos projeto (métodos, formulários, recursos, etc) como se fosse um cliente monousuário 4D. Os arquivos projetos são partilhados por 4D Server e 4D Remote. Dessa maneira pode modificar seu código e testá-lo no momento.

Se quiser que o servidor recarregue os arquivos modificados, troca do ambiente desenvolvedor para o modo de aplicação, move o 4D Server para o a frente ou selecione o item de menu “File / Save all” em 4D Remote (ou use o novo comando RELOAD PROJECT).

Lembre que executar um método no cliente servidor automaticamente realiza uma ação “Save all”, e como resultado recarrega os arquivos modificados no lado do servidor. Leia a documentação

 

Macros 

Macros estão disponíveis no editor Form. Com uma macro formulário é possível:

  • Modificar, apagar ou adicionar uma propriedade para um ou mais objetos de formulário, tais como mudanças de cor ou largura em um botão
  • Adicione ou apague um ou mais objetos formulários (incluindo seus métodos objeto associados)
  • Selecione ou desselecione objetos formulários no editor
  • Exibe um diálogo modal para entrar um parâmetro quando quiser
  • Calcule a posição ideal do objeto formulários e as mova
  • Criar uma classe CSS a partir de um objeto de formulário para usar como modelo
  • Verifique se os caminhos da imagem no formulário são válidos
  • Abra arquivos CSS em seu editor CSS em vez de procurar arquivos em disco
  • Verificar se as referências XLIFF têm sua correspondência nos arquivos XLIFF
  • e muito mais!

Macros de formulário estão disponíveis a partir do menu contextual. Macros de bancos de dados anfitrião são exibidos primeiro, depois as macros componentes. Para executar uma macro, apenas clique no item do menu. Para criar macros de formulário, simplesmente declare as macros no arquivo formMacros.json no primeiro nível da pasta Sources em seu projeto. Tenha certeza de ver alguns dos exemplos de macros que deixamos disponíveis em GitHub que podem ser integrados em suas aplicações como componentes para ser testados. Leia a documentação

 

Documentação de método

Pode escrever sua própria documentação para bancos de dados, trigger, projeto e métodos formulário tabela. Documentação é salva um arquivo  Markdown com o mesmo nome que o método ou formulário em uma pasta documentação. Markdown é um formato padrão para documentação e permite estilos de formatação aumentados. O formato pode ser exibido em 4D Explorer, em GitHub ou outras ferramentas. A documentação pode conter uma descrição de um elemento, assim como qualquer informação necessária para entender como o elemento funciona no banco de dados. Para criar ou editar o arquivo de documentação em um projeto de banco de dados. A partir do Explorer clique no botão “Create” ou selecione o item de menu “edit documentation”. 4D cria o arquivo correspondente e abre no editor padrão com um modelo carregado. Leia a documentação

4D fornece dois temas de fonte automáticos com respeito às guias de cada plataforma. 4D v19 permite que ignore o tamanho desses temas automáticos e tenha mais controle sobre como seu tema será exibido. Leia a documentação

 

4D for iOS 

 

O conjunto de funcionalidades de 4D for iOS aumentou with 4D v19:

 

Trabalhar offline blank

Tem a habilidade de trabalhar offline e interagir com seu servidor 4D de uma maneira flexível.

Quando nenhuma network estiver disponível. Suas tarefas são colocadas numa fila, esperando que o servidor fique disponível. Isso garante uma maneira eficiente e suave com apps que constantemente funcionam sem atrasos. Leia a documentação

 

Deep linking

Deep linking permite que partilhe uma URL, por exemplo em um email. Clicar na URL vai abrir diretamente um registro específico em um app 4D for iOS. Combinado com notificações push, pode informar o pessoal de vendas sobre uma nova cotação ou aos seus agentes de seguro sobre um novo caso. Um único clique abre diretamente o app e exibe o registro apropriado. Leia a documentação

 

Notificações Push

Notificações Push são uma maneira perfeita de manter seus usuários app iOS comprometidos e informados.

Pode estabelecer notificações push para ativar sincronização em aparelhos iOS. Isso permite que a interface de usuário seja atualizada instantaneamente, fornecendo aos usuários dados em tempo real, que podem checar ao receber uma notificação. Leia a documentação

 

Novos formatos de parâmetros: assinatura e código de barra

Para tornar seus apps mais interativos, novos formatos de parâmetros para 4D for iOS são adicionados:

  • Formato Signature: pode assinar com a ponta do dedo e enviar assinaturas diretamente de seu app para um servidor, por exemplo para coletar assinaturas de clientes depois da entrega de um pacote.
  • Formato Barcode: associa qualquer valor com um código de barras (EAN13, EAN8, QR Code, etc.) para ser extraído ao simplesmente escanear em um formulário Action. Essa é uma forma conveniente de adicionar, por exemplo, uma referência de item escaneando um Código QR diretamente a partir de seu app. Leia a documentação

 

Pode acessar e publiar relações One to Many a partir de relações Many to One na seção Structure. Em resumo, isso significa que pode exibir relações Many to Many, que permite entregar apps iOS com melhor ergonomia que antes! Isso vem com funcionalidades adicionais como adicionar interações a um campo ao soltar uma relação dentro dele, e exibir o número de registro correspondente a partir de um clique em relações One to Many. Leia a documentação

 

Compatibilidade de escaneamento de código de barra

Pesquisas foram melhoradas com a adição de compatibilidade de escaneamento de código de barrra. Assim é possível ter apps adaptados à situações de campo, fora do escritório (por exemplo, necessidades de inventário de um armazém).

Mais tecnicamente, essa funcionalidade permite:

  • Filtrar um formulário lista dependendo no valor do código. Se um registro corresponder com o valor do código de barra, isso vai abrir diretamente o formulário detalhe do registro.
  • Quando combinado com deep linking, pode exibir listas específicas e formulários detalhes apenas escaneando um código de barra cujos valores são URL Schemes ou Universal Links. Leia a documentação

 

Iniciar sessão com With QRCode blank

4D for iOS oferece uma nova maneira de iniciar sessão com o modelo de login formulário SignInWithQRCode que permite aos usuários do app iniciarem sessão escaneando o código QRCode e dá acesso aos usuários que já foram autenticados. Leia a documentação

 

Sincronização de dados Otimizados

O processo de sincronização de dados 4D for iOS foi otimizado, com uma sincronização de dados até 25 vezes mais rápida. Leia a documentação

 

Autenticação de Email

4D for iOS permite determinar facilmente a autenticidade e legitimidade da pessoa tentando fazer login no seu app ao verificar se um email veio de quem diz que enviou. Basicamente o processo de atualização do status de uma sessão de usuário dá ao usuário acesso à aplicação:

  • Quando um usuário entrar o endereço de email no formulário de registro e clicar no botão Login, o estado da sessão é atualizado para “pending”/pendente.
  • Um email de validação é então enviado para o usuário, que vai precisar clicar no link de validação para atualizar o estado da sessão de “pendente” a “aceito”.
  • Quando o processo de validação estiver completo, o usuário pode reabrir o app e fazer com o status da sessão mude para “accepted”, e acesso é dado.

O componente que gerencia e facilita o processo também está disponível para que possa adaptar a autenticação de acordo com suas necessidades. Leia a documentação

 

Construir modelos formulário detalhe

Pode soltar quantos campos quiser no modelo de formulário detalhe porque são roláveis. Há várias formas de adicionar campos aos seus formulários detalhe:

  • Selecione um formulário em branco no qual vai jogar todos os campos sem nenhuma restrição ou
  • Arraste e solte campos em qualquer parte da vista para adicionar e exibí-los imediatamente depois do último campo adicionado ou entre outros campos já exibidos, ou
  • Dê duplo clique em um campo. Seu campo pode ser adicionado ao final da lista, ou
  • Clique direito em um dos campos disponíveis na tabela Fields na esquerda. Isso vai exibir um menu que permite adicionar qualquer campo faltante para seus formulários detalhe. Leia a documentação

 

Modelos fácil de usar

Mais de 40 modelos prontos para usar estão à sua disposição, acessíveis do editor de projetos. A galeria é baseada em uma lista dinâmica de modelos atualizados disponíveis em GitHub. Para usar um modelo, use um ícone “More”/mais disponível para formulários detalhe ou formulários lista, que exibe a lista inteira de modelos a partir da seção Forms. Selecione o modelo e 4D for iOS cuida da instalação. Como passo final, pode adequá-lo às suas necessidades. Leia a documentação

ORDA

4D v19 continua a trazer melhorias para ORDA. Além de várias funcionalidades (ver abaixo) ORDA faz com que seja possível criar funções de classe de alto nível acima do modelo de dados. Isso permite que escreva código orientado a negócios para esconder a complexidade, reduzir os erros e acelerar o processo de desenvolvimento. Adicionalmente também pode expôr seu projeto como se fosse um API com um REST server.

Classes ORDA para manejar o modelo de dados

Estrutura de ORDA (datastore, dataclass, entidade e seleção de entidade) é constituída de objetos de tipo forte conectadoas a classes ORDA específicas. Isso significa que pode escrever funções que escondam a complexidade da implementação física de dados. 

Automaticamente 4D cria:

  • Classe Entity: Para implementar funções relacionadas a uma entidade (por exemplo calcular custos de envio para o pedido atual. Código atribuído ao registro existente).
  • Classe EntitySelection: Para implementar funções relacionadas a uma seleção de entidade (por exemplo para roda uma estatística de registros selecionados. Código atribúido à seleção)
  • Classe DataClass: Para implementar funções relacionadas à classe de dados (para rodar código relacionado à tabela, mas independente de um registro ou seleção específicos. Por exemplo para criar um novo registro baseado nos parâmetros fornecidos)
  • DataStore: Para implementar funções relacionadas à datastore (para rodar código não relacionado à tabela ou registro, similar a um método de projeto genérico). Leia a documentação 

 

Classes modelo dados ORDA e REST 

Pode chamar funções classe definidas para o modelo de dados ORDA através de petições REST para se beneficiar de uma API exposta do projeto aplicação 4D alvo. Exponha sua lógica de negócios com uma API controlada (através de suas classes) para outras ferramentas, tais como frameworks Web como Angular ou React. Leia a documentação 

 

Contexto de escopo e execução para funções

Como padrão em modo cliente/servidor, funções classe ORDA são executadas no servidor. Agora pode escolher executar algumas funções no cliente graças a nova palavra chave: local. Tem o poder de escolher que funções publicar (ou não) como APIs para clientes REST com a nova palavra chave: exposed. Leia a documentação

 

Looping com uma nova tag 4D  blank

Uma nova tag 4D está disponível: a tag 4DEACH. Pode ser usada como uma tag 4D em páginas SHTML assim como o comando PROCESS 4D TAGS, isso torna mais simples o uso de ORDA ou um objeto em PROCESS 4D TAGS ou SHTML Leia a documentação

 

Atualização Modelo

Se estiver trabalhando em modo standalone 4D não precisa mais reiniciar seu banco de dados para ter uma datastore atualizada toda vez que a estrutura for atualizada.

Se trabalhar em modo cliente/servidor isso é ótimo para rodar código em 4D Server. Para clientes remotos, só precisa reiniciar o cliente que precisa atualizar a estrutura. Leia a documentação

 

Partilhar com seleções de entidade

Às vezes pode querer partilhar uma seleção de entidade com outro processo ou torná-la disponível para todos os processos. Por exemplo, imagine que está a efetuar uma consulta complexa para encontrar todas as faturas em atraso, permitir aos usuários finais selecionar algumas (ou todas) as faturas, e enviar um lembrete de pagamento por correio electrónico. O envio de emails é melhor feito noutro processo para evitar bloquear o usuário. Ao invés de construir uma lista de chaves primárias para passar para o outro processo, uma seleção de entidade partilhada pode ser diretamente passada para outro processo. As seleções de entidades partilhadas podem até ser anexadas ao objecto de Armazenamento a ser partilhado com todos os processos.

Em resumo, uma seleçã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 coleção partilhada e pode ser partilhada entre vários processos ou workers/trabalhadores. Não permite a adição de novas entidades. A tentativa de adicionar uma entidade a uma seleçã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 coleção partilhada. A tentativa de armazenar uma selecção de entidade não partilhável num objecto ou coleção partilhados desencadeará um erro. No entanto, uma seleção de entidade não partilhável aceita a adição de novas entidades. Leia a documentação

 

Novos métodos de seleção de entidade

Novos métodos membro estão a sua disposição:

  • extract(): para extrair dados de uma seleção de entidade. Isso permite construir uma coleção totalmente personalisada com sua entidade de seleção de dados. Pode especificar os atributos dataclass que quiser extrair e seus nomes na coleção resultante.
  • refresh(): invalida a entidade de seleção de dados na cache ORDA. Ativa uma atualização do servidor na próxima vez que usar os dados. Como padrão a cache ORDA expira depois de 30 segundos, para usar esse método de membro no caso de precisar atualizar os dados imediatamente. Leia a documentação

 

Linguagem 4D & outras funcionalidades de programação

Compatibilidade com Dark Mode em macOS blank

4D adicionou compatibilidade com modo Dark Mode, que é aplicado automaticamente se a preferência for estabelecida ao nível macOS. Isso é só o começo e vai ser lançado em versões futuras, tais como compatibilidade em todos os componentes (por exemplo o widget 4D Write Pro), modo design, e é claro em Windows. Leia a documentaçãon

 

Temas múltiplos para o editor de código blank

4D oferece seus temas básicos que pode enriquecer e adaptar para seus gostos:

  •  “default light theme” (tema claro padrão – baseado no editor de cores clássico)
  •  “default dark theme” (tema escuro padrão – nova cor)

Se preferir as cores escolhidas por seus colegas ou se encontrou um tema mais ao seu gosto, por exemplo em GitHub, não se preocupe, pode usra seu tema adicionando o arquivo tema JSON em:

  • “<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme” em macOS
  • ou “<diskName>:\Users\userName>\AppData\Roaming\4D\4DEditorTheme” em Windows. Leia a documentação

 

Lançar uma compilação com programação blank

Em sistemas de integração contínuos, toda vez que o código de tempo for submetido, ou numa base horária, uma compilação de código fonte é lançada automaticamente. Essa abordagem permite checar fusões no servidor gerenciamento código. A partir de 4D v19, o novo comando Compile Project permite lançar compilação de código então pdoe etabelecer ese tipo de sistema. Leia a documentação

 
Gerenciar suas informações de aplicação blank

Para construir sua aplicação, use o comando BUILD APPLICATION com um conjunto de chaves XML que permite configurar a aplicação built. Depois do processo de construção, é possível para adicionar informação tais como empresa, copyright, ou versão da aplicação. A partir de 4D v19, pode ler, adicionar ou modificar elas nas plataformas Windows ou macOS sem precisar dominar a linguagem XML e a estrutura de arquivo info.plist.

Para isso adicionamos duas novas funções para a classe File que permitem ler e escrever informação de aplicações:

  • Para adicionar a informação a um arquivo .exe (Windows) ou .plist (macOS), pode passar um objeto com os atributos que quiser estabelecer para a função setAppInfo.
  • Para ler a informação do arquivo .exe ou .plist, simplesmente use getAppInfo, e obtenha todos os atributos em um objeto. Leia a documentação

 

Simplesmente a criação do 4D Archive Client blank

A partir de macOS Big Sur, aplicações não assinadas não podem rodar. No passado, lançamos uma solução para construir aplicações cliente servidor rodando em um servidor Windows e aceitar conexões de clientes Mac. Com o lançamento de 4D v19 atualizamos a construção de aplicação em 4D para manejar esse cenário.

 

Evolução de formato 4D log blank

Revisamos recentemente nossos formatos de histórico para melhorar a leitura e compatibilidade com análise automatizada. Fizemos melhorias em resposta a situações da vida real que experimentamos, diretamente lidando com os problemas que limitavam a habilidade de usar históricos 4D. Leia a documentação.

 

Use coleções e listas dentro dos objetos formatos blank

A partir de 4D v19, pode usar coleções para definir o conteúdo de alguns objetos inteface, incluindo o uso da função Form. Isso é útil para gerenciamento genérico de interface. Adicionamos melhorias para como as listas são usadas.

Uso de Lista foi melhorado em:
Listas hierárquicas
Controles tab (primeiro caso de uso)

Coleções podem agora ser usadas como referências com os objetos abaixo:
– LIstas Drop-down (também chamadas de listas “pop-up”)
Combo boxes
– Controles de Tab  (segundo caso de uso). Leia a documentação

 

Nova declaração de sintaxe

Uma nova sintaxe para declarar suas variáveis está disponível. Usa a palavra chave var, o nome da variável e seu tipo. A nova sintaxe permite melhorar o mecanismo de autocomplementar quando declarar suas variáveis. Pode declarar variáveis usando tanto a sintaxe clássica quanto a nova sintaxe no mesmo banco de dados. Leia a documentação

 

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

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

A lista de sugestão exibe preenchimento de código inteligente (com uma descrição curta) e protótipo para que possa escrever mais rapidamente e de forma mais correta. E enquanto escreve sua função, 4D exibe  o protótipo da função e uma descrição curta da função. Também ressalta os parâmetros que estiver completando atualmente. Leia a documentação

 

Emails 

Compatibilidade OAuth 2.0

OAuth 2.0 é um padrão de autenticação e autorização que protege os dados do usuário fornencendo acesso aos dados sem revelar a identidade do usuário ou suas credenciais. Nos últimos tempos servidores de email começaram a adotar esse padrão para aumentar a segurança. Office365 e Gmail recomendar usar OAUTH2 para manejar emails.

A partir de 4D v19, oferecemos um jeito de estabelecer o modo de autenticação OAuth 2.0 para conexões. Transportadores IMAP, SMTP, e POP3 agora são compativeis nativamente com o protocolo OAuth 2.0! Leia a documentação

 

Gerenciar flags IMAP

O protocolo IMAP permite associar  uma lista de flags ou marcas com uma mensagem para gerenciar informação adicional. Foram adicionadas um conjunto de funções ao objeto transportador IMAP para adicionar ou remover marcas IMAP.

Com protocolo IMAP é possível gerenciar cinco tipos de marcas :

  • \Seen: Mensagem foi lida.
  • \Answered: Mensagem foi respondida.
  • \Flagged: Mensagem marcada como “flagged” para atenção urgente/especial.
  • \Deleted: Mensagem é marcada como “to be deleted”/a ser apagada. A remoção é feita quando a função expunge() for chamada, quando trocar de mailboxes, ou fechar a conexão. Essa flag já é adicionada pela função delete()
  • \Draft: composição da Mensagem não foi completada (marcada como draft/esboço). Leia a documentação 

 

Criar, apagar e renomear mailboxes com IMAP blank

Funções estão disponíveis para ajudar a gerenciar suas caixas de mensagem por programação. Isso inclui criar, renomear e apagar caixas de mensagem. A mailbox é exibida como uma pasta em clientes email como Microsoft Outlook ou Apple Mail. Leia a documentação

 

Salvar emails em uma caixa de mensagens específica

Caso seus clientes esperem obter uma cópia do email na caixa  “Sent”, exibida por Outlook ou Apple Mail quando enviar emails a partir de  4D, 4D v19 tem a resposta. Para salvar uma cópia do email depois de enviá-lo:

  • Primeiro crie dois transporters: um transporter SMTP para enviar o email para seu cliente e um transporter IMAP para subir seu email ao servidor de email.
  • Depois de enviar seu email com SMTP, use a função append() do transporter IMAP. Leia a documentação

 

Pesquisar e baixar emails

Pesquisas permitem achar uma lista de mensagens baseada em critérios tais como emails não lidos ou todos os emails de uma pessoa específica dentro das últimas 4 semanas. O comando retorna uma coleção de IDs de email, que podem ser usadas diretamente pelo novo método para baixá-los getMailsLeia a documentação

 

Copiar, mover e apagar  emails

Três novas funções foram adicionadas ao transportador IMAP: copy()move(), e delete(). Leia a documentação

 

Receber emails usando POP3

Pode baixar localmente seus emails e removê-los de seu servidor email via POP3 graças ao novo comando POP3 New transporter.  Post Office Protocol (POP) é um protocolo padrão de internet para receber emails de um servidor de mail. Esse padrão é útil para ações tais como conectar a um servidor POP3, receber mensagens para processá-las automaticamente (para armazenar em seu banco de dados local) e apagá-las do servidor. Adicionalmente vários métodos foram adicionados para manejar seus emails:

  • getMailInfoList(): Retorna informação sobre todas as mensagens na caixa de mensagens.
  • getMailInfo(): Retorna informação sobre uma mensagem única.
  • getMail(): Permite baixar mensagens específicas passando um número de mensagem retornado por getMailInfoList() como um parâmetro.
  • delete(): Marca mensagens específicasd para serem apagadas no fechamento da sessão
  • getBoxInfo(): Retorna o número de emails em seu mail box e o tamanho da caixa de mensagens. Leia a documentação

 

Receber emails usando IMAP

Como fizemos para SMTP e POP3, há um novo comando IMAP New transporter para manejar o protocolo IMAP. Adicionamos comandos para escolher uma caixa de mensagem e baixar um email. Leia a documentação

 

Baixar emails em MIME format

4D v19 fornece um comando para permitir armazenar emails em seu formato original, não convertido, em que foi recebido. Usando o método POP3_transporter.getMIMEAsBlob( ), pode obter um BLOB contendo o conteúdo MIME para uma mensagem específica, que pode ser salva em um banco de dados ou outro lugar. Leia a documentação

Criptografe seus dados com o algoritmo 4D blank

4D oferece uma maneira simples e poderosa de criptografar seus dados. Agora também permite usar o mesmo algoritmo que aquele usado para criptografia de dados (AES-256) para suas necessidades. Agora pode criptografar e decriptograr qualquer informação que quiser com um conjunto de novos comandos: Encrypt data BLOB e Decrypt data BLOB. Leia a documentação

 

Nova classe CryptoKey 

Uma nova classe está disponível, fornecendo um conjunto de métodos para realizar operações de criptografia comuns (tais como assinatura e verificação, criptografia e decriptografia): classe CryptoKey. Oferece uma nova maneira de proteger a confiabilidade de seus dados assim como verificar a integridade de mensagens, e a autenticidade do emissor. Poderia ser usada para:

  • Confidencialidade: proteger dados de acesso não autorizado
  • Integridade: assegura que dados estejam completos e corretos
  • Autenticidade: validar a autenticidade de um emissor/receptor de uma mensagem. Leia a documentação

 

Web

Sessões web escalonáveis

Os servidores 4D Web oferecem um novo tipo de sessão web que melhora bastante a performance das aplicações web: a sessão web escalonável.

Sessões web escalonáveis podem manejar vários processos em modo preemptivo. Isso significa que podem manejar várias petições de agente usuário ao mesmo tempo e podem partilhar dados entre esses processos. Leia a documentação

 

Atributos SameSite e Secure para cookies blank

Habilidades de Cookies cresceram e evoluíram com os anos, mas eles deixaram alguns problemas de legado. Para manejar isso, navegadores (incluindo Safari, Chrome, Firefox e Edge) estão mudando seu  comportamento referente aos atributos SameSite e Secure para um modelo secure-by-default para cookies. Por isso 4D v19 traz novas melhorias. Leia a documentação

 

Compatibilidade com Cross-origin resource sharing(CORS)

O protocolo CORS evita que uma pagína web faça petições para domínios fora de seu próprio domínio. Entretanto se precisar permitir que outros sites façam petições HTTP para seu servidor para obter ou enviar dados… agora podem via:

  • programação: graças aos comandos WEB SET OPTION e WEB Server. Eles levam em conta parâmetros de domínio para permitir ações específicas (GET, POST, HEAD, PUT) 
  • configurações de bancos de dados: graças a opções disponíveis na janela SettingsWeb > Options (II). Leia a documentação

 

Data Explorer (Preview)

4D v19 oferece uma versão preview de 4D Data Explorer. Desenvolvedores 4D ou administardores podem facilmente explorar sua aplicação de dados em um navegador web sem precisar de uma licença Web Server. Veja esse video para ver o produto em ação.

 

Pasta cache 4D personalisada para 4D Server fusionado

Se sua máquina hospedar uma aplicação servidor fusionada construida com versões diferentes de 4D, é possível ter problemas por causa da pasta 4D structure. Para evitar partilhar a pasta de sistema entre aplicações de servidor fusionadas construidas com versões diferentes de 4D, agora é possível definir o nome da pasta durante o processo de construção da aplicação com a nova chave buildApp para estabelecer sua própria pasta de estrutura. Leia a documentação

 

Pasta de cache 4D Personalisada para Clientes 4D fusionados

Conectar sua aplicação remota para vários servidores podem às vezes resultar em obter uma pasta de recursos local grande no sistema que pode consumir tempo, volume e rede. Agora é possível partilhar a mesma pasta local de recursos entre vários servidores idênticos com a nova chave buildApp para partilhar a pasta de recursos locais. Leia a documentação

 

Integração de registro de erros melhorada

Quando rodar um servidor 4D em produção, tudo pode ser automatizado sem um administrador. Isso é importanto com Auto Update e quando operar em modo headless (computador sem tela ou dispositivos). Depois de uma perda de energia ou um problema, erros pequenos podem parar um 4D Server reiniciado automaticamente. Uma nova opção agora permite ignorar mensagens de erro não críticas (mas mesmo assim são registradas no histórico) reduzindo o tempo de parada do sistema. Leia a documentação

 

Permissões de usuário fornecidas dinamicamente

Além da habilidade de usar seu próprio sistema de gerenciamento de usuário final e o comando SET USER ALIAS, foi adicionada a capacidade de gerenciar permissões de usuário final. O novo comando SET GROUP ACCESS permite que dinamicamente estabeleça membros em grupos. Leia a documentação

 

Armazenar aliases/apelidos de usuários no diário

O comportamento do comando SET USER ALIAS foi estendido em 4D v19 permitindo saber quem fez o que. Agora quando um alias é estabelecido, é armazenado no diário. Iso permite achar o usuário correto mesmo se vários usuários partilharem o mesmo computador ou conta no sistema. O nome de usuário é exibido em:

  • análise atividade MSC e abas Rollback,
  • o diálogo exibido com o comando CHECK LOG FILE,
  • e no arquivo JSON gerado por LOG FILE TO JSON. Leia a documentação

 

Monitorar operações lentas 

Para descobrir que operações fazem com que o servidor esteja ficando lento, 4D v19 oferece um novo comando:  START MONITORING ACTIVITY. Registra as operações excedendo uma duração especificada usando dois parâmetros: a duração e a operação para monitorar. Baseado nas especificações estabelecidas pelo comando, pode também obter todas as atividades registradas com o comando Get Monitored Activity(). Quando decidir para a gravação das atividades de sua aplicação 4D ou esvaziar a lista de atividades, chame o comando STOP MONITORING ACTIVITY. Leia a documentação

 

Listbox

Gerenciar cliques em células editadas

O evento on clicked form é acionado se uma célula estiver sendo editada ou não, dando um maior controle e melhorando a interface. Isto pode ser útil, por exemplo, se quiser exibir possíveis valores utilizando um menu contextual para uma célula quando esta estiver sendo editada. Quando a linha for selecionada, pode oferecer uma escolha de cor para essa linha ou célula em particular.

Quanto à compatibilidade, se já tiver um código que executa durante o evento  on clicked, pode querer parar a execução desse código quando ocorrer um clique dentro de uma célula editada. Neste caso, basta testar previamente o estado desta célula com a função de  is editing text . Leia a documentação

Horas nas colunas e cálculos nos rodapés blank

Enquanto as novas list boxes usando coleções ou seleções de entidade são mais poderosas em várias maneiras, elas têm limitações comparadas com list box exibindo arrays ou registros: exibição de hora e cálculços automáticos no cabeçalho.

A partir de agora todos os tipos de list boxes podem exibir horas nas colunas e também podem exibir cálculos no rodapé. Leia a documentação 

Melhor type ahead

Normalmente, uma list box só recebe eventos de teclas em modo de edição. Contudo, isto impede que seja utilizada para filtrar automaticamente a lista ou seleccionar uma entrada quando um uusários estiver usando o teclado e um list box não-editável.

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

O novo comando Is editing text  foi adicionado para ajudar a determinar se existe uma entrada contínua quando o evento On before keystroke for gerado. Por exemplo, permite que uma list box seja editável – e ainda suporta características do tipo “type-ahead”. Os eventos On before keystroke e On after keystroke suportam agora diálogos de ajuda do sistema para seleccionar diacríticos tais como é, ä, ou caracteres asiáticos. O evento é adiado até o usuário final selecionar os caracteres finais. Não há necessidade de lidar com isso você mesmo. Leia a documentação

 

Funcionalidades Pro Listbox de graça

Se não precisar uma licença 4D View Pro para usar funcionalidades avançadas tais como list boxes. Agora são gratuitas. Aproveite as vantagens de list boxes como:

  • adaptar automaticamente a altura de cada linha e seu conteúdo (para que o texto ou imagem seja exibido completamente),
  • usar arrays objeto em colunas (para que possa entrar e exibir vários tipos de valores nas linhas de uma única coluna  list box).

 

Estabelecer linhas móveis por código

No caso de list boxes baseadas em array, pode definir (em modo Design) se usuários finais podem mover linhas (por exemplo para reordenar ou agrupar linhas, etc). Os comandos LISTBOX SET PROPERTY e LISTBOX Get property foram atualizados por compatibilidade com uma nova propriedade: lk movable rows. Leia a documentação 

Selecionar Listbox row

4D v19 fornece um novo comando que facilita a seleção de linhas em uma seleção entidade: LISTBOX SELECT ROWS.
Aceita uma seleção de entidade como um parâmetro e linhas correspondendo à seleção de entidade que pode ser selecionada intuitivamente (incluindo linhas adicionadas ou removidas da seleção). E para coleção de list boxes pode passar uma coleção contendo as referências de objeto que quiser selecionar. Leia a documentação

 

Controle a área de trabalho

Elementos gráficos de sistema tais como dock macOS ou a barra de tarefas Windows são levados em conta para que possa usar uma área de trabalho disponível. Um parâmetro opcional para o comando SCREEN COORDINATES foi adicionado: Screen work area. Dessa forma pode ter certeza que suas janelas de aplicação estão em uma área visível (especialmente em modo SDI ou Windows). Leia a documentação

 

XML: compatibilidade XPath melhorada

A partir de 4D v19 a implementação XPath simplifica suas pesquisas permitindo a compatibilidade de expressões como //, @, *, e last(). Por razões de compatibilidade, as implementações não padrão anteriores foram mantidas como padrão em bancos de dados convertidos. Para aproveitar das funcionalidades estendidas em seus bancos de dados convertidos, selecione a opção de compatibilidade Use standard XPath na página Compatibility. Leia a documentação

 

Melhoria de objeto e coleção

O comando OB Copy() e o método membro collection.copy() foi melhorado. Agora dão a capacidade de adicionar um objecto padrão num objecto ou colecção partilhada, a fim de evitar códigos complexos para copiar o conteúdo do objecto padrão para o objecto ou coleção partilhada. Além disso, estão disponíveis novos comandos para manejar objectos como mapas hash:

  • OB Keys: retorna os nomes de propriedade de um objeto como uma coleção.
  • OB Values:  retorna valores de propriedade de um objeto como uma coleção
  • OB Entries:  retorna uma coleção de objetos com propriedades chave (nome propriedade) e valores (valor propriedade). Leia a documentação

 

Criar uma área web offscreen

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, em parâmetro, toda a informação pertinente para a área web, tal como :

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

Para simplificar a depuração de uma área web offscreen, um novo comanod foi adicionado: WA OPEN WEB INSPECTOR. Abre um inspetor web e permite verificar se a página for corretamente carrega ou se seu código  JavaScript enviar erros. Leia a documentação

 

Acessar valores objeto formulário por programação

Dois novos comandos estão disponíveis para acessar os valores dos objetos de formulários, independente da sua variável ou expressão: OBJECT Get value e OBJECT SET VALUE. 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. Da mesma forma, se precisar 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. Leia a documentação

 

Melhorias na comparação de String

4D fornece ferramentas muito versáteis para procurar e comparar strings que podem ser adaptadas aos contextos e situações encontradas pelos criadores.

Com 4D v19, foram feitas atualizações ao comando Position e o novo comando Compare strings foi adicionado:

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

Melhorias de depurador 4D

4D v19 inclui novas opções e informação adicional que torna mais fácil tracejar e analisar seu código.

    • Parâmetros: Saber os parâmetros input e output de um método ou furnção, assim como seu tipo, é essencial para depurar o código. A linha de declaração é exibida na parte superior esquerda da janela de depuração. No painel de cadeia de chamada pode escolher exibir ou não o tipo de parâmetro
    • Comentários: Para ajudar a explicar um método ou função, uma prática comum é incluir comentários no inicio de blocos de código. Esses comentários são visíveis no depurador. Leia a documentação

 

Depuração remota

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

Dois novos itens de menu foram adicionados (em ambos lados) para gerenciar o anexo de depurador:

  • Anexar/remover o depurador: anexa ou remove instantaneamente o depurador para seu cliente ou servidor.
  • Anexa depurador no início: Anexa o depurador quando iniciar seu cliente ou servidor. 

Lembre que o depurador pode apenas ser anexado a uma única instância de 4D por vez. Por exemplo se tentar anexar o depurador para seu servidor sem remover de seu cliente, uma mensagem de erro vai aparecer com informação no proprietário do depurador.

E para ajudar você a diferenciar de onde veio o erro, se veio do servidor ou do cliente, nós mudamos a aparência das janelas do depurador e da janela de erros. Leia a documentação

4D Write Pro

 

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

Agora é possível importar documentos .docx em 4D Write Pro. Para  fazer isso, utilize a nova constante wk docx com o comando existente WP Import document. Note que o 4D Write Pro importará a maioria do conteúdo do documento MS Word, excepto o que não é compatível com 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 Leia 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 direta não só é mais rápida e confiável do que usar um driver de impressão, como também lhe dá mais controle sobre o resultado. Além de permitir hyperlinks, também permite otimizar o tamanho da imagem e muito mais. O comando WP EXPORT DOCUMENT foi atualizado para aceitar uma nova constante: wk pdf. Leia a documentação

 

Encontrar e substituir blank

Encontrar (e substituir) o texto dentro de um documento  4D Write Pro já era possível com comandos básicos como WP Get textWP Set text. Um novo comando está disponível que é mais rápido e com critérios opcionais: WP Find all. Leia a documentação

 

Localizar todas as quebras blank

Documentos 4D Write Pro têm cinco tipos de quebras:

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

Às vezes é necessário localizar um tipo de quebra para substitui-la com outra ou simplesmente apagar todas as ocorrências no documento. Para fazer isso possível, desenvolvemos uma nova função: WP Get breaks. Leia a documentação

 

Fórmulas: gerenciar retorno de carro

Uma nova propriedade de documento define como um retorno de carro deve ser tratado se disponível: wk break paragraphs in formulas. Tem dois valores:

  • wk true: Interpretado como quebras de parágrafo.
  • wk false: (valor padrão) Interpretado como quebras de linha. Leia a documentação

 

Melhorias de UI

Uma nova aba está disponível no widget de interface  4D Write Pro permitindo importar e exportar documentos em formatos diferentes. Também novas melhorias vieram para a barra de ferramentas e barra lateral. Agora é possível incrementar e reduzir a tabulação, copiar e colar a régua, mudar a cor de fundo de um parágrafo, mudar o estilo de uma palavra (maiúsculas, minúsculas, etc.) Leia a documentação

 

Selecionar páginas widget para mostrar

4D exibe apenas as páginas mencionadas na coleção na ordem da coleção. Isso permite reduzir o conjunto de funcionalidades para que seja mais simples para o usuário final. Se só as opções de estilo forem necessárias, é melhor nem mesmo exibir as outras funcionalidades. Agora o widget 4D Write Pro oferece a habilidade para selecionar quais páginas exibir com o novo método componente WP ShowTabPages. Simplesmente passar o nome widget e uma coleção de páginas para exibir quando chamar o método. Leia a documentação

Selecionar caractere para tabulação decimal

Se tiver documentos de várias fontes, os números podem não estar corretamente formatados para o que precisa. Agora, 4D Write Pro especifica essa configuração para cada documento. Pode escolher como alinhar os números usando:

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

Para maximizar compatibilidade (com MS Word especialmente) a opção #3 é usada como padrão para criar novos documentos. Quando migrar  documentos 4D Write para 4D Write Pro, o separador definido pelo sistema é usado como padrão. Leia a documentação

 

Gerenciar hífens sílaba

A inserção de soft-hyphens ou hífens sílaba foi simplificada com novas ações padrão além de novos botões nos widgets de interface 4D Write Pro .

Duas novas ações padrão estão disponíveis:

  • insertSoftHyphen
  • removeSoftHyphens

A funcionalidade foi adicionada aos widgets de interface 4D Write Pro Interface widgets in both the toolbar widget and the sidebar widget. Leia a documentação

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

4D v19 tem novas ações padrão para 4D Write Pro que selecionam tabelas, linhas e células. Essas ações permitem definir o tipo de borda de uma tabela, a cor de fundo de uma célula, o alinhamento vertical do texto em uma linha, o alinhamento da própria tabela dentro do documento, as margens, o preenchimento, e outras 40 opções. Por isso a interface de 4D Write Pro foi melhorada em termos de capacidades de processamento de tabela. Quatro novos botões foram adicionados para mudar a aparência de tabelas, linhas, colunas e células. Leia a documentação

Compatibilidade de atributo protegidos

Em 4D v19, partes designadas de documentos 4D Write Pro documents (ou todas as partes) podem ser  “não editáveis”. Dois níveis de proteção são disponíveis. Primeiro defina que parte dos documentos serão protegidas (por padrão, todas as partes são protegidas). Então, ative a flag de proteção do documento de forma que considere as configurações que você estabeleceu. Para fazer isso, dois novos atributos estão disponíveis para serem usados com o comando WP SET ATTRIBUTES: wk protected (pode ser estabelecido para quase qualquer tipo de alvo ou escopo pertencendo ao documento) e wk protection enabled  (ativa ou desativa a proteção global de documento). Leia a documentaçãon

Gerenciar fórmulas dentro de documentos

4D v19 inclui um conjunto de comandos para que possa gerenciar fórmulas dentro de documentos 4D Write Pro:

  • WP Get formulas: Encontra todas as fórmulas em um alvo específico (o documento inteiro ou partes mais especificas de um documento tais como o corpo, a segunda seção, o cabeçalho esquerdo, etc.),
  • WP Insert formula: Insere uma expressão como um objeto fórmula dentro de um intervalo ou faixa dado,
  • WP Compute formulas e WP Freeze formulas: Pode ser usado em uma maneira parecida (por exemplo usando um alvo). Reavalia todas as expressões no documento ou simplesmente congela expressões referentes aos rodapés. Leia a documentação

Apagar imagens

Apagar imagens inline ou ancoradas pode agora ser feito com o novo comando WP DELETE PICTURE. Simplesmente ache a imagem que quiser apagar a partir de sua ID  (usando WP Get element by ID) ou por sua posição (usando WP Get elements), e daí chame o comando. Leia a documentação

 

 4D View Pro

 

Melhorias com SpreadJS v14 blank

4D v19 vem com uma nova barra de ferramentas ribbon/faixa 4D View Pro. Além do novo visual, adicionamos novas propriedades compatíveis com o  SpreadJS v14.

Essa nova barra de ferramentas tem novas funcionalidades como:

  • Assistência de acessibilidade:  assistência de acessibilidade para usários com deficiências que usam tecnologia para necessidades especiais como leitores de tela. Para saber mais veja Assistência para acessibilidade
  • Personalização de indicador de comentário: Usuários podem mudar a cor e tamanho do indicador.
  • Copiar imagens de Excel: compatível com a cópia de imagens de Excel e colar nas folhas. A imagem colada terá o mesmo tamanho, borda e fundo que tinha em Excel.
  • Efeitos de preenchimento e padrões: melhora a aparência de célula em uma spreadsheet aplicando padrões e efeitos de gradiente nas células. Para saber mais veja Padrões de preenchimento e preenchimento Gradiente.

 

Ajuda para seis linguagens

Além de Inglês, adicionamos assistência para Francês, Alemão, Espanhol, Japonês e Português! Se for um usuário de 4D v19 ou superior com um sistema operacional com uma das linguagens assistidas, vai reparar que todos os elementos de 4D View Pro agora são traduzidos (Ribbon, barra de ferramentas, menu contextual, mensagens de erro, etc.).

 

Fim do carregamento de documento

Dois novos eventos estão disponíveis para permitir descobrir quando seus cálculos terminaram:  On VP Range Changed e on Timer event.

Isso é útil para quando terminar de carregar um 4D View Pro muito grande com várias fórmulas, e os cálculos podem demorar para completar. Ou se usar uma área offscreen e quiser por exemplo exportar o documento em um formato PDF ou Excel, vai precisar esperar pelo final dos cálculos antes da exportação. Leia a documentação

 

Encontrar e substituir 

Às vezes quando inciializa o documento  4D View Pro, você precisa encontrar valores ou etiquetas/tags e substituí-las com dados de 4D. Agora isso é fácil com VP Find command. Esse comando permite encontrar dados, fórmulas ou etiquetas e substituí-los na follha inteira ou apenas em u ma parte da folha. Leia a documentação

 

Fórmulas 4D em folhas de cálculo 

O comando VP SET CUSTOM FUNCTIONS permite criar funções personalisadas 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, apenas passe a variável como um parâmetro para sua Formula. Além disso, o comando simplifica type-ahead/preenchimento automático para usuários finais oferecendo texto de ajuda e nomes de parâmetros. Em estruturas grandes, esse comando é muito mais rápido que usar o comando genérico SET FIELD TITLES. Leia a documentação 

Área Offscreen 

Já está disponível um novo comando para manipular os comandos e funções 4D View Pro em uma área offscreen: VP Run offscreen area. Para usar o comanod, passe a informação da área no parâmetro (por exemplo, o nome da área e o método chamado quando um evento for jogado na área 4D View Pro). Leia a documentação

 

Fusionar e separar células

Um novo conjunto de commandos à sua dispoição para ajudar a fusionar e separar grupos de células por programação:

  • Para criar uma célula fusionada: defina um intervalo com todas as células que queira combinar, depois passe o intervalo no parâmetro para o novo comando VP  ADD SPAN que combina as células em um único conjunto de células
  • Use o comando VP Get spans para recupar todas as células fusionadas.
  • Remova as células fusionadas em seu documento com o comando VP REMOVE SPAN . Leia a documentação

 

Fórmulas: recalcular, suspender e retomar

Três novos commandos estão disponíveis para ativar os cálculos  das fórmulas quando quisere:

  • VP RECOMPUTE FORMULAS – poara reclaular fórmulas quando houver mudanças nos dados.
  • VP SUSPEND COMPUTINGVP RESUME COMPUTING – permitem respectivamente que suspenda e que retome os cálculos. Leia a documentaçãon

 

Mais opções para personalizar worksheets

Um novo comando, VP SET SHEET OPTIONS, está disponível para definir várias opções de folha de trabalho de uma área 4D View Pro. Por exemplo, esse comando permite:

  • proteger uma folha de trabalho impedindo que suas células sejam editadas,
  • personalizar as cores das abas de sua folha de trabalho, congelar linhas, grades ou uma seleção de fundo e bordas,
  • gerenciar a visibilidade de grades da folha de trabalho, e cabeçalhos de linhas /colunas. Leia a documentação

 

Gerenciar linhas e colunas

4D v19 inclui novos commandos para gerenciar colunas e linhas. Esses comandos permitem adapter seus documentos para suas necessidades. Colunas e linhas podem ser adicionadas e removidads, ou definir o tamanho, visibilidade e etiquetas de cabeçalho com os comandos abaixo:

  • VP INSERT ROWS ou VP INSERT COLUMNS: Adiciona linhas ou colunas passando um intervalo que contenha a primeira coluna ou linha como um parâmetro e o número de linhas ou colunas a adicionar.
  • VP SET COLUMN COUNTVP SET ROW COUNT: Define o número de colunas e linhas exibidas. Como padrão, uma folha 4D View Pro contém 100 colunas e 1000 linhas. 
  • VP DELETE ROWS ou VP DELETE COLUMNS: Remove linhas especificar ou colunas. 
  • VP SET COLUMN ATTRIBUTESVP SET ROW ATTRIBUTES: Especifica larguras de coluna ou altura de linhas; adiciona uma quebra de página para impressão; second ou mostra colunas ou linhas; ativa ou proibe o redimensionamento de colunas ou linhas pelos usuários; muda etiquetas de cabeçalho de colunas ou linhas. Leia a documentação

 

Congelar linhas ou colunas

VP SET FROZEN PANES é um novo comando para ajudar a criar paineis. Se tiver uma grande tabela de dados, poderia ser útil manter uma área da folha de trabalho visível enquanto rola para outra área. Com esse comando, pode criar até 4 painéis em sua área: um à esquerda, um acima, um à direita e outro abaixo. Leia a documentação

 

 R-releases em profundidade