Cosa c’è di nuovo in 4D v19

Tradotto automaticamente da Deepl

Questo documento è una raccolta di tutte le nuove funzionalità disponibili in 4D v19. 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 v18 R6 e 4D v19.

Questo documento è suddiviso in sette sezioni:

Supporto nativo per Silicon

In seguito all’annuncio rivoluzionario di Apple(i nuovi Mac Silicon), abbiamo rilasciato 4D v19 con sei mesi di anticipo rispetto al previsto, per offrirvi una versione nativa Silicon di 4D il prima possibile. Oltre ai notevoli miglioramenti delle prestazioni, ecco le novità:

Poiché i Mac Silicon non utilizzano più un’architettura di processore x86 come i Mac e i PC Intel, non possono eseguire lo stesso codice compilato. Per questo motivo, abbiamo dovuto migliorare il nostro compilatore con una compilazione specifica per Silicon (disponibile solo in modalità progetto). Ora potrete compilare le vostre applicazioni per le architetture Intel (Windows e Intel Mac), Silicon (Silicon Mac) o entrambe.

Plugin

Anche i plugin subiranno un leggero impatto. Per far sì che un plugin funzioni sia su Mac Intel che su Mac Silicon, sarà necessario compilarlo come binario universale. Se utilizzate plugin di terze parti, assicuratevi di scaricare le versioni binarie native per Silicon o universali.

Avete bisogno di più tempo?

Naturalmente, 4D v19 continuerà a funzionare con Rosetta. Se avete bisogno di tempo per far funzionare le vostre applicazioni in modo nativo, è sempre possibile eseguirle su Rosetta.

Caratteristiche della modalità progetto

Iprogetti sono un tipo di architettura che rappresenta un enorme passo avanti per le applicazioni 4D. Aggiungono la possibilità di sfruttare gli strumenti di controllo dei sorgenti, la programmazione collaborativa, la condivisione del codice, la modularità e molto altro ancora. Al momento della stesura di questo manuale, grazie all’architettura di progetto e alla possibilità di condividere il codice sorgente delle applicazioni di progetto tramite un sistema di controllo sorgente, abbiamo pubblicato più di 45 repository su GitHub. Questi includono HDI, componenti e applicazioni di esempio complete.

4D v19 offre una serie di nuove funzionalità che miglioreranno notevolmente la vostra esperienza di programmazione.

Le classi

Grazie alla modalità progetto, abbiamo introdotto le classi. Una classe consente di definire il comportamento di un oggetto attraverso proprietà e funzioni. Una volta definita una classe, è possibile istanziare oggetti di questa classe in qualsiasi punto del codice. Ogni oggetto è un’istanza della sua classe. Le classi possono estendere altre classi e quindi ereditare le loro funzioni.

In 4D sono disponibili due tipi di classi: le classi integrate in 4D (restituite dal comando 4D ) e le classi utente (restituite dal comando cs ).

Per creare un oggetto come istanza di una classe, si usa il comando cs con la funzione membro new. Un altro termine importante da conoscere è il costruttore. Il costruttore viene utilizzato per creare e istanziare un oggetto con attributi predefiniti. Viene chiamato automaticamente quando un oggetto viene inizializzato. La creazione di una classe si effettua dal menu “Nuovo” della barra degli strumenti o dalla finestra di dialogo “Esploratore”. Verrà visualizzato un editor di classi in cui è possibile creare il costruttore e le funzioni della classe. Leggere la documentazione

Ereditarietà delle classi

L’ereditarietà consente a una classe di ereditare il comportamento di un’altra classe (la classe padre ). Per derivare una classe figlia da una classe genitore, utilizzare la parola chiave Class extends. Questo richiama automaticamente il costruttore della classe genitore (se non è stato definito un costruttore specifico per la classe figlia ). Si può anche usare il comando Super per richiamare il costruttore della classe genitore. Leggere la documentazione

Denominazione dei parametri per metodi e funzioni

Non è più necessario passare attraverso una variabile intermedia: ora è possibile dare un nome ai parametri e ai risultati quando si dichiara un metodo:

  • metodo di progetto,
  • metodo trigger,
  • metodo di database,
  • metodo del modulo,
  • costruttore di classe,
  • funzione di classe. Leggete la documentazione

Anteprima CSS nell’editor dei moduli

Questa funzione è stata la richiesta di funzionalità più votata e la più veloce a diventare una richiesta di funzionalità votata nel nostro forum di richieste di funzionalità. Consente di visualizzare in anteprima la resa finale del CSS nell’editor del modulo. Una nuova icona nella barra degli strumenti consente di visualizzare il modulo con o senza rendering CSS e persino di vedere come apparirebbe con un rendering CSS specifico su Mac o Windows.

Per quanto riguarda la sovrascrittura delle proprietà in modalità CSS, nell’editor dei moduli viene visualizzato un nuovo tipo di schermatura (simile alle schermature per Metodo oggetto o Ordine di inserimento). Ora è facile vedere quali oggetti sono influenzati dallo stile CSS. Leggete la documentazione

Sviluppo del codice server

Lo sviluppo e il debug del codice server nelle applicazioni del progetto diventano più semplici. In modalità di sviluppo in team, è frequente che diversi sviluppatori eseguano lo sviluppo in modalità single-user e che effettuino il commit delle loro modifiche in un sistema di controllo della versione. Il comando RELOAD PROJECT, in combinazione con comandi come git pull, consente di aggiornare un server in esecuzione con il nuovo codice senza doverlo riavviare per i test o addirittura per la produzione.

Quando un client 4D Developer si collega a un server 4D sullo stesso computer, il file .4DZ non viene trasferito dal server al client. Il 4D Remote gestisce i file di progetto (metodi, moduli, risorse, ecc.) come se fosse un client 4D monoutente. I file di progetto sono condivisi da 4D Server e 4D Remote. In questo modo, è possibile modificare il codice e testarlo al volo.

Se si desidera che il server ricarichi i file modificati, passare alla modalità applicazione dall’ambiente di sviluppo. Spostate il Server 4D in primo piano o selezionate la voce di menu “File / Salva tutto” in 4D Remote (o utilizzate il nuovo comando RELOAD PROJECT ).

Ricordate che l’esecuzione di un metodo sul lato client esegue automaticamente un’azione “Salva tutto” e, di conseguenza, ricarica i file modificati sul lato server. Leggete la documentazione

Macro

Le macro sono ora disponibili nell’editor dei moduli. Con una macro del modulo è possibile:

  • Modificare, eliminare o aggiungere una proprietà a uno o più oggetti del modulo, ad esempio cambiare il colore o la larghezza di un pulsante.
  • Aggiungere o eliminare uno o più oggetti del modulo (compreso il metodo oggetto associato).
  • Selezionare o deselezionare gli oggetti del modulo nell’editor
  • Visualizzare una finestra di dialogo modale per inserire un parametro al volo
  • Calcolare la posizione ideale degli oggetti del modulo e spostarli
  • Creare una classe CSS da un oggetto modulo da usare come modello
  • Controllare che i percorsi delle immagini nel modulo siano validi
  • Aprire i file CSS nell’editor CSS invece di cercare i file sul disco
  • Controllare che i riferimenti XLIFF abbiano la loro corrispondenza nei file XLIFF
  • e molto altro ancora!

