4D Write Pro offre de plus en plus de possibilités de programmation ! Imaginons que vous souhaitiez modifier par programmation le style d’un tableau, d’un paragraphe ou d’une image dans un document 4D Write Pro existant. Avec 4D v17, c’est possible ! Désormais, vous pouvez accéder à n’importe quel élément ou partie d’un document, par programmation. Ces parties, appelées éléments, seront retournées soit sous forme de collection grâce à la fonction WP Get elements ou comme un seul élément avec la fonction WP Get element by ID fonction.
collection d’éléments
La commande WP Get elements renvoie une collection d’éléments de tout type (paragraphes, tableaux, images, etc.). Si une plage ou une référence typée est passée, la commande retournera une collection contenant uniquement des éléments du type correspondant (sauf si spécifié dans le second paramètre). Sinon, la commande renvoie une collection contenant tous les éléments disponibles, quel que soit leur type.
Par exemple :
- Si le premier paramètre est une plage d’un type spécifique (une plage de paragraphes par exemple), alors les éléments retournés seront également des paragraphes.
- Si le premier paramètre n’est pas spécifique (un document complet ou une plage hétérogène), les éléments retournés peuvent être filtrés avec un dernier paramètre (facultatif).
// Returns all elements of the document
$allElements:=WP Get elements( )
// Returns all table elements of the document
$allTables :=WP Get elements( ;wk type table)
// Returns all paragraphs of the range
$paragraphCol:=WP Get elements($paragraphRange)
// Returns all paragraphs of the table range
$paragraphCol:=WP Get elements($tableRange;wk type paragraph)
// Returns all the tables of the given range
$someTableCol:=WP Get elements($customRange;wk type table)
Une fois créée, la collection peut alors être analysée. Chaque élément est un objet qui peut être utilisé comme paramètre pour la commande, WP SET ATTRIBUTES.
Élément unique
La commande WP Get element by ID permet d’accéder à un seul élément. Dans les documents 4D Write Pro, certains éléments ont des ID par défaut (comme les images et les tableaux). Lorsqu’ils existent, ces ID peuvent être modifiés, et lorsqu’ils n’existent pas, ils peuvent être créés. Sachant cela, le comportement de la commande est assez facile à comprendre, elle retourne un seul élément pour un ID donné!
Une fois que vous avez obtenu l’élément, vous pouvez le manipuler comme indiqué ci-dessous :
$element:=WP Get element by ID(myDoc;"Table1" )
WP SET ATTRIBUTES($element;wk border style;wk solid)
WP SET ATTRIBUTES($element;wk border width;"4px")
WP SET ATTRIBUTES($element;wk border color;"blue")