Novità di 4D v20.

Tradotto automaticamente da Deepl

Questo documento raccoglie tutte le nuove funzionalità disponibili in 4D v20. Ogni funzione è accompagnata da un post sul blog che ne illustra gli esempi concreti. È possibile accedere a questi post del blog facendo clic sul titolo della funzione.

Inoltre, le sezioni con il tag blank sono relative a tutte le nuove funzionalità rilasciate tra 4D v19 R8 e 4D v20.

Questo documento è suddiviso in sei sezioni:

Improved network communication

Ecco QUIC blank

Poiché il numero di connessioni simultanee ai server di produzione più grandi che girano su 4D continua a crescere, garantire prestazioni ottimali è diventata una priorità assoluta per i team di sviluppo. Il protocollo QUIC è emerso come una soluzione promettente per affrontare questa sfida.

QUIC è un protocollo progettato per migliorare la velocità e le prestazioni delle reti lato server. Sviluppato da Google nell’ultimo decennio, QUIC sfrutta i vantaggi di UDP invece di TCP per consentire un recupero più rapido in caso di perdita di pacchetti, congestione e altri problemi. Oggi QUIC è molto utilizzato, ad esempio in HTTP/3 come “HTTP over QUIC” e supportato da tutti i principali browser, già utilizzato in più della metà delle connessioni ai server di Google. Facebook gestisce più del 75% del suo traffico internet utilizzando QUIC e molte applicazioni, come YouTube, Gmail o Uber, utilizzano QUIC per comunicare con i loro server.

Vi invitiamo a provare QUIC e a fornirci il vostro feedback per aiutarci a migliorare e perfezionare questa nuova ed entusiasmante tecnologia, aprendo la strada alla sua inclusione nelle future versioni di 4Dv20. Tenete presente che QUIC può migliorare la resilienza dell’infrastruttura di 4D, rendendola più adatta a gestire connessioni errate e altri problemi di rete.

Linguaggio 4D e altre caratteristiche di programmazione

Server Websocket integrato blank

Il protocollo WebSocket fornisce un canale di comunicazione persistente e full-duplex tra un client e un server. Consente il trasferimento di dati in tempo reale tra le due parti e permette una comunicazione più rapida ed efficiente.

4D v20 include ora un server WebSocket integrato, che consente agli sviluppatori di creare applicazioni Web in tempo reale in grado di gestire grandi volumi di dati e fornire un’esperienza utente senza soluzione di continuità.

Questo apre un mondo di possibilità per la visualizzazione di dati in tempo reale, applicazioni collaborative e applicazioni IoT che richiedono aggiornamenti istantanei.

Inizializzatore letterale di oggetti e collezioni blank

Gli oggetti e le collezioni possono essere inizializzati nel codice usando i comandi New object e New collection.

4D v20 ha introdotto una nuova e più leggibile sintassi per inizializzare oggetti e collezioni di grandi dimensioni o complessi nel codice: l’object literal e il collection literal.

Con i letterali di oggetto, è possibile inizializzare un oggetto con le sue proprietà e i suoi valori racchiusi tra parentesi graffe {}. Ad esempio, invece di usare il comando New object, si può creare un nuovo oggetto e inizializzarne le proprietà in una sola riga di codice come questo $object1 := {a : “foo”; b : 42+26; c : {}; d : [“coucou”; “rien”]}.

Analogamente, con i letterali di collezione, è possibile inizializzare una collezione con i suoi elementi racchiusi tra parentesi quadre [].

Nuovi comandi per bloccare il datastore blank

4D offre diversi modi integrati per eseguire il backup dei dati: Il backup 4D e l’uso di un server mirror. Con 4D v20, 4D espone comandi interni per bloccare il datastore, consentendo di copiare i dati mentre 4D è in esecuzione. Salutate ds.flushAndLock(), ds.locked(), e ds.unlock().

Integrazione automatica di più riviste blank

4D v20 introduce una nuova potente funzione che può migliorare notevolmente la produttività durante le operazioni di manutenzione del database. L’integrazione automatica di più riviste all’avvio del database consente di concentrarsi sullo sviluppo dell’applicazione, anziché dedicare tempo alle attività manuali di gestione del database.

Per sfruttare questa funzione, è sufficiente assicurarsi che sia attivata l’impostazione“Integra gli ultimi registri se il database è incompleto“, che è quella predefinita. Quindi, posizionare i file del diario che si desidera integrare accanto a quello attuale. 4D rileverà automaticamente le operazioni mancanti nel database di avvio e controllerà tutti i file di diario per determinare se il recupero è possibile. Se non ci sono problemi, integrerà le operazioni di tutti i diari senza alcun intervento da parte dell’utente.

Creare un’applicazione con i comandi 4D blank

4D ha continuamente aggiunto nuove funzionalità per aiutare gli sviluppatori a creare la propria catena di creazione, offrendo maggiore flessibilità e opzioni di personalizzazione per le loro applicazioni. Queste funzioni includono la possibilità di creare una cartella “.zip”, aggiungere informazioni aggiuntive come il copyright di un eseguibile o di una “dll” e creare un file “info.plist”.

Con il rilascio di 4D v20, sono state aggiunte due nuove funzioni per rendere ancora più semplice il processo di creazione di applicazioni standalone o client/server:

  1. Aggiunta di un’icona a un eseguibile.
  2. Generazione del file di licenza di distribuzione.

Uno strumento per l’esecuzione di codice 4D in CLI blank

4D v20 offre una nuova applicazione chiamata tool4d. Questa applicazione è un sottoinsieme di 4D progettato per la vostra catena di compilazione per automatizzare il processo di compilazione ed è dedicato all’esecuzione di script headless attraverso l’interfaccia della riga di comando. Ma fornisce anche il server LSP, che comunica con l’estensione VS Code.

Estensione 4D-Analyzer blank

Questa estensione ha ricevuto molta attenzione da parte degli sviluppatori di 4D e non potremmo esserne più felici!

4D ha introdotto il supporto per l’editor di codice di Visual Studio Code, consentendogli di gestire il codice 4D e di fornire funzionalità standard come l’evidenziazione della sintassi, il Vai alla definizione, la Guida alla firma e il completamento del codice.

4D v20 offre nuove funzionalità all’editor di Visual Studio Code grazie all’estensione 4D-Analyzer: Salutate la piegatura e l’indentazione del codice e il controllo della sintassi.

La funzione Distinct migliorata blank

La funzione distinct delle classi di selezione Collection ed Entity consente di recuperare un elenco di valori unici.

Con 4D v20, è possibile recuperare anche il numero di occorrenze di ciascun valore distinto. Inoltre, consente di recuperare tutti i percorsi degli attributi utilizzati in un campo oggetto. Questa funzionalità può essere utile quando si lavora con grandi insiemi di dati e si deve analizzare la frequenza di valori specifici.

Confronto con un valore indefinito blank

Con l’introduzione di ORDA e di altri oggetti in 4D, gli sviluppatori lavorano spesso con valori indefiniti, che a volte causano errori quando li si confronta con valori diversi.

A partire da 4D v20, è stato introdotto un nuovo miglioramento che consente agli sviluppatori di confrontare qualsiasi tipo di valore con un valore indefinito senza generare errori. Ciò significa che ora è possibile confrontare in modo sicuro valori non definiti con altri senza preoccuparsi di causare errori nel codice.

Introduzione delle ultime funzionalità di Trova e sostituisci blank

La funzione “Trova e sostituisci” nell’editor di codice esiste da molti anni. Gli sviluppatori possono cercare e sostituire il codice in modo rapido ed efficiente, soprattutto quando hanno a che fare con codebase di grandi dimensioni. 4D v20 apporta miglioramenti che saranno sicuramente apprezzati dagli sviluppatori che si affidano a questa funzionalità per snellire i loro flussi di lavoro di codifica:

  • conoscere il numero di occorrenze da sostituire,
  • conoscere la posizione dell’occorrenza corrente,
  • accesso permanente alle opzioni di navigazione Avanti e Precedente,
  • visualizzare una tavolozza invece di una finestra modale per limitare il numero di clic.