Le macro dei moduli sono disponibili nel menu contestuale. Le macro del database host vengono visualizzate per prime, seguite da quelle dei componenti. Per eseguire una macro, è sufficiente fare clic sulla voce di menu. Per creare le macro dei moduli, dichiararle in un file formMacros.json al primo livello della cartella Sources del progetto. Assicuratevi di dare un’occhiata agli esempi di macro che abbiamo reso disponibili su GitHub. Potete integrarli nelle vostre applicazioni come componenti per testarli. Leggete la documentazione

Documentazione del metodo

È possibile scrivere la propria documentazione per i metodi di database, trigger, progetti e moduli di tabella. La documentazione viene salvata in un file Markdown con lo stesso nome del metodo o del modulo in una cartella di documentazione. Markdown è un formato standard per la documentazione e consente stili di formattazione avanzati. Il formato può essere visualizzato in 4D Explorer, in GitHub o in altri strumenti. La documentazione può contenere la descrizione di un elemento e tutte le informazioni necessarie per capire come funziona l’elemento nel database. Per creare o modificare il file di documentazione in un database di progetto, dall’Explorer fare clic sul pulsante “Crea” o selezionare la voce di menu “Modifica documentazione”. 4D crea il file corrispondente e lo apre nell’editor predefinito con un modello preimpostato. Leggere la documentazione

4D offre tre temi di font automatici che rispettano le linee guida di ogni piattaforma. 4D v19 consente di sovrascrivere le dimensioni di questi temi automatici e di avere un maggiore controllo sulla visualizzazione del testo. Leggete la documentazione

4D per iOS

Il set di funzionalità di 4D per iOS è stato ampliato con 4D v19:

Lavorare offline blank

Ora è possibile lavorare offline e interagire con il server 4D in modo molto flessibile.

Quando la rete non è disponibile, le attività vengono messe in coda, in attesa che il server sia disponibile. Questo garantisce un modo di lavorare molto fluido ed efficiente, con applicazioni che funzionano senza ritardi. Leggete la documentazione

Collegamento profondo

Il deep linking consente di condividere un URL, ad esempio in un’e-mail. Facendo clic sull’URL si aprirà direttamente un record specifico in un’app 4D per iOS. In combinazione con le notifiche push, è possibile informare i venditori su un nuovo preventivo o gli agenti assicurativi su un nuovo caso. Un solo clic apre direttamente l’app e visualizza il record appropriato. Leggete la documentazione

Notifiche push

Lenotifiche push sono un modo perfetto per tenere gli utenti delle vostre app iOS impegnati e informati.

È possibile impostare le notifiche push per attivare la sincronizzazione sui dispositivi iOS. Ciò consente di aggiornare istantaneamente l’interfaccia utente, fornendo agli utenti dati in tempo reale che possono controllare alla ricezione di una notifica. Leggete la documentazione

Nuovi formati di parametri: Firma e codice a barre

Per rendere le vostre app più interattive, sono stati aggiunti nuovi formati di parametro a 4D per iOS:

  • Formato firma: firma con un dito e invia le firme direttamente dall’app al server. Questo potrebbe essere utile per raccogliere le firme dei clienti dopo la consegna di un pacco, ad esempio.
  • Formato codice a barre: associare qualsiasi valore a un codice a barre (EAN13, EAN8, QR Code, ecc.) da estrarre con una semplice scansione da un modulo di azione. È un modo molto comodo per aggiungere, ad esempio, un riferimento a un articolo tramite la scansione di un codice QR direttamente dalla vostra applicazione. Leggete la documentazione

È possibile accedere e pubblicare le relazioni Uno a molti dalle relazioni Molti a uno nella sezione Struttura. In breve, ciò significa che è possibile visualizzare le relazioni molti a molti, il che consente di creare app iOS con un’ergonomia migliore che mai. Ciò comporta ulteriori funzionalità, come l’aggiunta di interazioni a un campo, trascinandovi sopra una relazione, e la visualizzazione del numero di record corrispondente facendo clic sulle relazioni One to Many. Leggete la documentazione

Supporto della scansione dei codici a barre

La ricerca è notevolmente migliorata grazie all’aggiunta del supporto per la scansione dei codici a barre. Questo permette di avere applicazioni adattate alle situazioni sul campo (ad esempio, per le esigenze di inventario del magazzino).

Più tecnicamente, questa funzione consente di:

  • Filtrare un modulo di elenco in base al valore del codice. Se un record corrisponde al valore del codice a barre, il modulo di dettaglio del record si apre automaticamente.
  • In combinazione con il deep linking, la visualizzazione di moduli di elenco e di dettaglio specifici mediante la semplice scansione di un codice a barre i cui valori sono schemi URL o collegamenti universali. Leggete la documentazione

Accesso con QRCode blank

4D per iOS offre un nuovo modo moderno di effettuare il login. Il modello di modulo di accesso SignInWithQRCode consente agli utenti dell’app di accedere scansionando il QRCode o di accedere direttamente all’app se sono già stati autenticati. Leggete la documentazione

Sincronizzazione dei dati ottimizzata

Il processo di sincronizzazione dei dati di 4D per iOS è stato ottimizzato, migliorando la velocità di sincronizzazione dei dati fino a 25 volte. Leggete la documentazione

Autenticazione e-mail

4D per iOS consente di determinare l’autenticità e la legittimità della persona che cerca di accedere alla vostra applicazione. Il processo aggiorna lo stato della sessione di un utente per consentirgli di accedere all’applicazione:

  1. Nel modulo di accesso, quando un utente inserisce un indirizzo e-mail e fa clic sul pulsante Accedi , lo stato della sessione viene aggiornato a “in attesa” e viene inviata un’e-mail con un link di convalida a tale indirizzo e-mail.
  2. Quando l’utente fa clic sul link di convalida, lo stato della sessione passa da “in attesa” a “accettato”.
  3. L’utente può riaprire l’applicazione. Poiché lo stato della sessione è ora “accettato”, l’accesso è consentito.

È disponibile il componente che gestisce e semplifica il processo, in modo da poter adattare il processo di autenticazione alle proprie esigenze. Leggete la documentazione

Creare modelli di moduli di dettaglio

Poiché i moduli di dettaglio sono scorrevoli, è possibile inserire tutti i campi che si desidera nei modelli di modulo di dettaglio. Ci sono molti modi per aggiungere campi ai moduli di dettaglio:

  • Selezionare un modello vuoto e aggiungervi tutti i campi desiderati.
  • Trascinare i campi in qualsiasi punto della vista per aggiungerli e visualizzarli subito dopo l’ultimo campo aggiunto, oppure inserirli tra un campo e l’altro.
  • Fare doppio clic su un campo per aggiungerlo alla fine dell’elenco
  • Fare clic con il pulsante destro del mouse su uno dei campi disponibili nella tabella Campi a sinistra. Viene visualizzato un menu che consente di aggiungere i campi mancanti ai moduli di dettaglio. Leggere la documentazione

Modelli pronti all’uso

Nell’editor di progetto sono disponibili 40+ modelli pronti all’uso. La galleria si basa su un elenco dinamico di modelli aggiornati disponibili su GitHub. Per utilizzare un modello, è disponibile l’iconaAltro” per i moduli di elenco e di dettaglio. Fare clic su di essa per visualizzare l’intero elenco di modelli della sezione Moduli. Selezionare il modello e 4D per iOS si occuperà dell’installazione. È quindi possibile adattarlo alle proprie esigenze. Leggere la documentazione

