4D Write Pro – Un contrôle accru de la mise en page

Traduit automatiquement de Deepl

4D Write Pro permet de créer facilement des documents complexes. Les attributs d’affichage et de mise en page peuvent être appliqués à différentes parties des documents, qu’il s’agisse de texte, d’images ou de tableaux. En parlant des tableaux, ils bénéficient d’une nouvelle propriété pour mieux définir la mise en page ! Voyons ce que la 4D v19 R4 vous réserve.

HDI Ruptures à l’intérieur des lignes du tableau

Petits et grands tableaux

Les tableaux peuvent contenir de nombreuses lignes, et l’espace qu’ils occupent dans un document peut être important.
Lorsqu’il ne reste plus assez d’espace sur une page, il existe déjà un attribut qui définit si un tableau peut être automatiquement divisé en deux parties ou précédé d’un saut de page pour tenir sur la page suivante.

Jusqu’à 4D V19R4, lorsqueles tableaux sont séparés en deux parties, la séparation se fait toujours entre deux lignes. Cela est généralement suffisant car les lignes d’un tableau ne contiennent que des chiffres ou des étiquettes la plupart du temps. En revanche, lorsque les cellules contiennent un texte plus long (voire plusieurs paragraphes), il peut être intéressant de permettre de les scinder en deux (et donc de scinder également les lignes du tableau) pour remplir l’espace disponible.

Nouveaux attributs

wk page break inside table permet de diviser un tableau en deux parties (ou plus), la séparation se fait entre deux lignes du tableau.

wk page break inside row permet également de diviser un tableau, mais cette fois-ci à l’intérieur des lignes. Notez que cette option est dépendante de la précédente. Si un tableau ne peut pas être divisé, ses lignes ne le peuvent pas non plus.

Cet attribut peut être appliqué à une plage de lignes, à un élément de ligne ou à n’importe quelle cible. Dans ce dernier cas, rappelez-vous qu’au final, ce sont les attributs des lignes qui sont réellement affectés de manière transparente.

wk page break inside paragraph peut être appliqué aux paragraphes, mais aussi à toute cible telle que le document lui-même, une section particulière, une plage de texte, etc. Dans tous les cas, l’attribut sera effectivement attribué aux paragraphes à l’intérieur de la cible. Il s’agit simplement d’une fonctionnalité de « qualité de vie ».

Remarque : L’attribut existant wk page break inside qui s’appliquait à la fois aux paragraphes et aux tableaux est désormais obsolète (mais continuera à fonctionner pour des raisons de compatibilité). Il est avantageusement remplacé par les nouveaux attributs plus explicites décrits ci-dessus.

Qu’est-ce que cela va changer ?

Pour les nouveaux documents, cette nouvelle option est activée par défaut. En fait, elle ne changera rien si les lignes du tableau ne comportent qu’une seule ligne de texte. En revanche, si les cellules contiennent un ou plusieurs paragraphes, ces lignes seront scindées automatiquement.

Pour les documents créés avec une version antérieure, afin de garantir leur mise en page identique, cette option sera désactivée dans toutes les lignes de tous les tableaux lors de l’ouverture des documents.

Exemples de code

Exemple 1 : Autoriser les sauts de page dans n’importe quelle ligne d’un tableau

WP SET ATTRIBUTES($table; wk page break inside row; wk auto)

Exemple 2 : Autoriser les sauts de page dans toutes les lignes d’un tableau sauf la première et la dernière ligne.

Vous avez deux façons de programmer ceci selon vos goûts !

#1 Utiliser les plages de lignes

// all rows can be split
WP SET ATTRIBUTES($table ; wk page break inside row; wk auto)
// except first
WP SET ATTRIBUTES (WP Table get rows($table; 1 ; 1) ; wk page break inside row; wk avoid)
// and last
WP SET ATTRIBUTES (WP Table get rows($table; $table.rowCount; 1) ; wk page break inside row; wk avoid)

#2 Utiliser des éléments de ligne

// all rows can be split
WP SET ATTRIBUTES($table; wk page break inside row; wk auto)
// get row elements
$colRows:=WP Get elements($table; wk type table row)
// except first
WP SET ATTRIBUTES ($colRows[0] ; wk page break inside row; wk avoid)
// and last
WP SET ATTRIBUTES ($colRows[$colRows.length-1] ; wk page break inside row; wk avoid)

Interface

L’interface fournie a, bien entendu, été modifiée pour prendre en compte ces nouveaux attributs dans le menu des tableaux et des lignes.

blank

blank

Conclusion

De nouveaux attributs ont été créés pour plus de clarté, et un autre a été ajouté pour plus de souplesse dans la présentation. A vous de créer de belles mises en page et de beaux documents !

La liste de tous les attributs et constantes se trouve dans 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.