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.




Now() / Today() in calculated Fields

Unbeantwortet Dieser Beitrag hat 11 Antworten

Ohne Rang
24 Beiträge
Max Melcher erstellt 9 Aug. 2010 13:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe folgendes Problem:

Ich möchte, anhand der letzten Modifikation eine Statusampel anzeigen lassen. Dazu habe ich drei Felder, 1 Datum und 2 Stundenangaben (last status change, time to react yellow, time to react red) und möchte daraus die Ampel ableiten:

Now - Last Status Change > Time to react red   => Red

Now - Last Status Change > Time to react yellow => Yellow


Nun ist mein Problem, dass Now() immer noch nicht in calculated fields gehen, oder? Today ging in 2007 mittels Workaround, in 2010 gehts nicht mehr.


Rein mit Javascript wäre es auch kein Problem - jedoch kann man dann die Liste nicht mehr sortieren (KO-Kriterium).


Letztendlich läufts auf nen Feature raus oder einen Workflow, der den Status umsetzt - oder fällt jemand eine Alternative ein?

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Aug. 2010 14:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hängt davon ab, wie Du die Ampel darstellen möchtest. Wenn das in einer SharePoint Designer Datenansicht passiert, dann kann man dort auch die Berechnungen durchführen und auf das berechnete Feld ganz verzichten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
24 Beiträge
Max Melcher Als Antwort am 9 Aug. 2010 14:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ist es dann noch sortierbar? Es würde langen wenn in dem Status-Feld rot gelb grün steht für den entsprechenden Status - den Rest könnte ich auch mit Javascript einblenden lassen.

Danke für die schnelle Antwort.

Max

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Aug. 2010 15:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Max Melcher"]Ist es dann noch sortierbar?[/quote]

Nein, aber dafür bist Du in der Darstellung völlig frei. Ansonsten bleben nur die von Dir weiter oben genannten Möglichkeiten (EventReceiver, Workflow).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
24 Beiträge
Max Melcher Als Antwort am 9 Aug. 2010 15:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich versuchs gerade mit Nintex. Der Event-Receiver fällt aus, denn es gibt kein Event. Die Ampel soll ja nach einer gewissen Anzahl von Stunden wechseln - auf jedem Item möchte ich allerdings kein Workflow haben - ich denke ich werde einen Site Collection Workflow machen der über die Liste iteriert...

Danke trotzdem!

Max

Ohne Rang
24 Beiträge
Max Melcher Als Antwort am 10 Aug. 2010 14:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Noch ne Frage: Ich will wenn der Status gesetzt wird, das nicht alle anderen Workflows, die auf on modify starten, nicht gestartet werden. Gibts da ne Möglichkeit? In Sp2007 konnte man in nem EventReceiver DisableEventFiring machen - gibts da was in SP2010?

Grüße

Max

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Aug. 2010 14:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Max Melcher"]In Sp2007 konnte man in nem EventReceiver DisableEventFiring machen - gibts da was in SP2010?[/quote]

Genau dasselbe.

Edit: es heißt anders, d.h. es gibt jetzt eine bool'sche Eigenschaft EventFiringEnabled

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Trader Als Antwort am 9 Okt. 2012 16:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

hallo mitenand

Ich habe mich im Internet bisschen rumgelesen bezüglich dem Today field, da aber bei vielen auf ein individuelles Problem eingegangen wird, bringt mir das ganze auch nicht so viel. Ich benötige ein Feld, wo das heutige Datum ersichtlich ist, da ich dann die Differenz zwischen Deadline und heutigem Datum in einem anderen Feld berechnen und darauf eine Ampel als Indikator einbauen kann.

Nun, ich bin nicht so der SHPDesigner 2010 Freak, hab aber das mit den Ampeln und dem Script erfolgreich hinbekommen.

Falls ihr mir eine Lösung im Designer vorschlägt, bitte etwas detaillierter, falls mit Java, einfach ein Script beilegen.

Wäre hammer, ein dynamisches Feld hinzubekommen

Beste Grüsse

Simon

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Okt. 2012 12:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dazu brauchst Du kein berechnetes Feld. Beispiel: http://blogs.evocom.de/af/archive/2011/04/07/datumsvergleiche-für-bedingte-formatierungen-in-datenansichten.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Trader Als Antwort am 10 Okt. 2012 14:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

