Volete evitare che gli utenti modifichino accidentalmente un particolare documento di 4D Write Pro (in tutto o in parte)? Siete interessati a mantenere intatte alcune parti di un documento(ad esempio, dare agli utenti la possibilità di compilare i campi di un accordo di non divulgazione, assicurandovi che nessuna delle informazioni contenute nel documento venga alterata o modificata in alcun modo)? Se state annuendo, continuate a leggere! 4D v18 R3 vi permette di mantenere parti dei vostri documenti protette o, in altre parole:“non modificabili“.
HDI: protezione dei documenti 4DWP
Nell’esempio che segue, abbiamo creato un modulo utilizzando un documento 4D Pro in cui le aree protette e non protette sono chiaramente identificabili (le aree inseribili sono in bianco, quelle non modificabili in grigio):
Per definire la protezione in un documento si utilizzano due fasi:
- Primo passo – Definire quale parte del documento sarà protetta o meno (per impostazione predefinita tutte le parti saranno protette).
- Secondo passo: attivare il flag di protezione del documento in modo che le prime impostazioni vengano prese in considerazione.
Nuovi attributi
Come procedere? Non è necessario un nuovo comando, perché sono stati creati due nuovi attributi da utilizzare con il noto comando WP SET ATTRIBUTES: wk protected e wk protection enabled. Il primo attributo (wk protected) può essere impostato su quasi tutti i tipi di target appartenenti a un documento(ad esempio, paragrafi, tabelle, sezioni, righe di una tabella, immagini ancorate, ecc.) L’ereditarietà sarà gestita, quindi se si protegge una sezione, non è necessario proteggere i paragrafi di questa sezione perché saranno protetti per impostazione predefinita. Tuttavia, vale la pena di notare che è possibile anche togliere la protezione a un singolo paragrafo all’interno di una sezione protetta.
Tenere a mente
L’unica cosa a cui bisogna prestare attenzione è l’ordine degli obiettivi… il che ha perfettamente senso. Ad esempio, se si protegge una sezione, si può sempre togliere la protezione a un paragrafo all’interno di quella sezione. Ma non è vero il contrario. Se si protegge un paragrafo e poi si toglie la protezione alla sezione a cui appartiene, la protezione del paragrafo andrà persa.
Esempio di codice
Avete un documento che deve essere completamente protetto, tranne che per un paio di aree che devono essere compilate dall’utente finale. Ecco come impostare questo documento:
// set full parts of document protected
WP SET ATTRIBUTESWP SET ATTRIBUTESWPareawk protection enabledwk true(WParea;wk protected;wk true)
// then remove protection on three ranges based on bookmarks
$range :=WP Bookmark range(WParea; "Nome")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "Nome")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "Città")
WP SET ATTRIBUTES (
$range;wk protected;wk false)
// Finally activate the document protection
Per vedere una dimostrazione di questa funzione, si veda l’HDI qui sopra e la documentazione.