Passaggio dell’oggetto modulo ai comandi Stampa modulo e Carica moduloblank

Con 4D v20, il comando Form è supportato da Print form e FORM LOAD. Form, con le versioni precedenti disponibili per DIALOG o per le sottoforme, consente di ridurre drasticamente la necessità di variabili di processo e di scrivere codice più portatile e isolato. Si tratta di un gradito miglioramento di 4D che senza dubbio renderà la vita degli sviluppatori più semplice e produttiva.

Creare il proprio menu di aiuto blank

Con 4D v20, è possibile creare un menu “Help” personalizzato per la propria applicazione passando una collezione che descrive le voci del menu. Ciò consente, ad esempio, di fornire agli utenti un facile accesso alla documentazione, al supporto e ad altre risorse utili.

Nuove funzioni utili per le raccolte blank

4Dv20 offre una serie di funzioni per manipolare le collezioni. Oltre agli oltre 40 metodi già presenti nella versione precedente, questa release offre:

  • first() e last(), come indicano i loro nomi, consentono di accedere al primo e all’ultimo elemento di una collezione.
  • La funzione at() è anche un’alternativa alle parentesi quadre (col[x]) con un vantaggio: il valore può essere negativo per ottenere gli elementi dalla fine.
  • La funzione flat() è una funzione più innovativa e sarà molto utile in alcuni casi. Permette di appiattire collezioni che possono contenere collezioni (che possono anche includere collezioni, ecc.).
  • La funzione includes() è comoda perché permette di sapere se una collezione contiene questo o quell’elemento di quasi tutti i tipi… testo, numeri, date… e persino riferimenti di oggetti o collezioni.
  • La nuova funzione reduceRight() che è l’equivalente ottimizzato di reverse().reduce()
  • La funzione flatMap() ci permette di eseguire, in un’unica operazione, un’operazione di tipo map() seguita da una flat() – una funzione di cui abbiamo parlato in precedenza.

Formato PDF per l’anteprima di stampa su Windows blank

Il formato PDF è diventato una valida alternativa a XPS per l’anteprima di stampa su Windows, offrendo agli utenti un’opzione nuova e più accessibile. La decisione di Microsoft di rendere il visualizzatore XPS una funzione opzionale di Windows ha causato problemi a molti utenti durante la distribuzione delle applicazioni, impedendo agli utenti finali di visualizzare l’anteprima delle stampe. Sebbene l’installazione del visualizzatore XPS gratuito sia un processo semplice, alcuni amministratori esitano a installare funzionalità aggiuntive, in particolare negli ambienti Remote Desktop.
Fortunatamente, 4D v20 offre ora la possibilità di utilizzare il formato PDF per l’anteprima di stampa. Poiché quasi tutte le versioni attuali di Windows hanno XPS o PDF preinstallati, gli utenti finali non dovrebbero più incontrare problemi con l’anteprima di stampa. Questa nuova opzione offre una soluzione più flessibile ed efficiente che soddisfa le esigenze sia degli utenti finali che degli amministratori.

Tornare indietro. Continua. Interruzione. E altro ancora

Abbiamo ascoltato e seguito le vostre richieste di funzionalità nel Forum 4D con diversi miglioramenti del linguaggio 4D!

  • A cominciare dalle dichiarazioni che consentono di uscire da un blocco di codice:
    • La parola chiave return termina l’esecuzione del metodo o della funzione in cui compare e restituisce il controllo al metodo chiamante. Può anche restituire un valore opzionale.
    • La parola chiave break termina il ciclo che la contiene. L’istruzione successiva eseguita è quella immediatamente successiva al corpo del ciclo.
    • L’istruzione continue termina l’esecuzione delle istruzioni nell’iterazione corrente del ciclo e continua l’esecuzione del ciclo con l’iterazione successiva.
  • Seguita dalla valutazione del cortocircuito: In un’espressione che utilizza un operatore AND o OR, una valutazione a corto circuito significa che il secondo argomento viene eseguito o valutato solo se il primo argomento non è sufficiente a determinare il valore dell’espressione. Aggiungiamo due nuovi operatori per farlo:
    • && per l’operatore AND
    • || per l’operatore OR
  • E poi c’è un operatore ternario, che è una condizione seguita da un punto interrogativo ( ? ), un’espressione da valutare se la condizione è vera seguita da un punto e virgola (:) e infine l’espressione da valutare se la condizione è falsa: condizione? valore Se vero: valore Se falso.

Gestione degli errori

4D v20 offre nuove possibilità di gestione degli errori. D’ora in poi è possibile definire un gestore di errori globale che sarà efficiente per tutti i contesti di esecuzione (processi, worker, attributi calcolati ORDA, funzioni ORDA e così via). Se non si definisce un gestore di errori locale in un nuovo processo/lavoratore, il gestore di errori globale verrà invocato automaticamente. Ciò significa che non si dovranno più visualizzare finestre di errore sul server o errori non catturati.

Visualizzazione dei componenti delle classi nell’esploratore dei metodi

4D consente alle applicazioni ancora in esecuzione in modalità binaria di sfruttare le funzionalità delle classi utilizzando un componente (in modalità progetto) per creare e utilizzare le proprie classi dall’applicazione (basata sulla modalità binaria). Questa funzione include suggerimenti e supporto per il completamento del codice per facilitare la scrittura del codice.

Per rendere l’esperienza di codifica ancora più semplice, 4D v20 introduce una nuova funzione. D’ora in poi, è possibile visualizzare un elenco di tutte le classi di componenti disponibili nell’esploratore dei metodi, in modo da decidere in un batter d’occhio quali funzioni utilizzare nel codice.

Supporto di numeri interi più grandi di integer32

Avete bisogno di numeri più grandi di 2 miliardi (32 bit) con un’elevata precisione per contatori o simili? Abbiamo migliorato i reali e il modo in cui vengono gestiti per permettere questo. Sebbene i reali siano noti per la loro imprecisione, sono precisi al 100% anche per numeri molto grandi, purché non utilizzino la virgola decimale (=integri). Ciò consente di utilizzare numeri fino a 53 bit, o più esattamente, [-(2^53)+1, (2^53)-1]. Quindi un intervallo da -9.007.199.254.740.992 a 9.007.199.254.740.992 sarà rappresentato esattamente.

La conversione da o verso il testo era limitata all’uso della notazione scientifica a 12 cifre, con conseguente perdita di precisione. Con 4D v20, abbiamo migliorato la precisione e la conversione di qualsiasi numero reale (che presenta un numero intero) in un testo. Il miglioramento della conversione in stringa riguarda il comando String() e i comandi JSON e XML che restituiscono numeri in forma di stringa.

Supporto di formule in collezioni e comandi di callback

Per semplificare l’uso delle collezioni con un metodo membro che necessita di un metodo di callback, 4D consente di utilizzare una formula per definire un callback:

Consentire ai componenti di pubblicare classi

Supponiamo che l’applicazione sia ancora in esecuzione in modalità binaria. In tal caso, questa funzione vi consentirà di trarre vantaggio dalle classi e dallo sviluppo orientato agli oggetti, utilizzando un componente (in modalità progetto) per creare e utilizzare le vostre classi dalla vostra applicazione (basata sulla modalità binaria). Pertanto, a partire da 4D v20, è stata aggiunta una nuova sezione Componente alle Impostazioni struttura -‘ Generale che consente di configurare il modo in cui le classi e le funzioni del componente saranno esposte nell’editor dei metodi di 4D una volta installato il componente.

Inoltro di parametri da una funzione o da un metodo a un altro

Con 4D v20, gli sviluppatori non devono più gestire controlli complessi sui parametri (conteggio dei parametri, tipi di valore) quando chiamano una funzione e passano i parametri.

È disponibile un nuovo comando, Copia parametri, che consente di passare facilmente i parametri utilizzati per una chiamata di funzione o metodo a un’altra funzione/metodo. Il risultato è un codice più leggero, elegante e facile da leggere.

Comunicazione tra form e subform

A partire da 4D v20, l’associazione di una variabile a una sottomaschera ha arricchito le possibilità di interfaccia e comunicazione tra form e sottomaschere. I mezzi di comunicazione sono ora semplificati da due nuovi comandi: OBJECT Get subform container value e OBJECT SET SUBFORM CONTAINER VALUE.

