SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Bedingte Formatierung mit Datum

bewertet von 0 Usern
Beantwortet Dieser Beitrag hat 1 Geprüfte Antwort | 4 Antworten | 1 Follower

Ohne Rang
2 Beiträge
Alex07 erstellt in 31 Mai 2012 17:36

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

Beantwortet Geprüfte Antwort

Top-10-Beitragsschreiber
18.754 Beiträge

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

Alle Antworten

Top-10-Beitragsschreiber
18.754 Beiträge

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

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

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?

Top-10-Beitragsschreiber
18.754 Beiträge

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
Seite 1 von 1 (5 Elemente) | RSS