4D Write Pro – 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. In base a questa informazione, è possibile regolare le azioni o le interfacce per renderle più facili da usare.

A partire da 4D v19 R7, tutto questo è più facile che mai.

DATABASE DEMO

DOCUMENTI MODIFICATI

Un documento può essere modificato in diversi modi. O:

  • dalla programmazione, utilizzando uno dei numerosi comandi, oppure
  • dall’utente finale stesso.

In genere, un documento modificato deve essere salvato, sia in termini di contenuto (aggiunta, modifica, eliminazione di testo, tabelle o immagini…) che di aspetto (stile, margini, orientamento, colori…).

In ogni caso, bisogna essere in grado di offrire la possibilità di salvarlo tramite un pulsante o un menu e, nel caso estremo in cui l’utente voglia andarsene senza averlo salvato, offrirgli un’opzione di recupero (“vuoi salvare…?”).

Questo si può fare molto rapidamente testando il nuovo documento. attributo modified.

Il principio di questo attributo è semplice. Quando il documento viene creato o caricato, il suo valore è impostato su False. Poi, non appena il documento viene modificato (dalla programmazione o dall’utente), il valore cambia automaticamente in True.

Diventa così semplice prendere le decisioni giuste 🙂

  • Aggiornare l’interfaccia
	OBJECT SET ENABLED(*; "btnSave";WParea.modified) // true or false
  • Confermare il salvataggio
If (Form event code=On Unload)
	If (WParea.modified)
		CONFIRM("Would you like to save the document ?"; "Save"; "Discard")
		If (ok=1)
			// do what you have to do
		End if 
	End if 
End if 

Che si tratti di uno spazio cancellato o di una virgola aggiunta, di un singolo carattere grassettato o corsivo, il documentomodified sarà impostato su True. Anche in caso di annullamento, il documentomodified rimarrà True.

È tuttavia possibile forzare il valore di questo attributo tramite la programmazione, ad esempio una volta che il documento è stato salvato.

If (WParea.modified)
	// save document
	// (…)
	// then set the status to false
	WParea.modified:=False  // will stay false until next document modification
End if 

… O NON MODIFICATO?

Alcune azioni possono modificare solo l’aspetto dei documenti senza modificarne effettivamente il contenuto; si tratta delle proprietà di visualizzazione.

È possibile modificare il fattore di zoom, visualizzare o meno i righelli orizzontali e verticali, scegliere di mostrare i caratteri invisibili, le formule, le intestazioni o i piè di pagina, ecc. Nulla di tutto ciò verrà salvato. Ciò significa che il documento non viene modificato e, pertanto, l’attributo modified rimane False. Si veda la documentazione su questo nuovo attributo.

Conclusione

Questa nuova e semplice proprietà consente di rilevare rapidamente le modifiche all’interno di un documento e di agire di conseguenza. Sia in modo trasparente (effettuando salvataggi automatici quando un documento rimane aperto, ad esempio) sia modificando l’interfaccia in modo intelligente in base alle circostanze!

Roland Lannuzel
- Product Owner ed esperto di 4D - Dopo aver studiato elettronica, Roland è passato all'IT industriale come sviluppatore e consulente, realizzando soluzioni per i clienti con una varietà di database e tecnologie. Alla fine degli anni '80 si è innamorato di 4D e lo ha utilizzato per scrivere applicazioni aziendali che includono sistemi di contabilità, fatturazione e posta elettronica. Entrato a far parte dell'azienda nel 1997, Roland ha dato il suo prezioso contributo progettando specifiche, strumenti di test e demo, oltre a formare e parlare alla comunità 4D in occasione di numerose conferenze. Continua a plasmare attivamente il futuro di 4D definendo nuove funzionalità e strumenti di sviluppo di database.