Anmärkning: Detta var först publicerad på www.endusersharepoint.com Här: http://www.endusersharepoint.com/2009/11/02/Comparing-dates-in-a-data-View-Web-part-to-build-a-WSS-KPI-in-SharePoint/.
Detta är en annan blogg inlägg på jämföra datum i XSL i en datavywebbdel i SharePoint.
Detta är min scenario:
- Jag har en egen lista.
- Business syftet med listan är att stödja idén om en ny medarbetare och sina arbetsuppgifter att slutföras inom 7 dagar efter jobbet startas.
- De är i en "varning zon" efter 4 dagar om de inte har slutfört dessa uppgifter.
- Jag vill skapa en enkel instrumentpanel som visar grönt när de antingen har slutfört aktiviteten eller om de har mer än 4 dagar att slutföra det.
- Jag vill på instrumentpanelen visar gult om de finns i zonen varning.
- Jag vill att visa rött om de inte har slutfört aktiviteten efter förfallodatum.
Jag lånade från denna artikel vid Marc Anderson blogg (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) att få logiken som jämförelse och denna artikel vid www.endusersharepoint.com för de grundläggande idéerna bakom instrumentpanelen (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) skriven av Toni Frankola.
Du bör läsa den stödjande bloggen, men genomförandet går såhär:
- Skapa en innehållstyp (kolumner + CT)
- Skapa en anpassad lista och associera den med innehållstypen.
- Skapa en webbdelssida.
- Lägg till den anpassade listan till webbdelssidan.
- Öppna sidan i SPD.
- Konvertera listan till ett DVWP.
- Ändra XSL att generera instrumentpanelen bitar.
Jag har två datum: en varning datum och ett förfallodatum. Att jämföra datum, min xsl gör följande:
<XSL:Välj> <!-- När både handbok och politik är signerade, Vi är gröna oberoende av datum. -->
<XSL:När Testa="@Employee_x0020_Handbook_x003F_ = 1 och @ Security_x0020_Policies = 1"> <IMG src= / _layouts/bilder/KPIDefault-0.GIF" ALT= "Inga problem"/> <en href= "/ HumanResources/listor/ny medarbetare Checklist/EditForm.aspx?ID ={@ ID}&Källa = / HumanResources/delade hyra dokument/nya Dashboard.aspx"> [Redigera]</en> </XSL:När> <!-- Visa gula indikator om vi tidigare varning datum. -->
<XSL:När Testa= "ddwrt:FormatDateTime(sträng(ddwrt:Idag()), 1033, "ÅÅÅÅMMDD") >= ddwrt:FormatDateTime(sträng(@ TaskDueDate), 1033, "ÅÅÅÅMMDD")"> <IMG src="/_layouts/images/KPIDefault-2.gif" ALT= "Overdue"/> <en stil= "kant: 0px" href= "/ HumanResources/listor/ny medarbetare Checklist/EditForm.aspx?ID ={@ ID}&Källa = / HumanResources/delade hyra dokument/nya Dashboard.aspx"> [Redigera]</en> </XSL:När> <!-- Visa röda indikatorn om vi är passerat förfallodagen. -->
<XSL:När Testa= "ddwrt:FormatDateTime(sträng(ddwrt:Idag()), 1033, "ÅÅÅÅMMDD") >= ddwrt:FormatDateTime(sträng(@ Warning_x0020_Date), 1033, "ÅÅÅÅMMDD")"> <IMG src="/_layouts/images/KPIDefault-1.gif" ALT= "Varning"/> <en href= "/ HumanResources/listor/ny medarbetare Checklist/EditForm.aspx?ID ={@ ID}&Källa = / HumanResources/delade hyra dokument/nya Dashboard.aspx"> [Redigera]</en> </XSL:När> <!-- Om vi får här, Vi är tidigare än datumet som varning, så vi är grön. -->
<XSL:Annars> <IMG src= / _layouts/bilder/KPIDefault-0.GIF" ALT= "Inga problem"/> <en href= "/ HumanResources/listor/ny medarbetare Checklist/EditForm.aspx?ID ={@ ID}&Källa = / HumanResources/delade hyra dokument/nya Dashboard.aspx"> [Redigera]</en> </XSL:Annars> </XSL:Välj> |
Några viktiga punkter från ovan:
- Jag försökte jämföra datum utan att använda ddwrt funktionaliteten och fick ingenstans. Jag förstår det fortfarande inte. De datum visas korrekt, men båda">"och"<"jämförelser alltid misslyckats. I slutet, ddwrt kom till min räddning (Tack, igen, Marc).
- Jag också visa en [Redigera] länka till artikeln. Jag gjorde detta främst så att jag kunde lätt testa här ute. Själva länken kan vara användbar för någon som försöker lista ut.
- Detta genomförs i SharePoint online och fungerar snyggt.
- Bilderna jag referera i katalogen _layouts (/_layouts/bilder/KPI…) är tillgängliga i rutan i min miljö så att de antagligen tillgängligt för dig samt.
Här är en skärmdump av hur det ser ut för mig:
</slutet>
Följ mig på Twitter vid http://www.twitter.com/pagalvin