Accueil > Documentation > Les variables > Les tableaux

Les tableaux

Introduction

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 :

 

Initialisation

<array name="..." value="..." [header="..."] [delimiter="..."]>

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 } ]">

Utilisation

Dimensions et noms de colonnes

Deux variables sont créées pour les dimensions du tableau :

  • $xxx.rowcount$ : nombre de lignes
  • $xxx.colcount$ : nombre de colonnes

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

Cellules

Les cellules du tableau s'adressent par la notation $nomtableau:lig.col$

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

Colonne

<set name="adr1" value="$adresses:1.adresse$">

<set name="CP2" value="$adresses:2.4$">

Ligne

<set name="lig1" value="$adresses:1$">

Affectation

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

Affectation avec attribut option

<array name="..." option="" [row="..."] [col="..."] value="...">

 Les options permettent d'indiquer le mode d'affectation :

  • option="set" : affectation d'une valeur à une cellule particulière

  • option="replace" : replacement de ligne(s)+colonne(s)

  • option="colshift" : insertion de colonne(s)

  • option="rowshift" : insertion de lignes

  • option="shift" : insertion de lignes+colonne(s)

  • option="colpush" : insertion de colonne(s) à la fin (pas d'attribut col)

  • option="rowpush" : insertion de ligne(s) à la fin (pas d'attribut row)

 

<array name="adresses" option="rowpush" value="[{5,|Pizza Paolino|,|250 cours Lafayette|,69003,|Lyon|,|France|">

Télécharger

Téléchargez rapidement la dernière version du XPX: Version 3.8-rc16 - 05/02/2019

FAQ

Venez nous poser vos questions et voir les problèmes courants que vous pouvez rencontrer

Don

Aidez-nous à faire vivre ce site en faisant un don

Condition d'utilisation