4D 20 R6 está aqui
Apresentando 4D 20 R6 – Disponível agora!
Aqui está uma rápida olhada no que esse lançamento traz:
Baixe 4D 20 R6 (Hot Fixes mensais disponíveis)
- Editor de Código: Personalize quais avisos são gerados para manter o foco em problemas críticos.
- Programação:
- Use novos operadores de comparação para verificar se objetos ou coleções compartilham a mesma referência.
- Acessar a classes de outros componentes através de namespaces para maior flexibilidade.
- Mantenha os dados consistentes entre sessões com o Armazenamento de sessão por ID.
- Automatize a extração de arquivos PDF/A3 para faturação eletrônica.
- Garantir a segurança por padrão com o Force Login para a API REST,
- e aumente o desempenho com agentes HTTP através da reutilização de ligações.
-
- Componentes GitHub: Gerencie componentes diretamente em 4D, com downloads automáticos de repositório e versionamento semântico para uma colaboração mais fácil.
- 4D Write Pro: Mantenha documentos limpos com o atributo wk empty datasource, controlando como tabelas aparecem quando fontes de dados estão vazias.
- Experiência do Usuário: Aproveite uma navegação de subformulário mais suave com comportamento de rolagem melhorado, melhorando a interação do usuário.
- ORDA: Utilize a nova função clean() para eliminar espaços vazios e manter as suas interfaces organizadas com menos esforço.
Qodly Studio para 4D: Interfaces de utilizador dinâmicas com estados de página
Com 4D 20 R6, Qodly Studio for 4D introduziu uma nova e excitante funcionalidade: Page States. Talvez já se tenha deparado com o nosso post anterior, mas vamos explorar o que torna esta funcionalidade tão valiosa para UIs dinâmicas.
Imagine UIs que se adaptam instantaneamente a diferentes passos ou contextos do utilizador.
Aqui estão alguns casos de uso comuns em que os Page States brilham:
- Ativar ou desativar componentes com base nas acções do utilizador (por exemplo, ativar o botão “Guardar” apenas quando todos os campos obrigatórios estiverem preenchidos).
- Alternar entre os modos claro e escuro com uma simples alternância.
- Restringir o acesso a acções (ler, atualizar, etc.) com base nos privilégios do utilizador.
Extração de ficheiros PDF/A3
Em posts anteriores, explorámos a incorporação de documentos em ficheiros PDF/A-3 usando 4D Write Pro, incluindo a geração de facturas electrónicas. À medida que a faturação eletrónica se torna obrigatória em vários países europeus – como a França e a Alemanha – a capacidade de extrair ficheiros XML incorporados destes PDFs está a tornar-se crucial. Mas a utilidade do PDF/A-3 vai para além das facturas; estes ficheiros podem incorporar vários tipos de documentos que podem exigir extração.
Enquanto ferramentas como Adobe Acrobat Reader oferecem extração manual, este post introduz um método eficiente e automatizado usando 4D 20 R6 para lidar facilmente com o processo.
Suporte REST e Qodly de Singletons
Com 4D 20 R5, lançamos singletons. E com 4D 20 R6, agora permitimos que chame diretamente as funções expostas de seus singletons compartilhados através de chamadas REST. Da mesma forma, pode usar as funções expostas de seus singletons compartilhados em eventos ao projetar suas Qodly Pages. Deixe-me aprofundar estas novas capacidades.
Integrar componentes 4D diretamente de GitHub
Muitos desenvolvedores 4D aproveitam o poder de componentes de terceiros encontrados no GitHub, particularmente aqueles listados no tópico 4d-component. 4D 20 R6 introduz uma nova caraterística fantástica: integrar diretamente esses componentes dentro do Component Manager.
Esse post de blog mergulha nos detalhes, tornando seu processo de desenvolvimento mais fácil e eficiente.
Personalizar a geração de avisos globais
Os avisos são uma ajuda valiosa para alertar os desenvolvedores 4D de potenciais erros de código. Com o lançamento de 4D 20 R6, agora é possível definir globalmente quais avisos são gerados, melhorando a experiência geral de desenvolvimento.
Permissões: Inspecionar privilégios de sessão para facilitar a depuração
Atualmente, pode beneficiar de uma poderosa funcionalidade para filtrar o acesso aos dados, o que é essencial para impedir o acesso malicioso à sua aplicação.
Esta funcionalidade utiliza privilégios que permitem determinadas acções nos seus dados. Esses privilégios são atribuídos aos usuários através de funções e armazenados na sessão durante a autenticação.
Em 4D 20R6, melhoramos essa funcionalidade permitindo-lhe inspecionar os privilégios na Session, o que é muito útil para depuração.
Continue lendo para aprender mais.
UX: Comportamento de deslocação melhorado em subformulários
Os formulários de utilizador têm como objetivo facilitar a vida aos utilizadores. Mas o que acontece quando a deslocação se torna uma batalha entre os subformulários e os seus conteúdos? Provavelmente já passou por isto: tenta deslocar-se através de uma caixa de listagem num subformulário, mas todo o subformulário se move. Ou, pior, tenta rolar o próprio subformulário, mas a caixa de listagem teima em ficar parada!
Isso foi melhorado com 4D 20 R6, tornando a ação mais natural.
Parâmetros personalizados para inicializar a área da Web incorporada
Uma vez que a área web embutida utiliza CEF como seu motor de navegador web, tem havido pedidos para um método para incorporar interruptores CEF adicionais, como o interrutor autoplay-policy, durante a inicialização da área.
A partir do 4D 20 R6, é possível gerenciar seus parâmetros personalizados usando um arquivo de parâmetros.
Comparação fácil de referências de objectos e colecções
Os objetos tornaram-se uma parte essencial da linguagem 4D e da Qodly.
Mas quando se declara uma variável deste tipo, define-se uma referência. Então, como saber se dois objectos são, de facto, apenas um e partilham a mesma referência?
A partir de 4D 20 R6, comparar referências de objetos é simples: entre com os operadores = e #!
Esse post do blog explora esses operadores e como eles ajudam a determinar se objetos compartilham a mesma referência. Vamos descobrir mais!
Contacte-nos
Tem uma pergunta, sugestão ou apenas quer entrar em contacto com os bloggers 4D? Deixe-nos uma linha!
* A sua privacidade é muito importante para nós. Por favor clique aqui para ver os nossos Política