Alors voilà, je voudrais afficher un tableau.
Déjà le contenu n'est pas entièrement dans le xml: j'ai 1 fois le texte dans mon xml et je veux l'afficher plusieurs fois.
Jusque là il suffirait de créer un template et de l'afficher le nombre de fois necessaires.
Mais là où ça devient vraiment coton, c'est que ce nombre de fois où je veux afficher le texte n'est pas fixe: en fonction d'un paramètre, je vais afficher 2 lignes de 3 colonnes, 3 lignes de 3 colonnes etc.
Premier réflexe, boucle for. Heu bon ça va, je sais xml c'est pas de la programmation machin... Donc maintenant j'en suis là:
En haut de mon doc, je déclare mes variables en global parce que je ne veux pas avoir de problème avec les noeuds et tout ça (j'ai lu quelque chose à ce sujet ici )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <xsl:variable name="nb_lignes">15</xsl:variable> <xsl:variable name="i">0</xsl:variable>
est l'appel de la "boucle"
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:call-template name="boucle_etq"><xsl:with-param name="i" select="10"/></xsl:call-template>
est le code qui me permet d'afficher à chaque fois le numéro et le numéro dans la police de code barre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <xsl:template name="boucle_etq"> <xsl:param name="i" select="0"/> <xsl:if test="$i < $nb_lignes"> <tr> <td> <xsl:value-of select="ETIQUETTE/ANO_NUM"/> </td> <td> <xsl:value-of select="ETIQUETTE/ANO_NUM"/> </td> <td> <xsl:value-of select="ETIQUETTE/ANO_NUM"/> </td> </tr> <tr> <td class="clBarreCode"> <xsl:value-of select="ETIQUETTE/ANO_NUM_TRANS"/> </td> <td class="clBarreCode"> <xsl:value-of select="ETIQUETTE/ANO_NUM_TRANS"/> </td> <td class="clBarreCode"> <xsl:value-of select="ETIQUETTE/ANO_NUM_TRANS"/> </td> </tr> <xsl:call-template name="boucle_etq"> <xsl:with-param name="i" select="number($i)+1"/> </xsl:call-template> </xsl:if> </xsl:template>
Ok c'est bon.
Sauf que nb_lignes je l'avais mis à 15 pour l'instant, histoire que ça fonctionne déjà ça, mais j'arrive pas à lui expliquer maintenant que nb_lignes va venir de mon xml, je lui colle un value-of ben rien du tout...
En plsu actuellement ln_lignes vaut 15 et il fait 5 lignes... En même temps c'est ce que je voulais, puisque mon but à l'origine c'est d'avoir le nombre de texte div 3 pour savoir les lignes, mais là je ne lui ai pas demandé et ça m'étonnerait qu'il l'ait pigé tout seul, que c'est ce que je voulais... En plus si je mets 30 il me fait 20 lignes et si ce n'est pas un multiple de 3, il n'affiche rien... Comprends pas...
Partager