Numéroter les ligne d'un tableau

Bonjour,

Spip 2.1.26

J’ai un tableau résultat d’une boucle imbriquée.

<BOUCLE_annulations (EVENEMENTS){date_debut>=#_exercice:DATE_DEBUT} {par id_evenement}>
<BOUCLE_activites (ASSO_ACTIVITES){id_evenement}{quantite=0}{remboursement>0}>

Je n’ai pas trouvé sur la doc ou sur le net le moyen Spip de numéroter automatiquement les lignes d’un tel tableau.

Si je mets le #COMPTEUR_BOUCLE sur la BOUCLE_annulation, j’obtiens un résultat exact mais partiel puisque, logiquement, cela numérote uniquement les résultats de la boucle.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

Si je mets #COMPTEUR_BOUCLE sur la BOUCLE_activites, j’obtiens :

1 1 2 3 4 5 6 7 8 9 10 11 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 1 1 2 1 2 3 4 5 6 1 2 3 4 5 1 1 2 3 4 1 2 3 1 2 3 1 1 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 1 2 1 2 3 4 5 6 7 1 2 3 4 1 2 1 2 1 1 1 1 2 3 4 5 1 2 3 4 1 1 2 1 1 2 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 1 2 3 1

c’est à dire un #COMPTEUR_BOUCLE qui se régénère à chaque itération de la BOUCLE_annulation, alors que j’attends un résultat de 1 à 137).

J’ai essayé un [(#_annulations:#COMPTEUR_BOUCLE)], mais cela me provoque un message d’erreur : Filtre annulations:#COMPTEUR_BOUCLE non défini.

Merci d’avance de votre aide.

Bonjour,

Le 04/07/2014 13:31, VivaSpip a écrit :

J'ai essayé un [(#_annulations:#COMPTEUR_BOUCLE)], mais cela me provoque
un message d'erreur : Filtre annulations:#COMPTEUR_BOUCLE non défini.

Ne serait-ce pas plutôt

#_annulations:COMPTEUR_BOUCLE

Ensuite cela va poser un autre problème car il sera affiché autant de
fois que la boucle imbriquée activités a de résultats, mais c'est
peut-être ce que vous souhaitez ... en fait la question est de savoir ce
que vous souhaitez afficher ... car en l'état, vous aurez plusieurs
lignes avec le même numéro (chaque événement qui génère un numéro a
apparemment plusieurs activités qui vont toutes afficher ce même numéro).

Donc à mon avis il faut dans la seconde boucle faire un compteur
indépendant, genre:

Avant:

#SET{compteur,1} (si vous souhaitez démarrer à 1)

Dans la boucle:

#GET{compteur} pour afficher
#SET{compteur,#GET{compteur}|plus{1}} pour incrémenter (à tester, pas
vérifié en réel)

--
Pierre

* VivaSpip tapuscrivait, le 04/07/2014 13:31:

Bonjour,

Spip 2.1.26

J'ai un tableau résultat d'une boucle imbriquée.

<BOUCLE_annulations (EVENEMENTS){date_debut>=#_exercice:DATE_DEBUT} {par
id_evenement}>
<BOUCLE_activites
(ASSO_ACTIVITES){id_evenement}{quantite=0}{remboursement>0}>
...........

Je n'ai pas trouvé sur la doc ou sur le net le moyen Spip de numéroter
automatiquement les lignes d'un tel tableau.

Si je mets le #COMPTEUR_BOUCLE sur la BOUCLE_annulation, j'obtiens un
résultat exact mais partiel puisque, logiquement, cela numérote uniquement
les résultats de la boucle.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
54 55 56 57 58

Si je mets #COMPTEUR_BOUCLE sur la BOUCLE_activites, j'obtiens :

1 1 2 3 4 5 6 7 8 9 10 11 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3
1 1 2 1 2 3 4 5 6 1 2 3 4 5 1 1 2 3 4 1 2 3 1 2 3 1 1 1 2 3 4 5 1 2 3 4 5 6
7 8 9 10 1 1 2 3 4 5 6 1 2 1 2 3 4 5 6 7 1 2 3 4 1 2 1 2 1 1 1 1 2 3 4 5 1
2 3 4 1 1 2 1 1 2 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 1 2 3 1

c'est à dire un #COMPTEUR_BOUCLE qui se régénère à chaque itération de la
BOUCLE_annulation, alors que j'attends un résultat de 1 à 137).

J'ai essayé un [(#_annulations:#COMPTEUR_BOUCLE)], mais cela me provoque un
message d'erreur : Filtre annulations:#COMPTEUR_BOUCLE non défini.

C'est [(#_annulations:COMPTEUR_BOUCLE)]
Un seul # :wink:

Mais si BOUCLE_activites ne renvoie rien, ça fera des trous dans la numérotation.

Après, il y a possibilité de jouer avec #SET, #GET et |plus{1}

:wink:

--
RealET

Bien sûr un seul # !

Et #SET{compteur,1} #GET{compteur} #SET{compteur,#GET{compteur}|plus{1}} fonctionnent parfaitement.

Merci