Nuovo comando per ottenere informazioni dettagliate sulle licenze

4D v20 viene fornito con un nuovo comando che fornisce tutte le informazioni sull’utilizzo delle licenze: Get License Usage. Abbiamo anche ampliato i registri di diagnostica. Grazie a questa funzione, sarete in grado di seguire il consumo di licenze sul vostro server, ottimizzare l’uso e pianificare le vostre esigenze future.

Più opzioni per il comando OBJECT SET enterable

Il comando OBJECT SET ENTERABLE è stato migliorato, consentendo di gestire meglio un campo non modificabile. Come terzo parametro, il comando supporta un booleano o un intero.

  • È quindi possibile utilizzare il comando come prima, senza modificare il codice, passando un booleano. Viene modificata solo la proprietà inseribile (Falso o Vero).
  • Oppure si può passare un numero intero. In questo modo, è possibile impostare la proprietà enterable e focusable per il campo.

Accesso ai parametri del metodo che non esistono

4D v20 consente di accedere a tutti i parametri del metodo senza errori, anche se alcuni non sono stati passati dal chiamante. Il codice è più semplice e leggibile senza la ripetizione della parola chiave “if”.

Creare un attributo blob in un oggetto

Con l’introduzione delle classi, è aumentata la necessità di memorizzare i dati negli oggetti, soprattutto quelli sotto forma di blob. Per questo motivo, 4D v20 supporta l’incapsulamento dei blob negli oggetti.

Oltre all’aspetto della memorizzazione, poiché l’oggetto blob è un tipo di riferimento, l’utilizzo della memoria sarà inferiore e le prestazioni di velocità saranno notevolmente migliorate.

Gestione del Byte Order Mark (BOM) e della fine della linea (EOL)

4D si è evoluto senza problemi per seguire le migliori pratiche relative alla gestione di alcuni caratteri invisibili nei file di testo. Ecco perché d’ora in poi 4D scrive file di testo senza BOM. Inoltre, su macOS, 4D utilizza LF come carattere EOL. Questo è completamente automatico per tutti i file scritti da 4D, come 4DSettings, 4dm, 4DForm, ecc.

Per quanto riguarda le impostazioni di compatibilità, sono disponibili nuove opzioni che consentono a TEXT TO DOCUMENT e File.setText() di generare file senza BOM e di utilizzare LF come carattere EOL su macOS quando mancano i parametri opzionali “charSet” e “breakMode”. Per ulteriori dettagli, consultare la documentazione.

File .gitignore predefinito nei nuovi progetti

La modalità progetto consente di tenere facilmente traccia delle modifiche con Git (sistema di controllo della versione), ma spesso non si desidera tenere traccia dei file del progetto nel repository Git. 4D v20 consente di definire cosa non tenere traccia in un nuovo progetto, aggiungendo automaticamente un file .gitignore predefinito nella cartella del progetto con un elenco di file e cartelle predefinite da escludere.

Firma automatica dei componenti su Mac

Con 4D v20 e su Mac, 4D firma automaticamente i componenti costruiti utilizzando i certificati definiti dall’utente o una firma Adhoc se non viene specificato alcun certificato. Ciò consente agli sviluppatori di componenti di distribuire componenti firmati in modo che gli utenti finali non debbano firmarli prima di utilizzarli.

Mostrare la documentazione online direttamente dall’editor di codice

È possibile accedere ai dettagli di una funzione di classe senza dover cercare nel sito della documentazione. È sufficiente premere il tasto F1 o fare clic sulla voce Goto definition... del menu contestuale.

Posta elettronica

POP3: scaricare solo l’intestazione della postablank

Quando si recuperano i messaggi di posta elettronica utilizzando POP3, è possibile recuperare solo le intestazioni del messaggio (che includono informazioni quali il mittente, l’oggetto e la data) senza scaricare l’intero corpo del messaggio.

Il recupero delle sole intestazioni dei messaggi può essere utile quando si vuole scorrere rapidamente l’elenco dei messaggi nella cassetta postale per decidere quali scaricare e leggere per intero.

A partire da 4D v20, è stato aggiunto un nuovo parametro alla funzione POP3Transporter.getMail() per ricevere i messaggi di posta elettronica senza il corpo.

IMAP: Id casella di posta e parole chiave della postablank

4D v20 introduce due pratiche funzioni per i trasportatori IMAP:

La prima è la possibilità di gestire parole chiave personalizzate per le e-mail quando si interagisce con specifici server e client di posta IMAP. Le parole chiave personalizzate consentono di etichettare i messaggi di posta elettronica con particolari etichette o categorie, rendendo più facile organizzarli e trovarli in seguito. Grazie a questa nuova funzione di 4D v20, è possibile aggiungere, rimuovere o elencare parole chiave personalizzate per le e-mail utilizzando il trasportatore IMAP.

La seconda caratteristica è il supporto dell’ID della casella di posta elettronica in IMAP Transporter. Quando si lavora con le caselle di posta elettronica IMAP, queste possono essere rinominate o spostate, rendendo difficile il loro monitoraggio nel tempo. Con il supporto dell’ID mailbox in 4D v20, è possibile identificare una mailbox specifica anche se è stata rinominata o spostata. Questo può essere utile per tenere traccia di caselle di posta essenziali, come quelle che contengono messaggi archiviati o messaggi di mittenti specifici.

Supporto nativo di Microsoft 365

Poiché sempre più clienti passano a Microsoft 365 per le loro esigenze di posta elettronica, 4D v20 offre una soluzione per semplificare la gestione delle e-mail.

Le ultime funzionalità di automazione consentono di automatizzare facilmente le operazioni di posta elettronica di Microsoft 365 utilizzando i comandi integrati. Queste operazioni includono:

  • inviare, ricevere e-mail ed elencare le cartelle della casella di posta elettronica
  • spostare un’e-mail da una cartella all’altra
  • rispondere a un’e-mail e creare una conversazione,
  • creare una bozza di e-mail e salvarla nella cartella desiderata,
  • e cancellare un’e-mail.

Microsoft365: gestione delle cartelle blank

Microsoft sta deprecando l’autenticazione di base per IMAP e POP3, il che significa che gli utenti dovranno utilizzare un metodo di autenticazione più sicuro per accedere ai propri dati e-mail. L’API Graph è un modo più sicuro e moderno per accedere ai dati di Microsoft 365, compresi quelli delle e-mail.

Con le nuove funzioni di 4D NetKit, è ora possibile gestire (creare, eliminare, rinominare e ottenere informazioni) programmando le caselle di posta elettronica utilizzando l’API Graph di Microsoft.

Ottenere informazioni sugli utenti da Azure

Oltre a fornire l’accesso alle applicazioni di Office, Microsoft offre una Active Directory basata su Azure, che consente agli utenti di accedere a servizi come Microsoft Sharepoint o OneDrive utilizzando un browser Web. Tutti i servizi Microsoft utilizzano lo stesso Single Sign-On, basato sull’indirizzo e-mail. A partire da 4D v20, 4D NetKit vi permette di far parte di questo concetto, consentendo agli utenti di accedere alla vostra applicazione utilizzando le loro credenziali aziendali abituali.

Oltre a consentire il Single Sign-On, permette di recuperare informazioni su un utente autenticato, come l’e-mail, il reparto e il numero di telefono. Se l’amministratore lo consente, è possibile recuperare informazioni sui colleghi dell’utente all’interno della stessa azienda.

Supporto Bcrypt per le password

A partire da 4D v20, tutte le password sono sottoposte a hash con l’algoritmo bcrypt. Si tratta di un algoritmo che richiede molto più tempo per essere calcolato, tanto da impedire agli algoritmi di forza bruta di recuperare la password originale.
Per metterlo in atto, tutto è automatico. Non è necessario toccare alcuna impostazione o riga di codice. Quando la password viene modificata nella casella degli strumenti o tramite i comandi CAMBIA PASSWORD o IMPOSTA PROPRIETÀ UTENTE, l’hash di bcrypt viene memorizzato. Durante l’autenticazione, 4D riconosce automaticamente se la password è memorizzata con hash legacy o bcrypt, in modo che gli utenti possano continuare a connettersi senza cambiare la password.

