Modifier la couleur des indicateurs numériques
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:
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:
1 2 3 4 5 6 7 8 9 10 11 12
|
<xsl:choose>
<xsl:when test="$EVOL_CA_HT_N_vs_N1 < 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.