ORDA

4D v19 continua ad apportare miglioramenti a ORDA. Oltre alle diverse funzionalità disponibili (vedi sotto), ORDA consente di creare funzioni di classe di alto livello al di sopra del modello di dati. Ciò consente di scrivere codice orientato al business per nascondere la complessità, ridurre gli errori e accelerare il processo di sviluppo. Inoltre, è possibile esporre il progetto come un’API con un server REST.

Classi ORDA per gestire il modello di dati

La struttura di ORDA (datastore, classe di dati, entità, selezione di entità) è costituita da oggetti fortemente tipizzati collegati a specifiche classi ORDA. Ciò significa che è possibile scrivere funzioni che nascondono la complessità dell’implementazione fisica dei dati.

4D crea automaticamente i seguenti oggetti:

  • Classe Entità: Per implementare le funzioni relative a un’entità (ad esempio, per calcolare le spese di spedizione per il preventivo corrente. Codice assegnato a un determinato record).
  • Classe EntitySelection: Per implementare funzioni relative a una selezione di entità (ad esempio, per eseguire una statistica sui record selezionati. Codice assegnato a una selezione)
  • Classe DataClass: Per implementare funzioni relative alla classe di dati (per eseguire codice relativo a una tabella, ma indipendente da uno specifico record o selezione. Ad esempio, per creare un nuovo record in base ai parametri forniti)
  • DataStore: Per implementare funzioni relative al datastore (per eseguire codice non legato a una tabella o a un record, simile a un metodo generico di progetto). Leggere la documentazione

Classi del modello di dati ORDA e REST

È possibile richiamare le funzioni delle classi definite per il modello di dati ORDA tramite richieste REST, al fine di beneficiare dell’API esposta del progetto applicativo 4D mirato. Esponete la vostra logica aziendale con un’API controllata (attraverso le vostre classi) per altri strumenti, come framework web come Angular o React. Leggete la documentazione

Ambito e contesto di esecuzione delle funzioni

Per impostazione predefinita, in modalità client/server, le funzioni delle classi ORDA vengono eseguite sul server. Con la nuova parola chiave local, è possibile scegliere di eseguire alcune funzioni sul client. È inoltre possibile scegliere quali funzioni pubblicare (o meno) come API per i client REST con la nuova parola chiave exposed. Leggere la documentazione

Looping con un nuovo tag 4D blank

È ora disponibile un nuovo tag 4D: il tag 4DEACH. Può essere usato come tag 4D nelle pagine SHTML e con il comando PROCESS 4D TAGS, semplificando l’uso di ORDA o di oggetti in PROCESS 4D TAGS o SHTML. Leggere la documentazione

Aggiornamento del modello

Quando si lavora con 4D in modalità standalone, non è più necessario riavviare il database per avere un datastore aggiornato quando la struttura viene aggiornata.

Se si lavora in modalità client/server, questo funziona bene per il codice eseguito sul server 4D. Per i client remoti, è sufficiente riavviare il client che richiede l’aggiornamento della struttura. Leggete la documentazione

Selezioni di entità condivisibili

A volte si può desiderare di condividere una selezione di entità con un altro processo o di renderla disponibile a tutti i processi. Ad esempio, immaginiamo di dover eseguire una query complessa per trovare tutte le fatture scadute, consentire agli utenti finali di selezionarne alcune (o tutte) e inviare un sollecito di pagamento via e-mail. L’invio di e-mail è meglio farlo in un altro processo per evitare di bloccare l’utente.

Invece di creare un elenco di chiavi primarie da passare all’altro processo, una selezione di entità condivisa può essere passata direttamente a un altro processo. Le selezioni di entità condivise possono anche essere allegate all’oggetto Storage per essere condivise con tutti i processi.

In breve, una selezione di entità può essere condivisibile o non condivisibile:

  • Una selezione di entità condivisibile può essere memorizzata in un oggetto condiviso o in una raccolta condivisa e può essere condivisa tra più processi o worker. Non consente l’aggiunta di nuove entità. Il tentativo di aggiungere un’entità a una selezione di entità condivisibile genera un errore.
  • Una selezione di entità non condivisibile non può essere condivisa tra processi, né può essere memorizzata in un oggetto o in un insieme condiviso. Il tentativo di memorizzare una selezione di entità non condivisibile in un oggetto o in un insieme condiviso provoca un errore. Tuttavia, una selezione di entità non condivisibile accetta l’aggiunta di nuove entità. Leggere la documentazione

Nuovi metodi per la selezione di entità

Sono disponibili nuovi metodi membri:

  • extract(): per estrarre i dati da una selezione di entità. Ciò consente di costruire una collezione completamente personalizzata con i dati della selezione di entità. È possibile specificare gli attributi della classe di dati che si desidera estrarre e i loro nomi nella collezione risultante.
  • refresh(): invalida i dati della selezione di entità nella cache di ORDA. Innesca un aggiornamento dal server al successivo utilizzo dei dati. Per impostazione predefinita, la cache di ORDA scade dopo 30 secondi; utilizzare questo metodo membro nel caso in cui si necessiti di dati aggiornati immediatamente. Leggere la documentazione

Linguaggio 4D e altre funzioni di programmazione

Supporto della modalità scura su macOS blank

4D ha aggiunto il supporto alla modalità scura, che viene applicato automaticamente se la modalità scura è attivata a livello di macOS. Questo è solo l’inizio e nelle prossime versioni verranno rilasciate altre funzionalità, come il supporto in tutti i componenti (ad esempio il widget 4D Write Pro) e la modalità di progettazione. Leggete la documentazione

Temi multipli per l’editor di codice blank

4D offre temi di base che potete arricchire e adattare ai vostri gusti:

  • “tema chiaro predefinito” (basato sull’editor di colori classico)
  • “tema scuro predefinito” (nuovo colore)

Se si preferiscono i colori del tema di un collega o se si trova un tema più adatto ai propri gusti, ad esempio su GitHub, è possibile importarlo aggiungendo il file JSON del tema in:

  • “<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme” su macOS
  • “<diskName>:\Users\userName>AppData\Roaming\4D\4DEditorTheme” su Windows. Leggere la documentazione
Avviare una compilazione per programmazione blank

Nei sistemi di integrazione continua, ogni volta che viene inviato del codice, o su base oraria, viene avviata automaticamente una compilazione del codice sorgente. Questo approccio consente di controllare le fusioni sul server di gestione del codice. A partire da 4D v19, il nuovo comando Compila progetto consente di lanciare la compilazione del codice, in modo da poter impostare questo tipo di sistema. Leggere la documentazione

Gestione delle informazioni dell’applicazione blank

Per costruire l’applicazione, si utilizza il comando BUILD APPLICATION con una serie di chiavi XML che consentono di configurare l’applicazione costruita. Dopo il processo di compilazione, è possibile aggiungere informazioni quali l’azienda, il copyright o la versione dell’applicazione. A partire da 4D v19, è possibile leggerle, aggiungerle o modificarle su piattaforme Windows o macOS senza dover padroneggiare il linguaggio XML e la struttura del file info.plist.

A tale scopo, abbiamo aggiunto due nuove funzioni alla classe File per consentire la lettura e la scrittura delle informazioni dell’applicazione:

  • Per aggiungere le informazioni a un file .exe (Windows) o .plist (macOS), è possibile passare alla funzione setAppInfo un oggetto con gli attributi che si desidera impostare.
  • Per leggere le informazioni da un file .exe o .plist, basta usare getAppInfo, per ottenere tutti gli attributi in un unico oggetto. Leggete la documentazione

