IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL FO]Comment faire évoluer une variable


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut [XSL FO]Comment faire évoluer une variable
    Bonjour,

    J'ai une variable qui s'incrément de un à chaque nouveau tableau dynamique.

    J'aimerai que tout les 3 tableaux, elle se réinitialise à 1 afin de boucler dessus or, il me semble qu'une variable définie ne peut changer...

    J'aimerai savoir si il existe un moyen grâce à une variable ou autre de tester que tous les 3 tableaux, je saute une page...

    (Ex : si j'ai 7 tableaux, j'ai un saut de page sous le tableau 3 et j'aimerai en avoir un sous le tableau 6, ...)

    Je vous envoie mon code :

    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
    <xsl:variable name="num">
    <xsl:number level="any" count="Tableau"/>
    </xsl:variable>
    <xsl:value-of select="$num"/>
    <fo:block>
    <xsl:if test="$num = 3">
    <fo:block>
    <fo:external-graphic src="file::AideInfo/img/logo_probtp.gif"/>
    </fo:block>
    <fo:block break-after="page">
    </fo:block>
    <xsl:variable name="num" select="1">
    </xsl:variable>
    </xsl:if>
    </fo:block>
    Merci pour votre future aide...

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    t'as essayé avec le "modulo" 3?
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Quand t'es dans un for-each t'as acces à la function position().
    Après tu peux en effet faire un test="(position() mod 3) = 0"

    Sinon voila une approche itérative (à éviter en général) en utilisant récursivement des call-template. Ici la variable $i va de 1 à 10:
    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
     
    <xsl:call-template name="for.loop">
    	<xsl:with-param name="i">1</xsl:with-param>
    	<xsl:with-param name="count">10</xsl:with-param>
    </xsl:call-template>
    <!-- Rename "old name" elements to "new name" -->
    <xsl:template name="for.loop">
    	<xsl:param name="i"/>
    	<xsl:param name="count"/>
    	<xsl:if test="$i &lt;= $count">
    <!--    body of the loop goes here    -->
    	</xsl:if>
    	<xsl:if test="$i &lt;= $count">
    		<xsl:call-template name="for.loop">
     
    			<xsl:with-param name="i">
    				<!-- Increment index-->
    				<xsl:value-of select="$i + 1"/>
    			</xsl:with-param>
    			<xsl:with-param name="count">
    				<xsl:value-of select="$count"/>
    			</xsl:with-param>
    		</xsl:call-template>
    	</xsl:if>
    </xsl:template>

  4. #4
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    Merci pour toutes vos réponses je n'ai pas encore eu le temps de tester mais j'avais déjà réfléchi au mod 3

    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire passer une variable en plus d'un formulaire
    Par frisouille12 dans le forum Langage
    Réponses: 1
    Dernier message: 06/08/2009, 15h06
  2. Comment faire passé une variable php vers un lecteur flash ?
    Par jeanluc974 dans le forum Intégration
    Réponses: 2
    Dernier message: 24/06/2008, 13h16
  3. [JMeter]Comment faire suivre une variable ?
    Par cobios dans le forum Outils
    Réponses: 2
    Dernier message: 15/06/2007, 14h57
  4. Réponses: 1
    Dernier message: 20/10/2006, 18h46
  5. Réponses: 15
    Dernier message: 25/04/2006, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo