martes, 14 de abril de 2009

Formateo Europeo de datos numéricos en Sharepoint

Objetivo:
Formateo se datos decimales y numéricos y separador de miles se presente en formato europeo,el separador de miles sea el punto "." y el separador de decimales la coma ","

Ingredientes y Receta:
es necesario en primer lugar reemplazar el tag <xsl:decimal-format NaN="" > por estos dos tags, esto es necesario para cada web part que utilicemos.

<xsl:decimal-format NaN="" decimal-separator=',' grouping-separator='.' />
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />

Al ponerlo el web part pueden arrojar errores en funciones de formateo
para solventarlo solo hay que Reemplazar la cadena de formateo todas las funciones format number


Buscar "#,##0,00;-#,##0.00" y reemplazar todos por "#.##0,00;-#.##0,00"

Ejemplo 1 Sin decimales y con separador de miles:
Antes:<xsl:value-of select="format-number($total-so-far, '#.##0;-#.##0')"/>
Después:<xsl:value-of select="format-number($total-so-far, '#,##0;-#,##0')"/>

Ejemplo 2 con separador de miles y decimales
Antes:<xsl:value-of select="format-number($total-so-far, '#,##0,00;-#,##0.00')"/>
Después:<xsl:value-of select="format-number($total-so-far, '#.##0,00;-#.##0,00')"/>

Ejemplo 3 Porcentajes:
Antes:<xsl:value-of select="format-number(@Porcentaje_x0020_Amortizacion div 100, &quot;###0,00%;-###0,00%&quot;)" />
Después:<xsl:value-of select="format-number(@Porcentaje_x0020_Amortizacion div 100, &quot;###0.00%;-###0.00%&quot;)" />



Con este truco del translate podemos resolver el problema de que funcionen bien los decimales
<xsl:variable name="americano" >,.</xsl:variable>
<xsl:variable name="europeo">.,</xsl:variable>
<xsl:value-of select="format-number(translate(@PorcentajeEjemplo,$americano,$europeo), "###0,##;-###0,##",'european')" />

Espero os resulte de utilidad, saludos

http://www.robertomarcos.com/

No hay comentarios:

Publicar un comentario