XSL: Zahlen auf zwei Nachrommastellen runden

RavenKN

Mitglied
Hallo Tutorials.de-Community,

ich habe folgendes Problem und hoffe, dass ihr mir da weiterhelfen könnt:
Ich programmiere eine PDF-Export-Funktion in C#. Ich wandle die Daten aus der DB in XML und versuche dieses mit XSL-FO nach PDF zu konvertieren.

In der DB haben die Beträge 4 Nachkommastellen (Typ: money bei MS SQL). Dies ist im Programm und XML erwünscht, allerdings nicht im PDF. Meine Frage nun:
Gibt es eine Möglichkeit im XSL-File die Werte auf zwei Nachkommastellen runden zu lassen?

--
Vielen Dank schonmal im Voraus!!


betreffender Ausschnitt aus dem XML File:
Code:
...
  <InvoicePositions>
    <TotalClearAmount>11110,0000</TotalClearAmount>
    <TotalGrossAmount>11730,9000</TotalGrossAmount>
...

betreffender Ausschnitt aus dem XSL File:
Code:
...
                <fo:table-row height="0.7cm">
                  <fo:table-cell/>
                  <fo:table-cell>
                    <fo:block font-family="sans-serif">
                      Netto-Betrag
                    </fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block font-family="sans-serif" text-align="right">
                      <xsl:value-of select="Invoice/InvoicePositions/TotalClearAmount" />
                    </fo:block>
                  </fo:table-cell>
                </fo:table-row>
...
 
Okay, ich der XSL steht jetzt folgendes:

Code:
...
<xsl:value-of select='format-number("Invoice/InvoicePositions/TotalGrossAmount", "###,###.00")'/>
...

Im PDF allerdings kommt bei mir anstatt dem Wert "NaN".
Was mach ich falsch?

PS:
Code:
...
<xsl:value-of select='format-number(Invoice/InvoicePositions/TotalGrossAmount, "###,###.00")'/>
...

geht auch nicht.
 
Hi.

Der zweite Code wäre richtig, wenn in dem XML gültige Zahlenwerte stehen würden. Das Komma ist aber kein gültiges Zeichen als Teil einer Nummer in XSL.

Entweder du berichtigst das XML oder du mußt vorher das Komma durch einen Punkt ersetzen bevor du format-number aufrufst.

Gruß
 
Zurück