Note: Dette var første postet på www.endusersharepoint.com her: http://www.endusersharepoint.com/2009/11/02/comparing-dates-in-a-data-View-Web-Part-to-Build-a-WSS-KPI-in-SharePoint/.
Dette er enda en annen blogginnlegg på sammenligning av datoer i XSL i en webdel for datavisning i SharePoint.
Dette er min scenario:
- Jeg har en egendefinert liste.
- Virksomheten hovedproduktet på listen er å støtte ideen om en nyansatt og sine oppgaver fullføres innen 7 dager starter jobben.
- De er i en "Advarsel zone" etter 4 dager hvis de ikke har fullført oppgavene.
- Opprett en enkel oversikt som viser grønne når de enten har fullført oppgaven, eller hvis de har mer enn 4 dager å fullføre den.
- Jeg vil dashbordet for å vise gule hvis de er i sonen advarsel.
- Jeg vil vise rød hvis de ikke har fullført oppgaven etter forfallsdatoen.
Jeg lånte fra Denne artikkelen på Marc Andersons blogg (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) å få sammenligning logikken og Denne artikkelen på www.endusersharepoint.com for grunnleggende ideene bak dashbordet (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) Skrevet av Toni Frankola.
Du bør lese støtte blogger, men gjennomføringen går som dette:
- Opprette en innholdstype (kolonner + CT)
- Opprette en egendefinert liste og knytte den til innholdstypen.
- Opprette en webdel-side.
- Legge til egendefinerte listen webdel-siden.
- Åpne siden i SPD.
- Konvertere listen til et DVWP.
- Endre XSL for å generere dashboard biter.
Jeg har to datoer: en advarsel-dato og en forfallsdato. Sammenligne datoene, min xsl gjør følgende:
<XSL:Velg> <!-- Når både handbook og politikk er signert, Vi er grønne uansett datoer. -->
<XSL:når test="@Employee_x0020_Handbook_x003F_ = 1 og @Security_x0020_Policies = 1"> <IMG src= "/ _layouts/bilder/KPIDefault-0.GIF" alt= "Ingen problemer"/> <en href= "/ HumanResources/lister/ny ansatt Checklist/EditForm.aspx?ID ={@ ID}&Kilde = / HumanResources/delt leie dokumenter/nye Dashboard.aspx"> [Rediger]</en> </XSL:når> <!-- Vis rav indikator om vi forbi advarsel datoen. -->
<XSL:når test= "ddwrt:FormatDateTime(streng(ddwrt:I dag()), 1033, 'ÅÅÅÅMMDD') >= ddwrt:FormatDateTime(streng(@TaskDueDate), 1033, 'ÅÅÅÅMMDD')"> <IMG src="/_layouts/images/KPIDefault-2.gif" alt= "Forfalt"/> <en stil= "grensen: 0px" href= "/ HumanResources/lister/ny ansatt Checklist/EditForm.aspx?ID ={@ ID}&Kilde = / HumanResources/delt leie dokumenter/nye Dashboard.aspx"> [Rediger]</en> </XSL:når> <!-- Vis rød indikator hvis passerte vi forfallsdatoen. -->
<XSL:når test= "ddwrt:FormatDateTime(streng(ddwrt:I dag()), 1033, 'ÅÅÅÅMMDD') >= ddwrt:FormatDateTime(streng(@Warning_x0020_Date), 1033, 'ÅÅÅÅMMDD')"> <IMG src="/_layouts/images/KPIDefault-1.gif" alt= "Advarsel"/> <en href= "/ HumanResources/lister/ny ansatt Checklist/EditForm.aspx?ID ={@ ID}&Kilde = / HumanResources/delt leie dokumenter/nye Dashboard.aspx"> [Rediger]</en> </XSL:når> <!-- Hvis vi får her, Vi er tidligere enn datoen advarsel, så vi er grønne. -->
<XSL:ellers> <IMG src= "/ _layouts/bilder/KPIDefault-0.GIF" alt= "Ingen problemer"/> <en href= "/ HumanResources/lister/ny ansatt Checklist/EditForm.aspx?ID ={@ ID}&Kilde = / HumanResources/delt leie dokumenter/nye Dashboard.aspx"> [Rediger]</en> </XSL:ellers> </XSL:Velg> |
Noen viktige punkter ovenfra:
- Jeg prøvde å sammenligne datoer uten å bruke funksjonen ddwrt og har ingen steder. Jeg fortsatt forstår ikke det. De datoene vises riktig, men begge">"og"<"sammenligninger alltid mislyktes. Til slutt, ddwrt kom til unnsetning (takk, på nytt, Marc).
- Jeg er også vise en [Rediger] knytte til varen. Jeg gjorde hovedsakelig dette slik at jeg lett kunne teste dette ut. Selve koblingen kan være nyttig for noen prøver å finne ut.
- Dette er implementert i SharePoint online og fungerer fint.
- Bildene jeg referansen i _layouts-katalogen (/_layouts/bilder/KPI...) er tilgjengelig utenfor boksen i miljøet mitt så de er sannsynligvis tilgjengelig for deg også.
Her er et skjermbilde av hvordan det ser ut for meg:
</slutten>
Følg meg på Twitter på http://www.twitter.com/pagalvin