Opmerking: Dit werd voor het eerst geplaatst op www.endusersharepoint.com Hier: http://www.endusersharepoint.com/2009/11/02/Comparing-dates-in-a-data-View-web-part-to-Build-a-WSS-KPI-in-SharePoint/.
Dit is nog een andere blog post op het vergelijken van datums in XSL in een webonderdeel voor gegevensweergave in SharePoint.
Dit is mijn scenario:
- Ik heb een aangepaste lijst.
- De zakelijke doeleinden van de lijst is ter ondersteuning van het idee van een nieuwe werknemer en zijn/haar taken worden voltooid binnen 7 dagen van het starten van de baan.
- Ze zijn in een "waarschuwing zone" na 4 dagen als zij niet deze taken hebt voltooid.
- Ik wil maken van een eenvoudig dashboard dat groen toont wanneer ze ofwel de taak hebt voltooid of als zij hebben meer dan 4 dagen om het te voltooien.
- Ik wil het dashboard te tonen geel als ze in de waarschuwing zone.
- Ik wil om te laten zien rood als ze niet hebt voltooid van de taak na de vervaldatum.
Ik geleend van in dit artikel op Marc Andersons Blog (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) om de vergelijking logica en in dit artikel op www.endusersharepoint.com voor de fundamentele ideeën achter het dashboard (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) geschreven door Toni Frankola.
U moet de ondersteunende blogs lezen, maar de uitvoering gaat als volgt:
- Een inhoudstype maken (kolommen + CT)
- Een aangepaste lijst maken en koppelen aan het type inhoud.
- Een pagina met webonderdelen maken.
- De aangepaste lijst toevoegen aan de pagina met webonderdelen.
- Open de pagina in SPD.
- De lijst converteren naar een DVWP.
- De XSL voor het genereren van de dashboard-bits wijzigen.
Ik heb twee data: een waarschuwing en een einddatum. De datums vergelijken, mijn xsl doet het volgende:
<XSL:Kies> <!-- Wanneer zowel beleid als handboek zijn ondertekend, Wij zijn groen ongeacht datums. -->
<XSL:Wanneer test="@Employee_x0020_Handbook_x003F_ = 1 en @Security_x0020_Policies = 1"> <img src= "/ _layouts/beelden/KPIDefault-0.GIF" ALT= "Geen problemen"/> <een href= "/ Vandoelstelling/lijsten/nieuwe werknemer Checklist/EditForm.aspx?ID ={@ ID}&Bron = / vandoelstelling/gedeelde huren documenten/nieuwe Dashboard.aspx"> [Bewerken]</een> </XSL:Wanneer> <!-- Toon amber indicator als we voorbij de waarschuwing datum. -->
<XSL:Wanneer test= "ddwrt:FormatDateTime(tekenreeks(DDWRT:Vandaag()), 1033, 'JJJJMMDD') >= ddwrt:FormatDateTime(tekenreeks(@TaskDueDate), 1033, 'JJJJMMDD')"> <img src="/_layouts/images/KPIDefault-2.gif" ALT= "Achterstallig"/> <een stijl= "rand: 0PX" href= "/ Vandoelstelling/lijsten/nieuwe werknemer Checklist/EditForm.aspx?ID ={@ ID}&Bron = / vandoelstelling/gedeelde huren documenten/nieuwe Dashboard.aspx"> [Bewerken]</een> </XSL:Wanneer> <!-- Toon rood lampje als we de vervaldatum passeerden. -->
<XSL:Wanneer test= "ddwrt:FormatDateTime(tekenreeks(DDWRT:Vandaag()), 1033, 'JJJJMMDD') >= ddwrt:FormatDateTime(tekenreeks(@Warning_x0020_Date), 1033, 'JJJJMMDD')"> <img src="/_layouts/images/KPIDefault-1.gif" ALT= "Waarschuwing"/> <een href= "/ Vandoelstelling/lijsten/nieuwe werknemer Checklist/EditForm.aspx?ID ={@ ID}&Bron = / vandoelstelling/gedeelde huren documenten/nieuwe Dashboard.aspx"> [Bewerken]</een> </XSL:Wanneer> <!-- Als we hier krijgen, We zijn eerder dan de datum van de waarschuwing, dus we zijn groene. -->
<XSL:anders> <img src= "/ _layouts/beelden/KPIDefault-0.GIF" ALT= "Geen problemen"/> <een href= "/ Vandoelstelling/lijsten/nieuwe werknemer Checklist/EditForm.aspx?ID ={@ ID}&Bron = / vandoelstelling/gedeelde huren documenten/nieuwe Dashboard.aspx"> [Bewerken]</een> </XSL:anders> </XSL:Kies> |
Een paar belangrijke punten van bovenaf:
- Ik probeerde om te vergelijken datums zonder gebruik te maken van de functionaliteit ddwrt en kreeg nergens. Ik begrijp nog steeds niet dat. Ze correct weergegeven datums, maar beide">"en"<"vergelijkingen altijd mislukt. In het einde, DDWRT kwam tot mijn redding (Bedankt, weer, Marc).
- Ik ben ook worden getoond een [Bewerken] link naar het item. Ik deed dit voornamelijk zodat ik kon gemakkelijk dit testen. De koppeling zelf kan nuttig zijn voor iemand die probeert te achterhalen.
- Dit is geïmplementeerd in SharePoint online en werkt mooi.
- De beelden die ik in de map _layouts referentie (/_layouts/beelden/KPI...) uit de doos in mijn omgeving beschikbaar zijn, zodat ze waarschijnlijk beschikbaar voor u als goed zijn.
Hier is een screenshot van hoe het eruit voor mij:
</einde>
Volg mij op Twitter op http://www.twitter.com/pagalvin