Utilizzare i documenti 4D Write Pro come moduli di input

Tradotto automaticamente da Deepl

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.

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.