Bonjour,

A partir de 2 variables :
- CA N
- CA N-1

Je calcule l'évolution du CA N par rapport à CA N-1 :
- EvolCA = (CA N - CA N-1) / CA N-1

Jusque là, pas de soucis, j'ai défini le format des nombres, et j'ai les 3 variables suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<xsl:decimal-format name = "chiffres" decimal-separator="." grouping-separator=" " minus-sign="-" digit="D" pattern-separator="!" />
 
<xsl:variable name="CA_HT_N"  select="sum(/.../@ca_ht)"/>
<xsl:variable name="CA_HT_N1" select="sum(/.../@ca_ht_n1)"/>
 
<xsl:variable name="EVOL_CA_HT_N_vs_N1">
	<xsl:choose>
		<xsl:when test="$CA_HT_N1 != 0">
			<xsl:value-of select="(($CA_HT_N - $CA_HT_N1) div $CA_HT_N1 * 100)"/>
		</xsl:when>
		<xsl:otherwise>0</xsl:otherwise>
	</xsl:choose>
</xsl:variable>
Ensuite, j'affiche ces variables dans un tableau. Ce que je voudrais c'est changer la couleur de EVOL_CA_HT_N_vs_N1 selon le nombre retourné :
- = 0 : Noir
- > 0 : Vert
- < 0 : Rouge

Du coup, j'ai fait un CHOOSE avec les 3 tests. Ca fonctionne, certes, mais je ne trouve pas ça terrible car très lourd vu le nombre d'indicateurs que j'ai à afficher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<xsl:choose>
	<xsl:when test="$EVOL_CA_HT_N_vs_N1 &lt; 0"> 
		<font color="red"> <xsl:value-of select="format-number($EVOL_CA_HT_N_vs_N1, 'DD0.0', 'chiffres')"/> </font> 
	</xsl:when>
	<xsl:when test="$EVOL_CA_HT_N_vs_N1 = 0"> 
		<font color="black"> <xsl:value-of select="format-number($EVOL_CA_HT_N_vs_N1, 'DD0.0', 'chiffres')"/> </font> 
	</xsl:when>
	<xsl:otherwise>
		<font color="green"> <xsl:value-of select="format-number($EVOL_CA_HT_N_vs_N1, 'DD0.0', 'chiffres')"/> </font> 
	</xsl:otherwise>
</xsl:choose>
Est-ce que quelqu'un aurait une solution plus simple à me proposer ?

Merci d'avance pour votre aide.