Semplificare la creazione del client dell’archivio 4D blank

A partire da macOS Big Sur, le applicazioni non firmate non possono essere eseguite. In passato, abbiamo rilasciato un workaround per creare applicazioni client-server che girano su un server Windows e accettano connessioni da client Mac. Con il rilascio di 4D v19, abbiamo aggiornato la creazione di applicazioni in 4D per gestire questo scenario.

Evoluzione del formato di log di 4D blank

Abbiamo recentemente rivisto i nostri formati di log per migliorare la leggibilità e la conformità con l’analisi automatizzata. Abbiamo apportato questi miglioramenti in risposta a situazioni reali che abbiamo vissuto, affrontando direttamente i problemi che limitavano la nostra capacità di utilizzare i registri 4D. Leggete la documentazione.

Utilizzare collezioni ed elenchi all’interno degli oggetti dei moduli blank

A partire da 4D v19, è possibile utilizzare le collezioni per definire il contenuto di alcuni oggetti dell’interfaccia, anche utilizzando la funzione Form. Ciò è molto utile per la gestione generica delle interfacce. Sono stati inoltre apportati miglioramenti alle modalità di utilizzo degli elenchi.

L’uso degli elenchi è stato migliorato:
Elenchi gerarchici
Controlli a schede (primo caso d’uso)

Le collezioni possono ora essere utilizzate come riferimenti con i seguenti oggetti:
– Elenchi a discesa (noti anche come “elenchi a comparsa”)
Caselle combinate
– Controlli a schede (secondo caso d’uso). Leggete la documentazione

Nuova sintassi delle dichiarazioni

È ora disponibile una nuova sintassi per dichiarare le variabili. Utilizza la parola chiave var, il nome della variabile e il suo tipo. Questa nuova sintassi consente di migliorare notevolmente il completamento automatico della dichiarazione delle variabili. È possibile dichiarare le variabili utilizzando sia la sintassi classica che quella nuova nello stesso database. Leggere la documentazione

Visualizzazione del prototipo e breve descrizione

Per semplificare e facilitare la scrittura del codice nell’editor, il prototipo di una funzione e una breve descrizione vengono visualizzati nell’editor di codice.

L’elenco dei suggerimenti visualizza il completamento intelligente del codice (con una breve descrizione) e il prototipo, in modo da poter scrivere il codice in modo più rapido e corretto. Mentre si scrive la funzione, 4D visualizza il prototipo della funzione e una breve descrizione della stessa. Inoltre, evidenzia il parametro che si sta completando. Leggere la documentazione

Email

Supporto OAuth 2.0

OAuth 2.0 è uno standard di autenticazione e autorizzazione che protegge i dati degli utenti fornendo l’accesso ai dati senza rivelare l’identità o le credenziali dell’utente. Ultimamente, i server di posta elettronica hanno iniziato a passare a questo standard per aumentare la sicurezza. Office365 e Gmail consigliano di utilizzare OAuth 2.0 per gestire le e-mail.

A partire da 4D v19, forniamo un modo per configurare OAuth 2.0. I trasportatori IMAP, SMTP e POP3 ora supportano nativamente il protocollo OAuth 2.0. Leggete la documentazione

Gestire i flag IMAP

Il protocollo IMAP consente di associare un elenco di flag a un messaggio per gestire informazioni aggiuntive. Abbiamo aggiunto una serie di funzioni all’oggetto transporter IMAP per aggiungere o rimuovere i flag IMAP.

Con il protocollo IMAP è possibile gestire cinque flag:

  • \Visto: Il messaggio è stato letto.
  • \Answered: Il messaggio è stato risposto.
  • \Segnalato: Il messaggio è contrassegnato come “segnalato” per un’attenzione urgente/speciale.
  • \Eliminato: Il messaggio è contrassegnato come “da cancellare”. La rimozione ha effetto quando viene richiamata la funzione expunge(), quando si cambia mailbox o si chiude la connessione. Questo flag è già aggiunto dalla funzione delete().
  • \Draft: Il messaggio non ha completato la composizione (è contrassegnato come bozza). Leggere la documentazione

Creare, eliminare e rinominare le caselle di posta elettronica con IMAP blank

Sono disponibili funzioni che aiutano a gestire le caselle di posta elettronica tramite la programmazione. Ciò include la creazione, la ridenominazione e l’eliminazione delle caselle postali. Una mailbox viene visualizzata come una cartella nei client di posta elettronica come Microsoft Outlook o Apple Mail. Leggete la documentazione

Salvare le e-mail in una casella di posta specifica

Quando si invia un’e-mail da 4D, se i clienti si aspettano di riceverne una copia nella casella di posta “Inviata” visualizzata da Outlook o Apple Mail, è possibile salvarne una copia dopo l’invio:

  1. Creare due trasportatori: un trasportatore SMTP per inviare l’e-mail al client e un trasportatore IMAP per caricare l’e-mail sul server di posta.
  2. Dopo aver inviato l’e-mail con SMTP, utilizzare la funzione append() del transporter IMAP. Leggere la documentazione

Cercare e scaricare le e-mail

Il metodo searchMails consente di recuperare un elenco di messaggi in base a criteri quali tutte le e-mail non lette o tutte le e-mail di una persona specifica nelle ultime 4 settimane. Il comando restituisce un insieme di ID di posta, che possono essere utilizzati direttamente dal nuovo metodo getMails (per scaricarli, ad esempio). Leggere la documentazione

Copiare, spostare e cancellare le e-mail

Sono state aggiunte tre nuove funzioni al trasportatore IMAP: copy(), move() e delete(). Leggete la documentazione

Ricevere le e-mail usando POP3

È possibile scaricare localmente le e-mail e rimuoverle dal server di posta elettronica tramite POP3 grazie al nuovo comando POP3 New transporter. Il Post Office Protocol (POP) è un protocollo standard di Internet utilizzato per recuperare le e-mail da un server di posta. Questo standard è utile per azioni quali la connessione a un server POP3, il recupero dei messaggi per elaborarli automaticamente (per memorizzarli nel database locale) e la loro cancellazione dal server. Inoltre, sono stati aggiunti diversi metodi per migliorare la gestione delle e-mail:

  • getMailInfoList(): Restituisce informazioni su tutti i messaggi presenti nella casella di posta elettronica.
  • getMailInfo(): Restituisce informazioni su un singolo messaggio.
  • getMail(): Consente di scaricare messaggi specifici passando come parametro il numero del messaggio restituito da getMailInfoList().
  • delete(): Segnala i messaggi specificati da cancellare durante la chiusura della sessione.
  • getBoxInfo(): Restituisce il numero di messaggi di posta elettronica presenti nella casella e la dimensione della casella. Leggere la documentazione

Ricevere le e-mail con IMAP

Come per SMTP e POP3, il nuovo comando IMAP New transporter gestisce il protocollo IMAP. Sono stati aggiunti comandi che consentono di scegliere una casella di posta e di scaricare un’e-mail. Leggete la documentazione

Scaricare le e-mail in formato MIME

4D v19 offre un comando che consente di archiviare le e-mail nel loro formato originale, non convertito, ricevuto. Utilizzando il metodo POP3_transporter.getMIMEAsBlob( ), è possibile ottenere un BLOB contenente il contenuto MIME di un messaggio specifico, che può essere salvato nel database o altrove. Leggere la documentazione

Crittografare i propri dati con l’algoritmo 4D blank

4D offre un modo semplice ma potente per criptare i propri dati. Ora consente anche di utilizzare lo stesso algoritmo usato per la crittografia dei dati (AES-256) per le proprie esigenze. Ora è quindi possibile crittografare e decrittografare qualsiasi informazione con una serie di nuovi comandi: Cifra dati BLOB e Decifra dati BLOB. Leggete la documentazione

Nuova classe CryptoKey

La nuova classe CryptoKey fornisce una serie di metodi per eseguire le operazioni crittografiche più comuni (come la firma e la verifica, la crittografia e la decrittografia). Fornisce un modo per garantire:

  • Riservatezza (protezione dei dati da accessi non autorizzati)
  • Integrità (garantire che i dati siano completi e corretti)
  • Autenticità (convalida dell’autenticità di un messaggio o di un mittente/destinatario) Leggi la documentazione

Web

Sessioni web scalabili

Il server Web 4D supporta ora le sessioni Web scalabili, un nuovo tipo di sessione Web che migliorerà notevolmente le prestazioni delle applicazioni Web.

Le sessioni web scalabili possono gestire più processi in modalità preemptive. Ciò significa che possono gestire diverse richieste dell’agente utente allo stesso tempo e possono anche condividere i dati tra questi processi. Leggete la documentazione

Attributi SameSite e Secure per i cookie blank

I cookie si sono evoluti nel corso degli anni, ma hanno lasciato in eredità alcuni problemi. Per gestire questo aspetto e abilitare un modello sicuro per impostazione predefinita per i cookie, i browser (tra cui Safari, Chrome, Firefox ed Edge) stanno modificando il loro comportamento per quanto riguarda gli attributi SameSite e Secure. Per questo motivo, 4D v19 apporta alcuni miglioramenti. Leggete la documentazione

Supporto per la condivisione di risorse in base all’origine (CORS)

Il protocollo CORS impedisce a una pagina web di effettuare richieste a domini diversi dal proprio. Tuttavia, se avete bisogno di consentire ad altri siti di effettuare richieste HTTP al vostro server per ottenere o inviare alcuni dati, ora è possibile tramite:

  • programmazione: grazie ai comandi WEB SET OPTION e WEB Server . Essi accettano parametri di dominio per consentire azioni specifiche (GET, POST, HEAD, PUT)
  • impostazioni del database: grazie alle opzioni disponibili nella finestra Impostazioni > Web > Opzioni (II). Leggere la documentazione

Esploratore dati (anteprima)

4D v19 offre una versione di anteprima di 4D Data Explorer. Gli sviluppatori e gli amministratori di 4D possono ora esplorare facilmente i dati delle loro applicazioni in un browser web senza bisogno di una licenza Web Server. Guardate questo video per vedere il prodotto in azione.

Cartella cache 4D personalizzata per il server 4D unito

Se il vostro computer ospita un’applicazione server unita costruita con diverse versioni di 4D, potreste riscontrare dei problemi a causa della cartella di struttura 4D condivisa. Per evitare di condividere questa cartella di sistema tra applicazioni server unite costruite con versioni diverse di 4D, è ora possibile definire il nome della cartella durante il processo di compilazione dell’applicazione con il nuovo tasto buildApp per impostare la propria cartella di struttura. Leggete la documentazione

Cartella di cache 4D personalizzata per i client 4D uniti

La connessione dell’applicazione remota a diversi server può talvolta comportare l’ottenimento di una grande cartella di risorse locali nel sistema, che può consumare molto tempo, volume e larghezza di banda. La nuova chiave buildApp consente di condividere la stessa cartella delle risorse locali tra tutti i server identici. Leggete la documentazione

Integrazione migliorata del giornale

Quando si esegue un server 4D in produzione, tutto dovrebbe essere completamente automatico e funzionare senza l’intervento di un amministratore. Ciò è particolarmente importante con l’aggiornamento automatico e quando si opera in modalità Headless. Dopo un’interruzione di corrente o un arresto anomalo, piccoli errori nel diario potrebbero impedire il riavvio automatico del Server 4D. Una nuova opzione consente ora di sopprimere i messaggi di errore non critici (ma di riportarli comunque in un registro), riducendo i tempi di inattività del sistema. Leggete la documentazione

Concessione dinamica dei permessi agli utenti

Dopo la possibilità di utilizzare il proprio sistema di gestione degli utenti finali e il comando SET USER ALIAS, abbiamo aggiunto la possibilità di gestire i permessi degli utenti finali. Il nuovo comando IMPOSTA ACCESSO GRUPPO consente di impostare dinamicamente le appartenenze ai gruppi. Leggete la documentazione

Memorizzazione degli alias utente nel diario

Il comportamento del comando IMPOSTA ALIAS UTENTE è stato esteso in 4D v19 per consentire di sapere chi ha fatto cosa. Ora, quando viene impostato un alias, questo viene memorizzato anche nel diario. Ciò consente di recuperare l’utente corretto, anche se più utenti condividono lo stesso computer e/o account di sistema. Il nome dell’utente viene visualizzato in:

  • nelle schede Analisi attività e Rollback del CSM
  • nella finestra di dialogo visualizzata con il comando CHECK LOG FILE (Controlla file di registro )
  • il file JSON generato dal comando LOG FILE TO JSON Leggere la documentazione

Monitorare le operazioni lente

Per scoprire quali operazioni stanno rallentando un server, è possibile utilizzare il nuovo comando AVVIA ATTIVITÀ DI MONITORAGGIO . Il comando registra in memoria le operazioni che superano una determinata durata.

In base alle specifiche impostate da questo comando, è possibile ottenere tutte le attività registrate con il comando Get Monitored Activity(). Quando si decide di interrompere la registrazione dell’attività dell’applicazione 4D o di svuotare l’elenco delle attività, si chiama il comando STOP MONITORING ACTIVITY. Leggete la documentazione

Casella di riepilogo

Gestione dei clic nelle celle modificate

L’evento del modulo

viene attivato indipendentemente dal fatto che una cella sia in fase di modifica o meno, offrendo un maggiore controllo e migliorando l’interfaccia. Ciò può essere utile se si desidera visualizzare i possibili valori di una cella quando è in fase di modifica, ad esempio utilizzando un menu contestuale. Una volta selezionata la riga, è possibile offrire una scelta di colore per quella particolare riga o cella.

Per garantire la compatibilità, se si dispone già di codice che viene eseguito durante l’evento “on clicked”, è possibile interrompere l’esecuzione di tale codice quando si verifica un clic all’interno di una cella modificata. In questo caso, è sufficiente testare prima lo stato della cella con la funzione di modifica del testo. Leggere la documentazione

Colonne dei tempi e calcoli a piè di pagina blank

Sebbene le nuove caselle di riepilogo che utilizzano collezioni o selezioni di entità offrano maggiori possibilità, non consentivano la visualizzazione temporale e i calcoli automatici nel piè di pagina, a differenza delle caselle di riepilogo che visualizzano array o record.

Ora tutti i tipi di caselle di riepilogo possono visualizzare il tempo nelle loro colonne e i calcoli nel piè di pagina. Leggete la documentazione

Miglioramento dell’avanzamento di tipo

Normalmente, una casella di riepilogo può ricevere eventi di pressione dei tasti solo in modalità di modifica. Questo impediva il filtraggio automatico dell’elenco o la selezione delle voci quando l’utente utilizzava la tastiera o caselle di riepilogo non digitabili.

Ora, l’evento On before Keystroke viene generato non appena la casella di riepilogo ha il focus e viene digitato un tasto anche se i dati non vengono inseriti in una cella. Questo permette a 4D di sapere quali tasti sono stati premuti e rende possibile (tramite programmazione) prendere decisioni come l’avvio di una nuova ricerca o la modifica della selezione corrente.

È stato aggiunto il nuovo comando Sta modificando il testo per aiutare a determinare se c’è un input in corso quando viene generato l’evento On before keystroke. Ad esempio, consente di rendere modificabile una casella di riepilogo, continuando a supportare le funzioni di digitazione in testa. Gli eventi On before keystroke e On after keystroke supportano ora le finestre di dialogo di aiuto del sistema per la selezione di diacritici come é, ä o caratteri asiatici. L’evento viene ritardato finché l’utente finale non seleziona i caratteri finali. Non è necessario gestirlo da soli. Leggete la documentazione

Funzionalità Listbox Pro gratis

Non è più necessaria una licenza 4D View Pro per utilizzare queste funzioni avanzate. È possibile sfruttare appieno le caselle di riepilogo per:

  • adattare automaticamente l’altezza di ogni riga al suo contenuto, in modo da visualizzare l’intero testo o l’intera immagine
  • utilizzare gli array di oggetti nelle colonne per consentire l’immissione e la visualizzazione di vari tipi di valori nelle righe di una singola colonna della casella di riepilogo.

Impostazione di righe mobili tramite codice

In modalità Progettazione, quando si utilizzano caselle di riepilogo basate su array, è possibile definire se gli utenti finali possono spostare le righe(ad esempio, per riordinare o raggruppare le righe, ecc.) I comandi LISTBOX SET PROPERTY e LISTBOX Get property sono stati aggiornati per supportare la nuova proprietà lk movable rows. Leggete la documentazione

Selezione delle righe della casella di riepilogo

Il nuovo comando LISTBOX SELECT ROWS facilita la selezione delle righe in una selezione di entità. Il comando accetta una selezione di entità come parametro e le righe che corrispondono alla selezione di entità possono essere selezionate in modo intuitivo (comprese le righe aggiunte o rimosse dalla selezione). Per le caselle di riepilogo delle collezioni, è possibile passare una collezione contenente i riferimenti agli oggetti che si desidera selezionare. Leggere la documentazione

Controllo dell’area di lavoro

Gli elementi del sistema grafico, come il dock di macOS o la barra delle applicazioni di Windows, vengono presi in considerazione per poter utilizzare l’intera area di lavoro disponibile. Al comando COORDINATE SCHERMO è stato aggiunto un nuovo parametro opzionale: Area di lavoro dello schermo. In questo modo si può essere certi che le finestre dell’applicazione si trovino in un’area visualizzabile (soprattutto in modalità SDI su Windows). Leggete la documentazione

XML: Supporto XPath migliorato

A partire da 4D v19, l’implementazione di XPath è più conforme e semplifica le ricerche consentendo il supporto di espressioni come //, @, * e last(). Per ragioni di compatibilità, l’implementazione precedente, non standard, viene mantenuta per default nei database convertiti. Per sfruttare le funzionalità estese nei database convertiti, selezionare l’opzione Usa compatibilità XPath standard nella pagina Compatibilità. Leggete la documentazione

Miglioramento degli oggetti e delle collezioni

Il comando OB Copy() e il metodo membro collection.copy() sono stati migliorati. Ora consentono di aggiungere un oggetto standard a un oggetto o a una collezione condivisa, semplificando la copia del contenuto dell’oggetto standard nell’oggetto o nella collezione condivisa. Inoltre, sono ora disponibili nuovi comandi per gestire gli oggetti come mappe hash:

  • OB Keys: restituisce i nomi delle proprietà di un oggetto sotto forma di collezione
  • OB Values: restituisce i valori delle proprietà di un oggetto come collezione
  • OB Entries: restituisce un insieme di oggetti con proprietà chiave (nome della proprietà) e valori (valore della proprietà). Leggere la documentazione

Creare un’area web fuori dallo schermo

4D v19 consente di utilizzare un’area Web in modalità offscreen con il comando WA Esegui area offscreen. Il comando crea un’area Web in memoria e prende come parametri tutte le informazioni rilevanti per l’area Web, quali:

  • l’URL da caricare
  • il nome dell’area
  • la formula richiamata quando viene lanciato un evento dall’area Web.

Per semplificare il debug delle aree Web fuori schermo, è stato aggiunto il nuovo comando WA OPEN WEB INSPECTOR . Questo comando apre l’ispettore web e consente di verificare se la pagina è stata caricata correttamente o se il codice JavaScript ha generato errori. Leggete la documentazione

Accesso ai valori degli oggetti del modulo tramite programmazione

Sono disponibili due nuovi comandi che consentono di accedere ai valori degli oggetti del modulo, indipendentemente dalla loro variabile o espressione: OGGETTO Ottieni valore e OGGETTO IMPOSTA VALORE.

  • Per ottenere il valore di un oggetto modulo, utilizzare il comando OBJECT Get value e passare il nome dell’oggetto modulo come parametro.
  • Per impostare il valore di un oggetto modulo, utilizzare il comando OBJECT SET VALUE e passare come parametri il nome e il nuovo valore. Leggere la documentazione

Miglioramenti nel confronto tra stringhe

4D offre strumenti versatili per la ricerca e il confronto di stringhe. Possono essere adattati a diversi contesti e situazioni.

Con 4D v19 sono stati apportati aggiornamenti al comando Position ed è stato aggiunto il nuovo comando Compare strings:

  • Posizione: questo comando ha ora maggiori capacità di confronto, come “sensibile alle maiuscole e minuscole” o “sensibile all’accento”, e sono ora disponibili le seguenti opzioni di ricerca:
    • Lingua giapponese (Hiragana/Katagana)
    • larghezza del carattere
    • “parola intera
  • Confronta stringhe: questo nuovo comando consente di confrontare le stringhe con le stesse opzioni aggiunte al comando Posizione. Questo comando si basa sulla lingua definita nelle impostazioni del database. Può essere utile, ad esempio, per consentire ordinamenti specifici. Leggete la documentazione

Miglioramenti al debugger 4D

4D v19 include nuove opzioni e informazioni aggiuntive che facilitano il tracciamento e l’analisi del codice.

    • Parametri: Conoscere i parametri di ingresso e di uscita di un metodo o di una funzione, nonché il loro tipo, è essenziale per il debug del codice. La riga di dichiarazione viene visualizzata in alto a sinistra nella finestra del debugger. Nel riquadro della catena di chiamate è possibile scegliere se visualizzare o nascondere il tipo di parametro.
    • Commenti: Per aiutare a spiegare un metodo o una funzione, una pratica comune è quella di includere commenti all’inizio dei blocchi di codice. Questi commenti sono ora visibili nel debugger. Leggere la documentazione

Debugger remoto

Questa funzione consente di decidere dove eseguire il debug del codice del server (lato client o lato server). Il debug sul lato client è particolarmente utile se si esegue il server in modalità headless o come servizio Windows.

