Voulez-vous éviter que les utilisateurs modifient accidentellement un document 4D Write Pro particulier (entièrement ou partiellement) ? Souhaitez-vous conserver certaines parties d’un document intactes(par exemple, donner aux utilisateurs la possibilité de remplir les champs d’un accord de non-divulgation tout en veillant à ce qu’aucune des informations contenues dans le document ne soit modifiée ou changée de quelque manière que ce soit) ? Si vous hochez la tête, alors continuez à lire ! 4D v18 R3 vous permet de garder des parties de vos documents protégées, ou en d’autres termes :« non modifiables« .
HDI : protection des documents 4DWP
Dans l’exemple ci-dessous, nous avons créé un formulaire à partir d’un document 4D Pro dont les zones protégées et non protégées sont clairement identifiables (zones saisissables en blanc, zones non modifiables en gris) :
Deux étapes sont utilisées pour définir la protection dans un document :
- Première étape – Définir quelle partie du document sera protégée ou non (par défaut, toutes les parties seront protégées).
- Deuxième étape – Activer le drapeau de protection du document afin que les premiers paramètres soient pris en compte.
Nouveaux attributs
Comment procéder ? Une nouvelle commande n’est pas nécessaire, car deux nouveaux attributs ont été créés pour être utilisés avec la commande bien connue, WP SET ATTRIBUTES: wk protected et wk protection enabled. Le premier attribut (wk protected) peut être défini sur n’importe quel type de cible appartenant à un document(par exemple, paragraphe, tableau, section, lignes dans un tableau, images ancrées, etc.) L’héritage sera géré, donc si vous protégez une section, il n’est pas nécessaire de protéger les paragraphes de cette section car ils seront protégés par défaut. Toutefois, il convient de noter que vous pouvez également déprotéger un seul paragraphe à l’intérieur d’une section protégée.
Gardez à l’esprit
La seule chose à laquelle vous devez faire attention est l’ordre des cibles… ce qui est parfaitement logique. Par exemple, si vous protégez une section, vous pouvez toujours déprotéger un paragraphe de cette section. Mais l’inverse n’est pas vrai. Si vous protégez un paragraphe et que vous déprotégez ensuite la section à laquelle il appartient, la protection du paragraphe sera perdue.
Exemple de code
Vous avez un document qui doit être entièrement protégé, à l’exception de quelques zones qui doivent être remplies par l’utilisateur final. Voici comment configurer ce document :
// 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; "Nom")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "Prénom")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "Ville")
WP SET ATTRIBUTES (
$range;wk protected;wk false)
// Finally activate the document protection
Pour voir une démonstration de cette fonctionnalité, consultez l’IDH ci-dessus et la documentation.