Les tableaux sont disponibles à partir de la version 4.0a3.
Leur mise en œuvre passe par l'utilisation de la balise <array...>
D'autres balises ont été modifiées pour les exploiter :
Header permet de définir les noms des colonnes
Delimiter permet d'indiquer le caractère qui sépare les valeurs (par défaut, ce caractère est |)
<array name="adresses" header="id, raisonSociale, adresse, codePostal, ville, pays"
value="[ { 1,|Infocosme |, | 51 rue Bellecombe|, 69006, Lyon, France },
{ 2,|Le Béranger|, |1, rue Béranger|, 69006, Lyon, France } ]">
Deux variables sont créées pour les dimensions du tableau :
$#xxx$ donne la liste des nom des colonnes, séparés par des virgules.
$#xxx.[col]$ : donne le nom de la colonne N° col
<set name="nbLignes" value="$adresses.rowcount$">
<set name="i" value="1">
<while expr="$i$<=$adresses.colcount$">
$i$:$#adresses.[i]$
<set name="i" expr="$i$+1">
</while>
Les cellules du tableau s'adressent par la notation $nomtableau:lig.col$
où col est le N° de colonne et lig le N° de ligne
<set name="rs1" value="$adresses:1.raisonSociale$">
<set name="adr" value="$adresses:1.3$">
<set name="adr1" value="$adresses:1.adresse$">
<set name="CP2" value="$adresses:2.4$">
<set name="lig1" value="$adresses:1$">
L'affectation d'un tableau à une variable provoque par défaut sa "stringification", on obtient une chaîne de caractères (et on perd l'éventuel header).
<set name="toto" value="$adresses$">
=> toto vaut alors "{1,|Infocosme |,| 51, rue Bellecombe|,,69006,Lyon,France},{2,Le Béranger,|1, rue Béranger|,| |,69006,Lyon,France}">
Le délimiteur | peut être remplacé en définissant la variable phcarraydelimiter.
Pour conserver la notion de tableau, il faut utiliser une * devant value et ne pas mettre les $...$ (le tableau est alors copié) :
<set name="tutu" *value="adresses">
<function exec="maFunc" *tab="adresses">
Les options permettent d'indiquer le mode d'affectation :
<array name="adresses" option="rowpush" value="[{5,|Pizza Paolino|,|250 cours Lafayette|,69003,|Lyon|,|France|">
Téléchargez rapidement la dernière version du XPX: Version 3.8-rc16 - 05/02/2019
La fonction TRIM permet d'enlever les espaces, tabulations, sauts de ligne et retours chariot placés en début et fin de chaîne.
Venez nous poser vos questions et voir les problèmes courants que vous pouvez rencontrer
Aidez-nous à faire vivre ce site en faisant un don