Mostrando entradas con la etiqueta Formateo Europeo. Mostrar todas las entradas
Mostrando entradas con la etiqueta Formateo Europeo. Mostrar todas las entradas

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/