hilft mir nicht!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Okt. 2012 15:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann wirst Du programmieren müssen: einen eigenen Feldtyp, der sich nach Deinen Wünschen verhält. [Heute] funktioniert in berechneten Spalten jedenfalls nicht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge
Trader Als Antwort am 12 Okt. 2012 09:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe nochmal ne Frage:

Folgendes habe ich gemacht: Ich habe eine Liste kreiert, mit Deadline (Date field) und Days Left field (=calculated Field) mit folgender Formel:

=IF([Milestone order to FENT]=0,"No date",[Milestone order to FENT]-DATE(1970,1,1))

Darauf habe ich im beschriebenen Feld logischerweise grosse Zahlen erhalten (um die 15000, da ja auf 1970 rückdatiert wird).

Dann habe ich zusätzlich eine Spalte kreiert (Indikator, auch calculated field) mit folgender Formel:

="Indikator#"&IF([Days Left]>14,"ampelgreen",IF(AND([Days Left]<=14,[Days Left]>2),"ampelyellow",IF(AND([Days Left]<=2,[Days Left]>=-5),"ampelred","Chrigu")))

an den zwei FOrmeln ist nichts auszusetzen, die funzen prima.

Dann hab ich in einem CEWP ein Java Script hinterlegt, und darauf hat es mir die Ampeln angezeigt, natürlich alle in grün (ampelgreen), da der Bezug ja auf die 15000er Zahlen gilt. So weit mal alles gut:

Nun möchte ich aber zusätzlich das Today field mit einem Workaround umgehen. Dazu muss programmiert werden und das hab ich folgendermassen gemacht:

Ich hab eine Weppartpage kreiert, im Designer geöffnet, dann meine obig beschriebene Liste eingefügt und ein Data Form Web Part erschaffen. Darauf bin ich in den Code gegangen und hab die einze Zeile mit dem Java Script ausgetauscht:

<DIV align = "right">
<xsl:variable name="StrDaysLeft" select="@Days_x0020_Left" />
<xsl:variable name="NbDaysLeft" select="number(translate(@Days_x0020_Left,',',''))" />
<script type="text/javascript">
var d = new Date();
var StrDaysToDue = &apos;<xsl:value-of disable-output-escaping="no" select="$StrDaysLeft" />&apos;;
var DaysToDue = &apos;<xsl:value-of disable-output-escaping="no" select="$NbDaysLeft" />&apos;;
var DaysToToday = (d.getTime() / 86400000);
if (StrDaysToDue == &quot;No due date&quot;)
{
document.write (StrDaysToDue);
}
else
{
var NumberOfDaysLeft = Math.round((DaysToDue - DaysToToday)*10)/10;
if (NumberOfDaysLeft &gt;= 0)
{
document.write (NumberOfDaysLeft);
}
else
{
document.write (&quot;OVERDUE! &quot; + NumberOfDaysLeft);
}
}
</script>
</DIV>

und es hat auch prima funktioniert. Unter Site Asstes, wo ich die Wep Part Page abgelegt habe, wurde dann auch schön in Tagen die Differenz zw Deadline und Today angezeigt (z.B. 4.5 oder 15.6 oder auch -10.1). So weit eigentlich auch alles gut.

Nun aber die Ernüchterung:

Die Ampeln standen immernoch au grün, eigenlich sollten sie ja jetzt andere Farben einnehmen, aber da ich sie in der Liste kreiert habe und dann die Liste in die Web Part Page eingefügt und darauf dann im Designer das java angesetzt habe, vermute ich, dass die Ampeln, resp das dafür im CEWP hinterlegte Java nur in der Liste funktioniert und nicht im WebPart. Das ist natürlich nicht so sexy, zumal ich die WebPartPage ja in SHP schlecht bearbeiten kann.

Hat mir jemand eine Lösung, wie die Ampeln auf das neu definierte Days Left feld (also die schönen Zahlen, nicht 15000ner Zahlen) zugreifen kann??

Hab dafür auch extra oberdetailliert beschrieben ;)

besten Dank schon im voraus

Lg

Simon