Novità in 4D v19 R4

Tradotto automaticamente da Deepl

Linguaggio 4D

Ritorno. Continuare. Interrompere. E altro ancora!

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

  • A partire da dichiarazioni che consentono di saltare 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.
  • Seguito 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. A questo scopo aggiungiamo due nuovi operatori:
    • && per l’operatore AND
    • || per l’operatore OR
  • E poi c’è l’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.

Nuovo comando per ottenere informazioni dettagliate sulle licenze

4D v19 R4 viene fornito con un nuovo comando che fornisce tutte le informazioni sull’utilizzo della licenza: Get License Usage. Abbiamo anche ampliato i log di diagnostica. Grazie a questa funzione, sarete in grado di seguire il consumo di licenze sul vostro server, ottimizzare l’utilizzo 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 le proprietà enterable e focusable per il campo.

Interfaccia utente

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. Sugli 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, con la v19R4, 4D è ora pienamente compatibile anche con Windows. Il risultato è una migliore qualità del testo e delle immagini.

Lavoratori 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, l’interfaccia rimane reattiva per l’utente mentre il processo esterno è in esecuzione e, una volta terminato, è possibile visualizzare il risultato al cliente.

ORDA

Salutate gli alias

4D v19 R4 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 v19 R4, nei nuovi progetti, 4D non mapperà più per impostazione predefinita il valore NULL su dati assenti.

Questo è vantaggioso perché ORDA è perfettamente progettato per lavorare con i valori NULL e vi eviterà molte soluzioni ineleganti.

Gestione pessimistica dei blocchi VIA Rest

Con 4D v19 R4, è 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.

4D per mobile

attributi degli oggetti per applicazioni avanzate

Al momento è possibile utilizzare quasi tutti i tipi di attributi nei progetti mobili: testo, date, tempo, numeri interi. 4D v19 R4 ne introduce un altro: gli attributi degli oggetti. Ciò consente di visualizzare i campi oggetto nelle applicazioni mobili in formato leggibile dall’uomo o in formato JSON. I campi oggetto sono utilizzati per memorizzare vari dati nell’applicazione 4D; ora sono facilmente utilizzabili nelle applicazioni mobili. Che significa? La costruzione di applicazioni iOS e Android ancora più avanzate è a portata di mano.

Miglioramenti nella gestione dei dati

Con 4D v19 R4, la sezione dei dati è stata migliorata per fornire maggiori informazioni sui dati che verranno inseriti nell’applicazione mobile. Ad esempio, si otterrà il numero esatto di entità e la dimensione dei dati per ogni classe di dati, evitando di inserire troppi dati nella propria applicazione mobile. Questo miglioramento aiuterà anche a verificare la validità della query facendo clic sul pulsante Convalida. Si otterrà un feedback più visivo sulla convalida della query, con messaggi di errore se la query non è corretta.

Novità in 4D per Android

Molti miglioramenti sono stati apportati a 4D per Android, consentendovi di godere della stessa esperienza premium offerta da 4D per iOS. 4D v19 R4 porta:

  • Il supporto delle relazioni One to N: Visualizzazione dei dati relativi a un record nell’elenco e nel modulo dei dettagli.
  • Azioni online: Possibilità di modificare un’entità o una selezione di entità in modalità online.
  • E Campi oggetto formattati: visualizzazione dei campi oggetto nell’applicazione mobile in formato leggibile o in formato JSON.

4D Write Pro

interruzione di pagina all’interno delle righe di tabella

4D v19 R4 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 permette di dividere una tabella in due (o più) parti; la separazione avviene tra due righe della tabella (come di consueto)
  • wk interruzione di pagina all’interno di una riga consente anche 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.

Supporto per la modalità scura

Con 4D v19 R4, 4D Write Pro è diventato scuro. In definitiva, è possibile sviluppare e distribuire in modalità chiara o scura su macOS. Gli ultimi widget della libreria sono compatibili in modalità scura (su macOS):

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

4D View Pro

Opzioni della cartella di lavoro

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

Velocizzate 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, anche uno sviluppatore può, con 4D v19 R4, semplicemente “copiare” 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.

Editor del codice

Passare rapidamente alle diverse funzioni di una classe.

Leclassi sono state introdotte con 4D v18 R3. Esse consentono di organizzare la logica aziendale e di separarla più rapidamente dall’interfaccia utente.

Le classi 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 l’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 v19 R4, 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 di commento

4D v19 R4 porta i commenti a un nuovo livello con i 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 si scrivono nello stesso modo. L’aspetto interessante è che hanno icone diverse nell’elenco, il che consente di organizzare il codice per dare priorità alle azioni future.

Produttività migliorata con la sintassi di controllo degli oggetti

Ilcompletamento automatico delle classi è disponibile da 4D v18 R4. Questa funzione semplifica la scrittura del codice e limita gli errori nei nomi delle funzioni. Ma non li evita del tutto: è facile invertire due lettere, 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 v19 R4, nell’editor di codice viene visualizzato un avviso se si chiama una funzione che non esiste.

Nuove possibilità di personalizzare l’editor di codice

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

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

Distribuzione

Utilizzo di 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 azienda di un 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.

Volete saperne di più? Leggete tutti i post del blog su 4D v19 R4