Miglioramenti al client HTTP

Per continuare a migliorare la sintassi e la funzionalità di 4D, abbiamo deciso di modernizzare i comandi del client HTTP in 4D. 4D v20 ha introdotto un nuovo modo di eseguire le richieste HTTP: le classi HTTP. Inoltre, sono state introdotte alcune funzionalità delle classi HTTP, tra cui le risposte compresse, le risposte a pezzetti e i reindirizzamenti.

Editor di codice

Salto rapido alle diverse funzioni di una classe

Leclassi sono composte da diverse funzioni di lunghezza variabile. Non è quindi sempre facile trovare la funzione da modificare o passare da una funzione all’altra. È possibile utilizzare explorer, che visualizza le classi e le funzioni, ma quando si sta codificando nella finestra dell’editor, non si vuole perdere tempo a cambiare finestra.

Con 4D v20, l’elenco delle funzioni della classe viene visualizzato nella barra degli strumenti dell’editor di codice, consentendo di passare rapidamente a una funzione specifica.

Tag dei commenti

4D v20 porta i commenti a un nuovo livello grazie ai tag per organizzare meglio i commenti. I tag vengono utilizzati per classificare i commenti semplicemente inserendo il tag all’inizio della riga del commento. Abbiamo messo a disposizione tre tag:

  • MARCA
  • TODO
  • FISSO

Il tag MARK consente di suddividere il codice in sezioni. È possibile scriverlo in tre modi diversi. Gli altri due tag TODO e FIXME sono scritti in modo simile. L’interesse è che hanno icone diverse nell’elenco, il che consente di organizzare il codice per dare priorità alle azioni future.

Sintassi del controllo degli oggetti

Ilcompletamento automatico semplifica la scrittura del codice e limita gli errori nei nomi delle funzioni. Ma non li evita del tutto: è facile invertire due lettere o dimenticare una lettera maiuscola. E poi perdere tempo a cercare il motivo per cui il codice non funziona. Quindi cosa c’è di meglio che chiedere a 4D di controllare se le classi o le funzioni esistono già? A partire da 4D v20, nell’editor di codice viene visualizzato un avviso se si chiama una funzione che non esiste.

Personalizzazione dell’editor di codice

Oltre alla personalizzazione della finestra e dell’area del codice, 4D v20 offre due nuove opzioni di personalizzazione:

  • Mostrare o nascondere i dieci elenchi di appunti.
  • L’icona “mostra/nascondi elenchi” è stata spostata in basso a destra accanto agli elenchi.

Navigazione semplificata tra codice, documentazione ed esploratore

Quando si crea un modulo o si scrive una nuova funzione o un nuovo metodo, di solito è necessario:

  • accedere all’explorer per compilare il modulo nella sua cartella
  • accedere all’explorer per scrivere la documentazione del metodo
  • consultare la documentazione di un comando sul sito online di 4D
  • vedere la documentazione di un metodo di un componente
  • accedere al codice della funzione che vogliamo utilizzare nel nostro metodo per apportare alcune modifiche
  • navigare facilmente tra le diverse funzioni di una classe

In 4D v20 abbiamo aggiunto voci di menu e un nuovo elenco nell’editor di codice, che consentono di navigare meglio tra i diversi elementi di un progetto.

Mostra la documentazione online direttamente dall’editor di codice

Con 4D v20, è possibile accedere ai dettagli di una funzione di classe senza dover cercare nel sito della documentazione. È sufficiente premere il tasto F1 o fare clic sulla voce Goto definition... del menu contestuale.

Web

Debug sul server con sessioni Web scalabili

Lesessioni web scalabili hanno rappresentato un miglioramento significativo. Permettono di utilizzare i tag 4D, le azioni 4D e l’API REST in processi preemptive, anche in modalità interpretata, su un server 4D. Tuttavia, per il debug, era necessario aprire l’ambiente di sviluppo sul server per farlo passare alla modalità cooperativa, poiché la finestra del debugger non può essere aperta con processi preemptive. A partire da 4D v20, abbiamo semplificato il debug sul lato server semplicemente collegandovi il debugger.

Nuovo motore di rendering del sistema Windows

A partire da 4D v20, se si utilizza il motore di rendering di sistema, 4D utilizza Microsoft Edge WebView2. Questo cambiamento consente di usufruire di un browser moderno con le ultime funzionalità e aggiornamenti di sicurezza. Ad esempio, Microsoft Edge può essere utilizzato per visualizzare i PDF.

File e cartelle

Gestione dei file

Quando si tratta di scrivere e leggere, le funzioni setText e getText sono a disposizione per leggere o scrivere l’intero contenuto. 4D v20 introduce i file handle nel caso in cui si desideri leggere o aggiungere una o più righe a un documento esistente.

I file handle sono oggetti creati sulla base degli oggetti “File” e dispongono di funzioni per accedere a qualsiasi parte dei documenti e, da lì, leggere o scrivere il loro contenuto in modo sequenziale.

SUPPORTO DI LZMA, IL NUOVO ALGORITMO DI COMPRESSIONE

Con 4D V20, il comando Zip Create Archive supporta un nuovo algoritmo di compressione: LZMA. Il vantaggio di questo algoritmo è che crea archivi più piccoli rispetto all’algoritmo di compressione zip standard. È possibile passare un oggetto “zipArchive” al comando per personalizzare il proprio zip. Questo oggetto consente di scegliere l’algoritmo di compressione, l’algoritmo di crittografia e altre opzioni.

Casella di riepilogo

Altezza automatica delle righe nelle caselle di riepilogo basate sulle collezioni

L’altezza automatica delle righe era già possibile per le caselle di riepilogo basate su array, che permettevano di adattare automaticamente l’altezza di ogni riga al suo contenuto. Con 4D v20 questa possibilità viene estesa alle caselle di riepilogo basate su raccolte e selezioni di entità.

Dite addio al tasto ALT

Per quanto riguarda le caselle di riepilogo e l’azione di trascinamento, a partire da 4D v20 non sarà più necessario tenere premuto il tasto Alt per spostare più elementi contemporaneamente.

Imbottitura orizzontale e verticale delle celle

Con 4D v20 la potenza delle caselle di riepilogo viene ampliata grazie a due nuove proprietà: il padding orizzontale e verticale(i margini interni o lo spazio tra il contenuto di un elemento e il suo bordo). Queste proprietà offrono alle caselle di riepilogo nuove possibilità di presentazione e l’interfaccia avrà un aspetto ancora più professionale.

Queste proprietà possono essere impostate globalmente per l’intera casella di riepilogo o per ciascun elemento, come colonne, intestazioni o piè di pagina. Una volta definite per la casella di riepilogo, saranno applicate a ogni sotto-oggetto della casella di riepilogo per eredità. Naturalmente, ogni sotto-oggetto può avere le proprie impostazioni.

L’impostazione del padding può essere effettuata

  • in modalità progettazione, dall’elenco delle proprietà in “Coordinate e dimensionamento”.
  • oppure tramite programmazione, utilizzando il comando LISTBOX SET PROPERTY grazie a due nuove costanti, lk cell horizontal padding e lk cell vertical padding.

Sviluppare contemporaneamente su 4D Server in modalità progetto

Se siete tra gli sviluppatori che hanno chiesto la possibilità di lavorare simultaneamente con i compagni di squadra su un unico server di sviluppo, allora 4D v20 esaudirà il vostro desiderio, grazie a una nuova modalità di connessione di un client 4D a un server 4D: la modalità di sviluppo.

Gli sviluppatori possono modificare la struttura del database, i metodi, i moduli e le impostazioni in modalità sviluppo. Il sistema di chiusura è stato modificato per offrire le stesse funzionalità della modalità binaria.

Prova dell’applicazione Windows SDI

È passato molto tempo da quando era possibile fornire ai clienti applicazioni unite in modalità SDI. Si trattava di un enorme passo avanti per la UX delle applicazioni Windows.

4D v20 semplifica il test di un’applicazione SDI: è possibile visualizzare il risultato dell’applicazione senza dover creare un’applicazione standalone o client.

