Utiliser les documents 4D Write Pro comme formulaires d’entrée

Traduit automatiquement de Deepl

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.

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.