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
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