Worker di sistema: Avvio di un processo esterno in modo asincrono

È disponibile un’altra funzione molto richiesta. A volte è necessario eseguire processi in background ed eseguire azioni specifiche basate sul codice di output non appena questo è disponibile mentre il processo è ancora in esecuzione. Ad esempio, per visualizzare una barra di avanzamento. 4D consente di avviare un processo in background con la nuova classe 4D.SystemWorker e di eseguire automaticamente i metodi di callback quando il processo restituisce informazioni. In questo modo, se lo si utilizza con un’interfaccia, quest’ultima rimane disponibile per l’utente mentre il processo esterno è in esecuzione e, una volta terminato, è possibile visualizzare il risultato al client.

Riorganizzazione dei registri diagnostici

I registri di diagnostica sono diventati sempre più importanti per la risoluzione dei problemi. Li abbiamo riorganizzati completamente, migliorandone il contenuto e aggiungendo un modo per filtrare il contenuto (livelli di registro come trace, debug, info, warn ed error). Grazie al nuovo parametro del database Livello di registro diagnostico, è possibile controllare il flusso dei registri nel registro diagnostico e mantenerlo piccolo, pur registrando ciò che serve davvero.

File di configurazione per il log

Nell’ambito del progetto di miglioramento dei registri, 4D aggiunge due nuove funzionalità:

    • la possibilità di mettere istantaneamente in pausa la registrazione
    • e la possibilità per i team di assistenza di aiutare rapidamente i clienti a configurare i loro registri attraverso un file di configurazione.

Interfaccia utente

Evoluzione degli oggetti moduloblank

Per consentire di realizzare le interfacce più belle, sono disponibili nuove possibilità:

  • Per i pulsanti, i pulsanti di opzione e le caselle di controllo, abbiamo aggiunto nuove impostazioni per il testo e l’icona. La proprietà “Allineamento del testo” e la nuova “Titolo dell’abbraccio dell’immagine”.
  • Per i pulsanti di opzione e le caselle di controllo, è stato migliorato il numero di stati dell’icona (Vero, Falso, Rollover e Disabilita) per consentire una migliore resa all’utente finale.

Angoli rotondi

Inoltre, 4D v20 ha aggiunto la possibilità di arrotondare gli angoli dei testi statici e dei testi di input grazie al nuovo attributo “Raggio d’angolo”. La specificazione del suo valore può essere effettuata tramite l’interfaccia utente (l’elenco delle proprietà), i CSS o il codice.

DPI elevati su Windows: Supporto per schermi ad alta risoluzione

High DPI è l’acronimo di High Dots Per Inch. Rappresenta la densità di pixel; maggiore è il DPI, maggiore è la densità di pixel. Su schermi da 4K, la densità di pixel può essere così elevata che la visualizzazione, come di consueto, renderebbe tutte le icone e i controlli estremamente piccoli. Per questo motivo, Windows consente di modificare la scala di testo, icone e controlli. Sugli schermi 4K, questa funzione è attivata per impostazione predefinita. Abbiamo supportato per la prima volta i DPI elevati su Mac e ora è pienamente compatibile anche con Windows. Il risultato è una migliore qualità del testo e delle immagini.

Sviluppare con 4D in un ambiente buio su macOS

Dalla versione 4D v19, è possibile creare applicazioni su macOS che supportano la modalità scura, in modo da poter accontentare i propri utenti permettendo loro di scegliere applicazioni in stile chiaro o scuro. Con 4D v20, offriamo a voi sviluppatori la possibilità di scegliere quando sviluppare la vostra applicazione. 4D Developer Edition si integra perfettamente con l’aspetto chiaro o scuro di macOS.

Ottimizzazione della barra degli strumenti dell’editor di strutture

La barra degli strumenti è stata modificata per modernizzare e standardizzare tutte le finestre di 4D.

Quando si passa il mouse su tabelle, campi o relazioni, nella barra di stato vengono visualizzate informazioni utili. La novità di 4D v20 è la visualizzazione dei nomi delle relazioni direttamente nella barra di stato. Non è più necessario aprire la finestra delle proprietà.

Esploratore dati

Il Data Explorer di 4D è un interfaccia del browser web utilizzabile dall’amministratore e dallo sviluppatore in remoto (in modo sicuro con una connessione HTTPS) o in locale sullo stesso computer del database aperto.

Con 4D v20, il Data Explorer offre ora due importanti miglioramenti.

Visualizzazione delle relazioni tra i dati

Laprima funzione consente divisualizzare le relazioni tra i dati, facilitando la navigazione e la localizzazione delle informazioni rilevanti all’interno del database.

Esploratore dati incorporato in 4Dblank

Ilsecondo aggiornamento è l’aggiunta di un’ icona per il Data Explorer nella barra degli strumenti, rendendo ancora più facile aprirlo in 4D invece che con un browser web esterno. Gli utenti possono accedere al Data Explorer direttamente dalla barra degli strumenti con un solo clic, risparmiando tempo e migliorando la produttività.

Distribuzione

UTILIZZARE APPLICAZIONI CLIENT DUPLICATE E UNITE

In qualità di editore di software, alcuni dei vostri clienti a volte hanno molte istanze della vostra applicazione server unificata, ad esempio un’applicazione server unificata per ogni società del gruppo. In questo tipo di architettura di distribuzione, i funzionari dei vostri clienti vi chiedono spesso di installare sul loro computer un’applicazione client unificata per ogni applicazione server unificata, perché vogliono usare il software per ogni azienda. D’ora in poi, avrete a disposizione una nuova chiave buildApp per far sì che ogni applicazione client unita duplicata utilizzi la propria cartella delle preferenze utente (in base al percorso dell’applicazione): ClientUserPreferencesFolderByPath.

Gestione dei file di directory nei progetti server uniti

Sul lato server, l’utente corrente è sempre Designer; pertanto, l’accesso a runtime explorer è sempre consentito. Se si preferisce modificare questo comportamento, 4D v20 consente di limitare l’accesso degli amministratori a Data Explorer e Runtime Explorer nei server uniti distribuiti.

Riduzione delle dimensioni delle applicazioni client e altro ancora

4D v20 apporta numerosi miglioramenti alla costruzione delle applicazioni 4D. Per cominciare, è possibile rimuovere le librerie non necessarie (come CEF/Web Area, PHP, Mecab e 4D Updater) per ridurre le dimensioni delle applicazioni. Abbiamo anche modificato la directory finale quando si costruisce una struttura compilata, in modo da soddisfare coloro che utilizzano più versioni compilate della stessa struttura. Per i nostri clienti giapponesi, abbiamo unito la versione giapponese di 4D e quella internazionale su macOS.

Semplificazione della costruzione di applicazioni client/server multipiattaforma su Windows

Con l’introduzione di Silicon, la creazione di applicazioni client/server multipiattaforma è cambiata. Finché si costruisce il server su Mac, non è un problema, perché si può compilare per entrambe le piattaforme Intel e Silicon. Su Windows, invece, non è possibile compilare per i Mac Silicon. 4D v20 introduce una nuova funzione cheriduce il numero di file da trasferire dal Mac alla macchina Windows. 4D genera anche una cartella Database compilato quando si costruisce il client su Mac. Questa cartella contiene solo il codice compilato per l’applicazione e, in quanto tale, è relativamente piccola.

CI/CD: costruire la struttura o il componente compilato con Build4D

Con l’introduzione della modalità progetto, è piuttosto facile manipolare i componenti dei progetti. Nelle ultime release abbiamo aggiunto diverse funzionalità che consentono di creare una catena di compilazione personalizzata, adatta al proprio team, ai propri metodi di lavoro e alle proprie esigenze.

Per aiutarvi a creare la vostra catena di compilazione o a integrare 4D in uno strumento di integrazione continua, abbiamo sviluppato un componente chiamato Build4D, disponibile su GitHub con i sorgenti. Per questo primo passo, Build4D consente di creare una struttura compilata e un componente. Continueremo ad arricchirlo per consentirvi di gestire un’applicazione a utente singolo, client o server.

