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.




Bedingte Formatierung mit Datum

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
2 Beiträge
Alex07 erstellt 31 Mai 2012 17:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Zusammen,

habe folgendes Problem und komme leide nicht weiter:

Ich habe eine Spalte mit einem Datum. Auf dieser kann ich eine bedingte Formatierung einrichten die bewirkt dass wenn das eingetragene Datum z.B. größer ist als Heute die Schriftfarbe des wertes z.B. gelb gefärbt wird. Code:

<xsl:if test="ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($thisNode/@Spalte_Datum))) &gt; ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($Today)))" ddwrt:cf_explicit="1">color: #FFFF00;</xsl:if>

Das funktioniert auch einwandfrei.
Nun möchte ich aber dass nicht alles in der Zukunft gelb eingefärbt wird, sondern nur die nächsten 30 Tage ab heute. Wo/an welcher stelle sind die +30 Tage im Code hinzuzufügen?

Vielen Dank schon mal

Alex

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 1 Juni 2012 13:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das geht leider nicht so einfach, weil hier mit Strings gearbeitet wird. Du mußt das Datum dazu in einen Zahlenwert umwandeln. Dieser Beitrag könnte Dir da weiterhelfen (sieh auch die Kommentare ganz unten): https://andifandrich.wordpress.com/2011/04/07/datumsvergleiche-fuer-bedingte-formatierungen-in-datenansichten/

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
2 Beiträge
Alex07 Als Antwort am 4 Juni 2012 12:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

perfekt, das ist die Lösung:

Hier der Code:

<xsl:if test="number(concat(substring(string($thisNode/@N_x00e4_chster_x0020_Kontakt),7,4),substring(string($thisNode/@N_x00e4_chster_x0020_Kontakt),4,2),substring-before(string($thisNode/@N_x00e4_chster_x0020_Kontakt),'.'))) &lt; translate(substring-before(ddwrt:TodayIso(),'T'),'-','')+30" ddwrt:cf_explicit="1" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">color: #FFBB47;</xsl:if>

Alles was 30 Tage in der Zukunft liegt und alles in der Vergangenheit wird Orange angezeigt.

Vielen Dank!

Ohne Rang
12 Beiträge
Clouseau Als Antwort am 6 Apr. 2016 22:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dieser Thread ist zwar sehr alt. Da ich im Moment aber vor dem gleichen Problem stehe, muß ich künftige Besucher darauf hinweisen, daß diese Lösung leider nicht funktioniert!

Hier wird mit Stringverarbeitung das Datum zu einer Zahl vom Typ JJJJMMTT verarbeitet. Der 31. Dezember 2016 wird somit zur Zahl 20161231. Der 01.01.2017 ist im Kalender nur 1 Tag entfernt. Zur Zahl 20170101 ist die Differenz aber 8870! Somit kann man in dieser Formel nicht einfach die Zahl 30 addieren und erwarten, daß das 30 Tage sind!

Gibt es eine andere Funktion in SharePoint, mit der man dieses Problem lösen kann?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Apr. 2016 08:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich glaube Du hast das Problem nicht ganz verstanden. Die Differenz ist doch völlig schnurz. Es geht nur darum, daß man per XSL zwei Datumswerte vergleichen kann, weil man eben genau das für die bedingte Formatierung benötigt.

Aber inzwischen sind wir ja ein gutes Stück weiter und in 2013 (und 2016 kann man sowas ganz anders per CSR lösen...

Viele Grüße
Andi
af @ evocom de
Blog