Skapar en htm fil via xlm och xsl Vet inte om det spelar någon roll här men XML använder normalt punkt som decimalavskiljare.Testa decimalvärde i xsl
Vill kunna färga td ar när värden är över ex 100
Funkar bra med heltal
Om jag skickar decimaltal så funkar det inte
Någon som har en lösning
Utdrag ur XLM
<code>
<prop name="eff203_TOT" caption="Kokeri effektivitet" unit="%" type="N">
<pval state="2">81,6</pval>
<pval state="2">106,6</pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
<pval state="-100"></pval>
</prop>
<prop name="eff203_SUMTOT" caption="Kokeri effektivitet året" unit="%" type="N">
<pval state="2">94,1</pval>
</prop>
</code>
Utdrag ur XSL
<code>
<!-- Effektivitet kokeri -->
<xsl:call-template name="proplineH">
<xsl:with-param name="propname">eff203</xsl:with-param>
</xsl:call-template>
<!--
************************************************
Funktionen: proplineH
Skriver ut hela raden inklusive rubrik, enhet och formattering
param1 = "propname" ; Namn pa id i XML-filen som skall skrivas ut
************************************************
-->
<xsl:template name="proplineH">
<xsl:param name="propname"/>
<tr align="right">
<xsl:variable name="pname" select="@name"/>
<xsl:variable name="arsum" select="concat($propname,'_SUMTOT')"/>
<xsl:variable name="manadval" select="concat($propname,'_TOT')"/>
<!-- Set line header -->
<td class="rubrik"><xsl:value-of select="//prop[@name=$manadval]/@caption"/></td>
<td class="rubrik" style="font-weight: normal; text-align: center;"><xsl:value-of select="//prop[@name=$manadval]/@unit"/></td>
<!-- Set values of the year -->
<!-- arsmedel -->
<xsl:for-each select="//prop[@name=$arsum]/pval">
<xsl:choose>
<xsl:when test=".>100">
<td><xsl:attribute name="style">background-color: #FFFF00; padding-left=5px; padding-right=5px;"</xsl:attribute><xsl:value-of select="//prop[@name=$arsum]/pval"/></td>
</xsl:when>
<xsl:otherwise>
<td style="background-color: #FFFFCC; padding-left=5px; padding-right=5px;"><xsl:value-of select="//prop[@name=$arsum]/pval"/></td>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<!-- manader -->
<xsl:for-each select="//prop[@name=$manadval]/pval">
<xsl:choose>
<xsl:when test=".>100">
<td><xsl:attribute name="style">background-color: #FFFF00;"</xsl:attribute><xsl:value-of select="."/></td>
</xsl:when>
<xsl:otherwise>
<td style="padding-left=5px; padding-right=5px;"><xsl:value-of select="."/></td>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</tr>
</xsl:template>
</code>Sv: Testa decimalvärde i xsl
(XML använder ju ISO standard på datumformat så varför man inte ISO standard, dvs komma, som decialavskiljare vet jag inte)Sv:Testa decimalvärde i xsl
Löste det på detta sätt
Byter ut komma mot punkt innan jämförelsen
<code>
<xsl:when test="translate(.,',','.')>100">
</code>