Sono state aggiunte due nuove voci di menu su entrambi i lati per gestire il collegamento del debugger:

  • Attacca / Stacca debugger: Collega o scollega istantaneamente il debugger al client o al server.
  • Collega il debugger all’avvio: Collega il debugger all’avvio del client o del server.

Tenete presente che il debugger può essere collegato solo a una singola istanza di 4D alla volta. Ad esempio, se si cerca di collegare il debugger al server senza staccarlo dal client, si otterrà un messaggio di errore con informazioni sul proprietario del debugger.

Per aiutarvi a distinguere se il debugger o le finestre di errore provengono dal server o dal client, abbiamo cambiato l’aspetto di queste finestre. Leggete la documentazione

4D Write Pro

Convertire i documenti Word in formato 4D Write Pro blank

È ora possibile importare documenti .docx in 4D Write Pro. Per farlo, utilizzate la nuova costante wk docx con il comando esistente WP Importa documento. Si noti che 4D Write Pro importerà la maggior parte del contenuto del documento MS Word, ad eccezione di ciò che non è supportato da 4D Write Pro (come descritto nel capitolo della documentazione: Importazione ed esportazione in formato .docx). Inoltre, durante il processo di importazione, viene generato un registro di importazione integrato nel documento 4D Write Pro stesso. Sarà possibile consultarlo per verificare eventuali differenze tra il documento originale e quello convertito. Leggete la documentazione

Esportazione diretta in PDF

Senza installare alcun driver di stampa o software aggiuntivo, i documenti di 4D Write Pro possono essere esportati direttamente in formato PDF. L’esportazione diretta non solo è più veloce e affidabile di un driver di stampa, ma offre anche un maggiore controllo sul risultato. Supporta i collegamenti ipertestuali, consente di ottimizzare le dimensioni delle immagini e altro ancora. Il comando WP EXPORT DOCUMENT è stato aggiornato per accettare una nuova costante: wk pdf. Leggete la documentazione

Trova e sostituisci blank

Trovare e sostituire il testo all’interno di un documento di 4D Write Pro è già possibile con comandi di base come WP Get text e WP Set text. Il nuovo comando WP Trova tutto rende questo processo più veloce che mai. Leggete la documentazione

Individuare tutte le interruzioni blank

I documenti di 4D Write Pro supportano cinque tipi di interruzioni:

  • interruzioni di riga
  • interruzioni di paragrafo
  • interruzioni di pagina
  • interruzioni di sezione
  • interruzioni di colonna

A volte è necessario individuare un certo tipo di interruzione per sostituirla con un’altra o semplicemente eliminare tutte le sue occorrenze nel documento. Per rendere possibile questo, abbiamo sviluppato una nuova funzione: WP Get breaks. Leggete la documentazione

Formule: gestione del comportamento del ritorno a capo

È disponibile la nuova proprietà del documento wk break paragraphs nelle formule, che definisce come deve essere trattato il ritorno a capo. Ha due possibili valori:

  • wk true: Interpretato come interruzione di paragrafo.
  • wk false: (valore predefinito) Interpretato come interruzione di riga. Leggere la documentazione

Miglioramenti dell’interfaccia utente

Nel widget dell’interfaccia di 4D Write Pro è disponibile una nuova scheda. Permette di importare ed esportare documenti in diversi formati. Abbiamo anche aggiunto miglioramenti alla barra degli strumenti e alla barra laterale. Ora è possibile

  • aumentare o diminuire il testo
  • copiare e incollare il righello
  • cambiare il colore di sfondo di un paragrafo
  • cambiare lo stile di una parola (maiuscolo, minuscolo, ecc.). Leggere la documentazione

Selezionare le pagine del widget da mostrare

4D visualizza solo le pagine menzionate nella raccolta, nell’ordine della stessa. Ciò consente di ridurre l’insieme delle funzioni per semplificare il lavoro dell’utente finale. Se sono necessarie solo le opzioni di stile, è meglio non visualizzare le altre funzionalità. Ora, il widget 4D Write Pro offre la possibilità di selezionare le pagine da visualizzare con il nuovo metodo del componente WP ShowTabPages. È sufficiente passare il nome del widget e un insieme di pagine da visualizzare quando si chiama il metodo. Leggete la documentazione

Selezionare il carattere per le schede decimali

Se avete documenti provenienti da varie fonti, i numeri potrebbero non essere formattati correttamente per le vostre esigenze. Ora 4D Write Pro consente di specificare questa impostazione per ogni documento. È possibile scegliere di allineare i numeri a:

  • il punto
  • alla virgola
  • al primo separatore trovato (punto o virgola)
  • il separatore definito dal sistema operativo

Per ottimizzare la compatibilità (in particolare con MS Word), l’opzione #3 viene utilizzata per impostazione predefinita quando si creano nuovi documenti. Quando si migrano documenti di 4D Write a 4D Write Pro, viene utilizzato per impostazione predefinita il separatore definito dal sistema. Leggete la documentazione

Gestione dei trattini morbidi

L’inserimento dei trattini morbidi è stato semplificato grazie a nuove azioni standard e a nuovi pulsanti nei widget dell’interfaccia di 4D Write Pro.

Sono disponibili due nuove azioni standard:

  • insertSoftHyphen
  • removeSoftHyphens

La funzionalità è stata aggiunta anche ai widget dell’interfaccia di 4D Write Pro, sia nel widget della barra degli strumenti che in quello della barra laterale. Leggete la documentazione

Nuove azioni standard per le tabelle e i loro elementi

4D v19 aggiunge a 4D Write Pro nuove azioni standard per tabelle, righe e celle. Esse consentono di definire il tipo di bordo di una tabella, il colore di sfondo di una cella, l’allineamento verticale del testo in una riga, l’allineamento della tabella stessa all’interno del documento, i margini, il padding e oltre 40 altre opzioni. Di conseguenza, l’interfaccia di 4D Write Pro è stata migliorata in termini di capacità di elaborazione delle tabelle. Sono stati aggiunti quattro nuovi pulsanti per modificare l’aspetto di tabelle, righe, colonne e celle. Leggete la documentazione

Supporto dell’attributo protetto

In 4D v19, alcune parti dei documenti 4D Write Pro (o tutte le parti) possono essere “non modificabili”. Sono disponibili due livelli di protezione. Innanzitutto, è necessario definire quale parte dei documenti sarà protetta (per impostazione predefinita, tutte le parti sono protette). Quindi, attivare il flag di protezione del documento in modo che le impostazioni effettuate vengano prese in considerazione. A tale scopo, è possibile utilizzare due nuovi attributi con il comando WP SET ATTRIBUTES :

  • wk protected (può essere impostato su quasi tutti i tipi di target appartenenti a un documento)
  • wk protection enabled (abilita o disabilita la protezione globale del documento). Leggete la documentazione

Gestione delle formule all’interno dei documenti

4D v19 include una serie di comandi che possono aiutare a gestire le formule all’interno dei documenti di 4D Write Pro:

  • WP Ottieni formule: Recupera tutte le formule all’interno di un obiettivo specifico (l’intero documento, ma anche parti più specifiche di un documento come il corpo, la seconda sezione, l’intestazione sinistra, ecc,)
  • WP Inserisci formula: Inserisce un’espressione come oggetto formula all’interno di un determinato intervallo,
  • WP Calcolo formule e WP Congelamento formule: Possono essere usate in modo molto simile(cioè usando un obiettivo). Rivaluta tutte le espressioni di un documento o congela solo le espressioni appartenenti ai piè di pagina. Leggere la documentazione

