SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




In der Datenansicht die Gesamtstunden berechnen

Unbeantwortet Dieser Beitrag hat 10 Antworten

Ohne Rang
71 Beiträge
Tony23 erstellt 11 März 2013 12:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe ein Problem! Ich möchte, dass in einer Datenansicht die Gesamtstunden eines Mitarbeiters berechtnet werden. Hier ist ein Ausschnitt meiner Datenansicht:

 Anstelle des Ergebnisses wird mir ein "NAN" zurückgegeben.

Die (fehlerhafte) Formel dazu sieht folgendermaßen aus:

<xsl:value-of select="sum(/dsQueryResponse/Rows/Row[@Gesamb!= '']/@Gesamb)"/>

Was mache ich da falsch? Liegt es am Format?

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 März 2013 13:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das gewählte Format (hh:mm) kann per XSL nicht korrekt verarbeite werden. Du müßtest also die Arbeitszeit einer Zeile im Industireformat darstellen. Eine Viertelstunde wäre dann 0,25 anstatt 0:15).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 11 März 2013 14:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Verstehe, so werde ich das dann machen. Danke

Ohne Rang
71 Beiträge
Tony23 Als Antwort am 11 März 2013 16:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

ich habe es so gemacht, wie Du es vorgeschlagen hattest, trotzdem klappt es nicht. Habe ich Dich vielleicht falsch verstanden. Hier ist meine neue Datenansicht:

Die Formel dazu:<xsl:value-of select="sum(/dsQueryResponse/Rows/Row[@Dezimal!= '']/@Dezimal)"/>

Die Spalten "Gesamt" und "Dezimal" sind übrigens berechnete Spalten.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 März 2013 16:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sorry, das hätte ich vielleicht gleich erwähnen sollen. XSL kennt nur das englische Zahlenformat, also 0.5 statt 0,5

In der berechneten Spalte wirst Du dann damit leben müssen. In XSL kannst Du die Summe aber wieder ins deutsche Format bringen. Entweder mit der translate()-Funktion den Punkt durch ein Komma ersetzen oder mit xsl:decimal-format formatieren.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 11 März 2013 17:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

stehe gerade total auf dem Schlauch! Wie mache ich das denn?

Meinst Du sowas hier:

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

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 März 2013 17:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sowas meine ich und dazu gehört die format-number()-Funktion: http://www.w3schools.com/xsl/el_decimal-format.asp

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 12 März 2013 10:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

ich habe mir die Seite angeguckt und habe es versucht, siehe unten:

 <?xml version="1.0" encoding="ISO-8859-1"?>
< xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

< xsl:decimal-format name="european"
decimal-separator="," grouping-separator="."/>
< xsl:template match="/">
< xsl:value-of
select="format-number(sum(/dsQueryResponse/Rows/Row[@Gesamt!= '']/@Gesamt), '#.00','european')"/>
< /xsl:template>
< /xsl:stylesheet>

Da ich aber leider kein XSL-Experte bin, weiß ich auch nicht, wo ich diesen Absatz im Code platzieren soll.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 März 2013 10:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Tony23"]weiß ich auch nicht, wo ich diesen Absatz im Code platzieren soll[/quote]

Na da wo Du die Ausgabe haben möchtest ;-)

Sorry, aber mehr kann ich nicht dazu sagen ohne die genauen Umstände zu kennen. Das <xsl:decimal-format /> ist schon richtig, also ganz oben im Stylesheet. Das xsl:value-of select="format-number()" /> gehört an die Stelle, wo die Summe erscheinen soll.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 12 März 2013 11:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

das xsl:value-of select="format-number()" /> habe ich an die Stelle, wo die Summe erscheinen soll, hinzugefügt. Mein Problem ist das <xsl:decimal-format />. Wenn ich es ganz oben ins Stylesheet packe, habe ich eine Fehlermeldung:

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 März 2013 13:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Tony23"]Wenn ich es ganz oben ins Stylesheet packe, habe ich eine Fehlermeldung[/quote]

Welche?

Packe es mal unterhalb von output und den params's

Viele Grüße
Andi
af @ evocom de
Blog