Condividere le risorse locali tra gli utenti ON Windows Remote Desktop Services

Se siete tra gli sviluppatori che hanno chiesto una funzione che permettesse di scaricare le risorse locali in una cartella condivisa con Windows Remote Desktop Services invece che nella cartella dell’account utente, 4D v20 porta buone notizie.

Abbiamo ottenuto un’ottimizzazione ripensando l’architettura attuale e sviluppando una nuova opzione per i progetti nel processo BuildApp per consentire la mutualizzazione delle risorse locali.

È attivata da questa nuova chiave XML di BuildApp: /Preferenze4D/BuildApp/CS/CondivisioneRisorseLocaliSuWindowsClient

Questa ottimizzazione comporta quanto segue:

  • Un guadagno di tempo perché le Risorse Locali non vengono più scaricate dal server da ogni utente,
  • e un guadagno di spazio su disco poiché, anche in questo caso, le risorse locali non vengono duplicate per ogni utente in un ambiente Remote Desktop Service.

ORDA

4D v20 continua ad apportare miglioramenti a ORDA.Object Relational Data Access è un modo innovativo di accedere ai dati che combina i vantaggi della programmazione orientata agli oggetti con quelli dei database relazionali, consentendo agli sviluppatori di concentrarsi sulla soluzione dei problemi aziendali piuttosto che sulla gestione dell’accesso ai dati.

4D v20 porta con sé:

Gestione dei permessi degli utenti (REST Server)

Oltre alla possibilità di esporre o meno una classe di dati e alcuni dei suoi attributi come risorsa REST – un modo comodo per limitare l’accesso ai dati – 4D fa un ulteriore passo avanti e offre un sistema potente e completamente personalizzabile per proteggere i dati da utenti non autorizzati. Un sistema di protezione dei dati dipende da chi vi accede e da quali dati vi accedono.

Questa nuova funzione si basa sui concetti di ORDA e sulle sessioni web scalabili. Copre tutti i processi web, come le richieste REST, le richieste ricevute su un datastore remoto e i processi web come 4DACTION o 4D tag.

Ottimizzazione delle prestazioni con controllo completo delle richieste REST

4D v20 offre un migliore controllo sui contesti ORDA e sulla cache sia per Client/Server che per REST per migliorare le prestazioni.

Attributi calcolati

Un nuovo modo per raccogliere ancora di più la logica aziendale nelle classi e nelle classi ORDA! Sono finiti i tempi in cui dovevate definire le formule aziendali nell’interfaccia utente 4D (come le concatenazioni di stringhe o il calcolo dell’IVA). Ora potete definire calcoli complessi direttamente nelle vostre Classi e utilizzare il risultato come fareste per qualsiasi altro campo della struttura, ad esempio nelle API di Rest, nelle applicazioni mobili o nell’interfaccia utente basata su ORDA.

Alias ORDA

4D v20 viene fornito con un nuovo concetto ORDA: Gli alias. Sono la continuazione logica e complementare degli attributi calcolati. Come suggerisce il nome, un alias è di fatto una scorciatoia per un oggetto del datastore esistente. Sono definiti nella “entity dataclass” come gli attributi calcolati. Mentre un attributo calcolato può elaborare qualsiasi calcolo o formula, un alias è solo una scorciatoia, che rende lo sviluppo più rapido e semplice. Un esempio di utilizzo è quello di fornire un facile accesso agli attributi correlati (il che significa nascondere la complessità di un database correlato).

Disabilitare la mappatura predefinita del valore NULL su un valore vuoto

Quando si crea un nuovo campo nel database, 4D consente di scegliere o meno di mappare i valori NULL in valori vuoti. A partire da 4D v20, nei nuovi progetti, 4D non mapperà più, per impostazione predefinita, il valore NULL a dati assenti. Questo è un vantaggio perché ORDA è perfettamente progettato per lavorare con i valori NULL e vi eviterà molte soluzioni ineleganti.

Gestione pessimistica dei blocchi VIA Aggiornamento del RestModel

Con 4D v20, è possibile utilizzare l’API REST per bloccare o sbloccare un’entità. Ciò è particolarmente utile per:

  • Mantenere la coerenza del codice se si è abituati a lavorare con l’API REST. Non è necessario scrivere una funzione nelle classi del modello di dati ORDA per bloccare/sbloccare un’entità.
  • Utilizzare senza problemi i blocchi pessimistici con l’API REST.

Pieno supporto dei BLOB

A partire da 4D v20, i BLOB sono pienamente supportati in ORDA, come qualsiasi altro tipo, consentendo agli sviluppatori ORDA di utilizzare la sintassi ORDA per salvare un Blob in un database.

Confronto tra due selezioni di entità

Per lavorare in modo efficiente con la programmazione orientata agli oggetti e scrivere il minor numero possibile di righe di codice, sono necessarie funzioni robuste e ottimizzate. Per questo motivo, con 4D v20 è disponibile una nuova funzione sull’oggetto entitySelection: la funzione selected(). Grazie ad essa, è possibile ispezionare e confrontare due selezioni di entità.

4D Write Pro

4D Write Pro è migliorato notevolmente rispetto alle ultime versioni. In effetti, il team di 4D ha investito per rendere 4D Write Pro un potente generatore di documenti basato su modelli, eliminando la necessità di creare manualmente i documenti e riducendo il rischio di errori.

Con 4D Write Pro è possibile alimentare e generare automaticamente documenti precompilati con informazioni contestuali, attingendo i dati direttamente dal database 4D. Tra i vari tipi di dati, sono compresi nomi, date, informazioni sull’indirizzo e numeri. 4D Write Pro fonde quindi queste informazioni con i vostri modelli, offrendo un processo di creazione dei documenti efficiente e semplificato.

4D v20 introduce potenti funzioni come intestazioni, fonti di dati e righe di riporto, solo per citarne alcune. Che siate professionisti o sviluppatori, troverete queste funzioni estremamente utili per migliorare il vostro flusso di lavoro e la vostra produttività.

4D Write Pro e le caselle di testo: opzioni di importazione/esportazione docxblank

Lecaselle di testo consentono di inserire un contenitore fluttuante, comprendente testo, tabelle, immagini, formule e altri elementi in qualsiasi punto del documento. Questa funzione è stata migliorata nella versione 20 per includere l’esportazione e l’importazione di questi elementi da e verso documenti docx.

Definizione di contesti di dati

4D v20 apre il mondo di ORDA e dello sviluppo orientato agli oggetti ai documenti 4D Write Pro. I documenti 4D Write Pro contengono spesso formule che restituiscono dati o calcoli che dipendono dal database. Grazie ai contesti, associare questi dati ai documenti è semplice come usare la parola chiave This. Un modo perfetto per creare modelli e documenti personalizzati con 4D Write Pro.

Riempire dinamicamente le tabelle con selezioni e collezioni di entità

Riempire manualmente le tabelle con i dati ogni volta è un compito laborioso. È qui che il contesto dei dati rappresenta un’opzione preziosa, che apre il mondo di ORDA e dello sviluppo orientato agli oggetti ai modelli di 4D Write Pro.

È ora possibile definire una “fonte di dati” per le tabelle di 4D Write Pro. Che si tratti di una selezione di entità o di una collezione, questa “fonte di dati” alimenterà automaticamente le righe di queste tabelle. Le tabelle verranno ingrandite automaticamente in base alla selezione, aggiungendo anche altre pagine se necessario. In questo modo, l’utente finale dell’applicazione può progettare o modificare modelli che verranno riempiti automaticamente con i dati.

Righe di riporto inferiori (subtotali)

Immaginate di avere una grande tabella di vendita che si estende potenzialmente su più pagine. Alla fine di una pagina, si vorrebbe calcolare il subtotale, riportarlo alla pagina successiva e includerlo nei calcoli di quella pagina. Questa operazione è spesso necessaria, a volte persino richiesta per legge, ad esempio quando si modificano fatture lunghe.

4D v20 consente di inserire una riga “subtotale” in fondo a ciascuna parte delle rispettive tabelle, che può essere riempita automaticamente.

