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

Le saviez vous ?

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.

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