Eliminare le immagini

L’eliminazione di immagini in linea o ancorate può ora essere effettuata con il nuovo comando WP DELETE PICTURE . È sufficiente recuperare l’immagine da eliminare in base al suo ID (usando WP Get element by ID) o alla sua posizione (usando WP Get elements), quindi richiamare il comando. Leggete la documentazione

4D View Pro

Miglioramenti con SpreadJS v14 blank

4D v19 è dotato di una nuova barra multifunzione di 4D View Pro. Oltre al nuovo look, abbiamo aggiunto nuove caratteristiche per supportare le nuove funzionalità di SpreadJS v14.

Questa nuova barra degli strumenti offre nuove funzionalità quali:

  • Supporto all’accessibilità: Fornisce un adeguato supporto all’accessibilità per gli utenti disabili che utilizzano tecnologie assistive come gli screen reader. Per ulteriori informazioni, consultate la sezione Supporto all’accessibilità
  • Personalizzazione dell’indicatore di commento: Gli utenti possono ora modificare il colore e le dimensioni dell’indicatore.
  • Copia di immagini da Excel: Consente di copiare immagini da Excel e di incollarle nei fogli. L’immagine incollata avrà le stesse dimensioni, lo stesso bordo e lo stesso sfondo che aveva in Excel.
  • Effetti di riempimento e modelli: Migliorate l’aspetto delle celle in un foglio di calcolo applicando alle celle effetti di pattern o gradienti. Per ulteriori informazioni, consultare Riempimento a motivo e Riempimento a gradiente.

Supporto di sei lingue

Oltre all’inglese, abbiamo aggiunto il supporto per francese, tedesco, spagnolo, giapponese e portoghese! Se siete utenti di 4D v19 o superiore con un sistema operativo che corrisponde alle lingue supportate, noterete che tutti gli elementi di 4D View Pro sono ora tradotti (barra multifunzione, barra degli strumenti, menu contestuale, messaggi di errore, ecc.)

Fine del caricamento del documento

Sono disponibili due nuovi eventi che consentono di sapere quando i calcoli sono terminati: Su intervallo VP modificato e sull’evento Timer.

Ciò può essere utile, ad esempio, quando si carica un documento 4D View Pro di grandi dimensioni con molte formule e i calcoli possono richiedere del tempo per essere completati, oppure quando si utilizza un’area fuori dallo schermo e si desidera esportare il documento in formato PDF o Excel. In questi casi, è necessario attendere il termine dei calcoli prima di procedere. Leggere la documentazione

Trova e sostituisci

A volte, quando si inizializza un documento di 4D View Pro, è necessario trovare alcuni valori o tag e sostituirli con i dati emessi da 4D. Ora è un gioco da ragazzi grazie al comando VP Find. Grazie a questo comando, è possibile trovare dati, formule o tag e sostituirli nell’intero foglio o solo in una parte specifica di esso. Leggete la documentazione

Formule 4D nei fogli di calcolo

Il comando VP IMPOSTA FUNZIONI PERSONALIZZATE consente di creare funzioni personalizzate in 4D View Pro per eseguire una formula 4D. Non è necessario creare un metodo per utilizzare una semplice variabile in 4D View Pro, basta passarla come parametro alla formula. Inoltre, il comando semplifica la digitazione per l’utente finale, fornendo un testo di aiuto e i nomi dei parametri. Nelle strutture di grandi dimensioni, l’uso di questo comando è molto più rapido rispetto al comando generico SET FIELD TITLES. Leggete la documentazione

Area fuori schermo

Il nuovo comando VP Esegui area fuori schermo consente di manipolare i comandi e le funzioni di 4D View Pro in un’area fuori schermo. Per utilizzarlo, è sufficiente passare le informazioni dell’area come parametro (ad esempio, il nome dell’area e il metodo chiamato quando viene lanciato un evento dall’area di 4D View Pro). Leggete la documentazione

Unire e disunire le celle

È disponibile una nuova serie di comandi che consentono di unire e disunire un gruppo di celle mediante la programmazione:

  • Per creare una cella unita, definire un intervallo con tutte le celle che si desidera unire, quindi passarlo come parametro al nuovo comando VP ADD SPAN che unisce le celle in un unico intervallo di celle.
  • Per recuperare tutte le celle unite, utilizzare il comando VP Ottieni campate.
  • Per rimuovere le celle con campitura nel documento, utilizzare il comando VP REMOVE SPAN. Leggete la documentazione

Formule: ricalcola, sospendi e riprendi

Tre nuovi comandi consentono di attivare i calcoli delle formule ogni volta che lo si desidera:

  • Usare VP RICALCOLA FORMULE per ricalcolare le formule quando i dati cambiano.
  • Usare VP SOSPENDI CALCOLO e VP RIPRENDI CALCOLO per sospendere e riprendere i calcoli. Leggere la documentazione

Più opzioni per personalizzare i fogli di lavoro

Il nuovo comando VP IMPOSTA OPZIONI FOGLIO consente di definire varie opzioni del foglio di un’area di 4D View Pro. Ad esempio, questo comando consente di:

  • proteggere un foglio di lavoro impedendo la modifica delle celle al suo interno
  • personalizzare i colori delle schede del foglio di lavoro, delle linee congelate, delle linee della griglia o dello sfondo e del bordo di una selezione
  • gestire la visibilità delle linee di griglia e delle intestazioni di riga e colonna di un foglio di lavoro. Leggete la documentazione

Gestione di righe e colonne

4D v19 include nuovi comandi per la gestione di colonne e righe. Questi comandi consentono di adattare meglio i documenti alle proprie esigenze. Le colonne e le righe possono essere aggiunte e rimosse, oppure possono essere definite nelle loro dimensioni, visibilità ed etichette di intestazione con i seguenti comandi:

  • VP INSERT ROWS o VP INSERT COLUMNS: aggiunge righe o colonne passando un intervallo contenente la prima colonna o riga come parametro e il numero di righe o colonne da aggiungere.
  • VP SET COLUMN COUNT e VP SET ROW COUNT: Definiscono il numero di colonne e righe visualizzate. Per impostazione predefinita, un foglio di 4D View Pro contiene 100 colonne e 1.000 righe.
  • VP ELIMINA RIGHE o VP ELIMINA COLONNE: Rimuove righe o colonne specifiche.
  • VP IMPOSTA ATTRIBUTI COLONNA e VP IMPOSTA ATTRIBUTI FILA: Specificano la larghezza delle colonne o l’altezza delle righe; aggiungono un’interruzione di pagina per la stampa; nascondono o mostrano colonne o righe; abilitano o vietano il ridimensionamento di colonne o righe da parte degli utenti; modificano le etichette delle intestazioni delle colonne o delle righe. Leggete la documentazione

Bloccare righe e/o colonne

Il nuovo comando VP SET FROZEN PANES consente di creare riquadri. Se si dispone di una grande tabella di dati, può essere utile mantenere visibile un’area del foglio di lavoro mentre si scorre verso un’altra area. Con questo comando è possibile creare fino a 4 riquadri nella propria area: uno a sinistra, uno sopra, uno a destra e uno sotto. Leggete la documentazione

Approfondimenti sulle release R