Questa operazione può essere eseguita in due modi:

  • Tramite entrambe le interfacce (barra degli strumenti e barra laterale). Il menu della tabella contiene una nuova voce, “Riga di riporto inferiore”.
  • Oppure tramite programmazione, grazie al nuovo attributo wk riga di riporto inferiore.

Per definire il contenuto delle celle di questa riga di riporto, il nuovo attributo previousItems può essere utilizzato con tutte le funzioni disponibili (min/max/sum/ecc.) per le collezioni o le selezioni di entità.

Righe di interruzione delle tabelleblank

Quando si dispone di un elenco di dati, ad esempio un elenco di persone con i loro continenti, paesi e città, si può desiderare di raggrupparli per continente, poi per paese e infine per città. In questo modo sarà più facile comprendere e analizzare i dati.

Quando una tabella viene popolata con dati provenienti da un’origine dati ordinata, 4D Write Pro può inserire una riga di interruzione ogni volta che cambia il valore dei criteri di ordinamento. Ciò consente all’utente di raggruppare i dati in base ai criteri desiderati.

In un altro scenario, questa funzione può essere utilizzata anche per creare report basati sulle relazioni aziendali, dove un elenco di dipendenti può essere raggruppato in base all’azienda in ogni continente. Specificando i criteri di ordinamento appropriati, 4D Write Pro può creare gruppi separati per ogni azienda in ogni continente.

4D v20 viene fornito con nuovi attributi per definire meglio il layout delle tabelle. Consentono di creare con facilità documenti complessi in 4D Write Pro, ma soprattutto documenti visivamente accattivanti: salutate l’interruzione di pagina all’interno delle righe delle tabelle. Questo è utile quando le celle hanno un testo più lungo (o più paragrafi). Può essere interessante definire che una cella (e quindi una riga della tabella) può anche essere divisa in due per riempire lo spazio disponibile sulle pagine dei documenti:

  • L’attributo wk interruzione di pagina all’interno del paragrafo può essere applicato, ovviamente, ai paragrafi, ma anche a qualsiasi target come il documento stesso, una particolare sezione, un intervallo di testo, ecc. In tutti i casi, l’attributo verrà assegnato ai paragrafi all’interno del target. Si tratta semplicemente di una funzione di programmazione.
  • wk interruzione di pagina all’interno della tabella consente di dividere una tabella in due (o più) parti; la separazione avviene tra due righe della tabella (come di consueto)
  • Anchewk interruzione di pagina all’interno di una riga consente di dividere una tabella, ma questa volta all’interno di righe. Si noti che questa opzione dipende dalla precedente. Se una tabella non può essere divisa, non possono esserlo nemmeno le sue righe.

Si noti che l’opzione interruzione di pagina all’interno delle righe della tabella è disponibile nella barra degli strumenti e nei widget della barra laterale.

Intestazioni di tabella

Questa funzione offre un’altra utile opzione di visualizzazione delle tabelle, disponibile tramite programmazione o attraverso i widget dell’interfaccia di 4D Write Pro. A partire da 4D v20, è possibile definire intestazioni nelle tabelle e ripeterle automaticamente dopo un’interruzione di colonna o di pagina.

Rilevamento delle modifiche al documento

Quando un documento di 4D Write Pro è in modalità di modifica, spesso è utile sapere se è stato effettivamente modificato dall’utente finale. Questa informazione consente di regolare le azioni o le interfacce per un’esperienza più agevole per l’utente.

La nuova proprietà document.modified rileva rapidamente le modifiche all’interno di un documento ed esegue le azioni di conseguenza. In modo trasparente(ad esempio, effettuando salvataggi automatici quando un documento rimane aperto) o modificando l’interfaccia in modo intelligente in base alle condizioni.

Visualizzazione intuitiva delle formule

Tutti amano le formule, che sono parte integrante dei documenti di 4D Write Pro. Esse permettono di integrare molte informazioni provenienti dal database, rendendo la creazione di documenti più intuitiva e automatica.

Tuttavia, alcune formule possono essere lunghe dal punto di vista del layout e difficili da leggere per gli utenti finali.

Ecco perché 4D v20 consente di visualizzare le formule come un simbolo ⓕ, indicandone la presenza per rendere i documenti più precisi e trasparenti.

Questo può essere fatto:

  • Tramite l’elenco delle proprietà, grazie alla nuova proprietà “Visualizza origine formula come simbolo”.
  • Un nuovo elemento dell’interfaccia.
  • Oppure tramite la programmazione, grazie al nuovo attributo wk visualizza formula come simbolo.

Disabilitazione della visibilità delle immagini vuote

I documenti di 4D Write Pro possono contenere immagini provenienti da diverse fonti e in vari formati. In alcuni casi, queste immagini possono non essere visualizzate per motivi del tutto ragionevoli, come URL non validi, formule che restituiscono immagini vuote, formati non supportati dalla piattaforma, ecc.

Tuttavia, sono sempre rappresentate da un piccolo rettangolo vuoto che mostra la loro posizione teorica. 4D v20 viene fornito con una nuova opzione di visualizzazione che consente di rendere completamente invisibili le immagini vuote. Ciò può essere fatto in 3 modi diversi:

    • Il primo e più semplice è quello di utilizzare l’elenco delle proprietà, che offre una nuova voce nel tema dell’aspetto.
    • Oppure tramite l’interfaccia utente, in cui compare un nuovo elemento. Nella barra degli strumenti o nella barra laterale.
    • Oppure tramite la programmazione, utilizzando il nuovo parametro wk visible empty images.

Nuove opzioni di visualizzazione delle immagini

A partire da 4D v20, le immagini in linea e ancorate nei documenti 4D Write Pro beneficiano di sette nuovi tipi di formattazione grazie al nuovo attributo wk image display mode :

  • Scalato per adattarsi (per impostazione predefinita)
  • Troncata
  • Troncata centrata
  • Proporzionale
  • Proporzionale centrato
  • Replicato
  • Centrato replicato

Abbiamo anche semplificato la formattazione delle immagini utilizzate come sfondo di documenti, sezioni, paragrafi, ecc. grazie al nuovo attributo: wk background display mode.

Gestione della visibilità delle formule

Per i documenti di 4D Write Pro sono già disponibili diverse opzioni di visualizzazione. Abbiamo aggiunto all’elenco l’opzione di evidenziazione delle formule wk, con 4 valori possibili:

  • 0: nessuna evidenziazione di formule e valori
  • 1: evidenzia solo le formule (valore predefinito)
  • 2: evidenzia solo i valori
  • 3: evidenzia formule e valori

È possibile utilizzare anche le azioni standard. Possono essere utilizzate con caselle di controllo, pulsanti standard ed elenchi a discesa.

Paragrafi collegati

Per avere un migliore controllo sul layout del documento, 4D v20 viene fornito con la possibilità di scegliere se un paragrafo e quello successivo devono rimanere collegati (non separati da un’interruzione automatica di pagina o di colonna).

Esportazione in formato SVG

I documenti di 4D Write Pro possono già essere esportati in diversi formati: pdf, testo normale, Microsoft Word, HTML… A questo elenco si aggiunge ora il formato SVG. Questo permette, ad esempio, di creare un’immagine della prima pagina per una rapida anteprima, utilizzabile su entrambe le piattaforme e su un browser o un dispositivo mobile, oppure di inserire un blocco di 4D Write Pro all’interno di un altro documento, ad esempio un documento 4D View Pro.

Essendo SVG un formato immagine, è possibile scegliere quale pagina del documento esportare. L’immagine finale si baserà sul rendering della pagina del documento. Prenderà in considerazione tutte le opzioni di layout, come l’orientamento, i margini, ecc.

Miglioramenti ai widget dell’interfaccia

4D v20 apporta una serie di funzionalità ai widget dell’interfaccia:

  • Abbiamo aggiunto un menu per inserire le formule in entrambe le interfacce.
  • Abbiamo anche aggiunto diversi attributi ai paragrafi per un migliore rispetto delle regole tipografiche, per avere un documento più leggibile e più estetico, come ad esempio:
    • Controllo dei widow e degli orfani
    • Evitare interruzioni di pagina all’interno
    • Mantenere con il successivo
    • Altezza delle righe
  • Nel widget della barra laterale è ora possibile gestire le interruzioni di pagina, le interruzioni di sezione, le colonne e i parametri di visualizzazione come l’orientamento, il formato, il tipo (bozza, pagina o incorporato) o la visibilità di alcuni elementi (carattere invisibile, intestazione, piè di pagina).
  • Per quanto riguarda il widget della barra degli strumenti, abbiamo aggiunto la possibilità di compilare i campi titolo, autore, oggetto, azienda e note.

Supporto della modalità scura

È possibile sviluppare e distribuire in modalità light o dark su macOS. Gli ultimi widget della libreria sono compatibili con la modalità scura (su macOS):

  • Barra degli strumenti dell’interfaccia di 4D Write Pro
  • Interfaccia di 4D Write Pro
  • Barra laterale Area di testo ricco

Finestra di dialogo per l’impostazione delle immagini

Il componente di interfaccia di 4D Write Pro include ora una nuova finestra di dialogo per le impostazioni dell’immagine. Questa consente di definire facilmente

  • le dimensioni dell’immagine
  • il formato di visualizzazione
  • i margini e il padding
  • la posizione nella pagina per le immagini ancorate

La finestra di dialogo può essere visualizzata dal menu contestuale o da un evento come “al doppio clic” sul modulo, utilizzando il metodo del componente “WP PictureSettings”.

Questa versione consente anche di aggiungere un’immagine da un URL con il widget della barra degli strumenti.

Interruzioni di sezione continue

A partire da 4D v20, 4D Write Pro supporta le interruzioni di sezione continue. Un’interruzione di sezione continua crea una sezione a sé stante, ma senza causare un’interruzione di pagina. Ciò consente, tra l’altro, di avere un numero diverso di colonne nella stessa pagina.

È possibile inserire un’interruzione di sezione continua:

  • Programmando tramite il comando WP Inserisci interruzione, che ora supporta un nuovo valore: wk interruzione continua di sezione
  • utilizzando un menu con un’azione standard associata o semplicemente aggiungendo un’azione standard a un pulsante
  • tramite l’interfaccia utente
4D View Pro

Che si tratti di vendite, finanza, contabilità, analisi dei dati o di qualsiasi altra professione che abbia a che fare con insiemi di dati lunghi e ingombranti, 4D View Pro è la risposta. È un prodotto multilingue con accesso diretto ai dati 4D che consente di sfruttare appieno i potenti fogli di calcolo integrati. Dalla possibilità di creare dashboard graficamente avanzati che non assomigliano più a un foglio di calcolo ai report che possono essere creati fuori dallo schermo ogni mattina e inviati automaticamente alla direzione: 4D View Pro ha tutto ciò che serve per prendere decisioni aziendali significative.

E con 4D v20, il prodotto è più potente che mai, con una serie di funzioni che vi saranno sicuramente utili:

Tabelle pivot

Tabelle pivot in 4D v20. Se tra i vostri utenti ci sono persone che si occupano di vendite e marketing, vale la pena provare questa funzione, che consente di riassumere e analizzare facilmente i dati direttamente dalla barra multifunzione di 4D View Pro.

CSV: nuovo formato di importazione/esportazione

4D v20 consente di importare ed esportare file CSV. CSV è un comune formato di scambio dati ampiamente supportato da molte applicazioni. Ad esempio, è possibile visualizzare i dati di un file CSV proveniente da un altro sistema informativo utilizzando il documento VP Import e il documento VP Export. Questi comandi supportano i formati di file di testo delimitati come CSV.

Gestione dei fogli

Grazie alla programmazione, 4D v20 consente di gestire i fogli dei documenti di 4D View Pro. È possibile creare, rinominare, nascondere o rimuovere un foglio o semplicemente controllare in quale foglio si trova attualmente l’utente utilizzando i seguenti comandi:

  • VP SET SHEET COUNT: definisce subito il numero di fogli necessari.
  • VP ADD SHEET (Aggiungi foglio): inserisce un foglio (con un nome personalizzato) a un indice specifico.
  • VP SET SHEET NAME: guida gli utenti dando un nome appropriato ai fogli.
  • VP IMPOSTA FOGLIO CORRENTE: cambia il foglio selezionato
  • VP SET SHEET OPTIONS: nascondere i fogli, ad esempio quelli che contengono solo informazioni di calcolo.

Gestire le interruzioni di pagina DALL’INTERNO

Con 4D v20, la gestione delle interruzioni di pagina dall’interfaccia utente è ora possibile grazie alle nuove voci del menu contestuale:“Aggiungi interruzione di pagina” e“Rimuovi interruzione di pagina“. È inoltre possibile mostrare o nascondere le linee di stampa utilizzando i nuovi comandi VP SET SHOW PRINT LINES e VP Get show print lines.

Opzioni della cartella di lavoro

Quando si crea un documento con 4D View Pro, spesso è necessario perfezionare l’esperienza d’uso nascondendo le schede del foglio, le barre di scorrimento, disattivando il menu contestuale o il drag and drop… Tutte queste caratteristiche e altre ancora sono possibili con il comando VP SET WORKBOOK OPTIONS.

Velocizzare il processo di sviluppo con i modelli

La creazione di report o fogli di calcolo da modelli esistenti velocizza lo sviluppo. Come un utente finale che utilizza l’azione Copia e Incolla, in qualità di sviluppatore è possibile, con 4D v20, “copiare” semplicemente un intervallo di celle da un’altra posizione o addirittura da un’altra area. Il comando VP SPOSTA CELLE consente di copiare/tagliare e incollare un intervallo di celle in un’altra posizione, anche tra due aree. Un altro modo per copiare un intervallo è quello di copiarlo in un oggetto con il comando VP Copia in oggetto, ad esempio per salvarlo nel database, in modo da poterlo incollare quando serve con il comando VP INCARICA DA OGGETTO.

Interfaccia di stampa

Per facilitare ai clienti l’impostazione della stampa, la barra multifunzione presenta una nuova aggiunta: supporta le impostazioni di stampa con una scheda “Layout di pagina” e una finestra di dialogo “Impostazione pagina”. Questa finestra di dialogo include schede per pagina, margini, intestazione/piatto e foglio, consentendo agli utenti di gestire molte opzioni con il comando VP SET PRINT INFO.

Popolazione dei fogli con un contesto di dati A

4D View Pro offre un nuovo modo per caricare i dati e creare i modelli: il contesto dati. Consente di creare il documento con segnaposti e di riempirli impostando questo contesto di dati.

Visualizzare le collezioni come tabelle

4D View Pro consente già di caricare e visualizzare facilmente i dati in fogli di calcolo. 4D v20 introduce una nuova funzione di tabella che consente di fare molto di più e di beneficiare di proprietà aggiuntive come intestazioni, ridimensionamento della tabella, riga di riepilogo, ordinamento delle colonne, filtri e altro ancora. Questa funzione consente anche di caricare rapidamente i dati da classi e raccolte di dati. Salutate il nuovo comando VP CREATE TABLE.

Gestione di righe e colonne

4D v20 introduce diversi nuovi comandi che consentono di gestire in modo più efficiente le colonne e le righe delle tabelle, aggiungendo o rimuovendo colonne e righe in base alle esigenze degli utenti finali.

La combinazione di questa nuova funzionalità con i contesti di dati consente di progettare modelli più avanzati per popolare automaticamente i contenuti aziendali con le informazioni corrette per ogni situazione, che si tratti di rapporti, fatture, contratti o qualsiasi altro tipo di documento.

Personalizzazione dello stile delle tabelle

Le tabelle sono parte integrante dei documenti di 4D View Pro. Per questo motivo, nel corso delle varie versioni, sono stati apportati numerosi miglioramenti relativi alle tabelle. 4D v20 aggiunge una nuova funzione relativa allo stile delle tabelle, che si adatta perfettamente al resto del documento.

D’ora in poi, il sito VP Set table theme offre la possibilità di applicare, mediante programmazione, uno degli oltre 60 stili di tabella predefiniti. Se nessuno di questi stili soddisfa le vostre esigenze, potete definire il vostro tema personale e applicarlo alla vostra tabella.

Approfondimenti sulle release R