Nota: Questo è stato prima inviato presso www.endusersharepoint.com qui: http://www.endusersharepoint.com/ 2009/11/02/comparing-dates-in-a-data-view-web-part-to-build-a-wss-kpi-in-sharepoint/.
Questo è ancora un altro blog post sul confronto fra date in XSL in una web part Visualizzazione dati in SharePoint.
Questo è il mio scenario:
- Ho un elenco personalizzato.
- Affari l'elenco mira a sostenere l'idea di un nuovo dipendente e proprie mansioni per essere completato entro 7 giorni di iniziare il lavoro.
- Essi sono in una "zona di avvertimento" dopo 4 giorni se non hanno completato questi compiti.
- Voglio creare un dashboard semplice che Mostra verde quando sia hanno completato l'attività o se hanno più di 4 giorni per completarlo.
- Voglio il cruscotto per mostrare giallo se sono nella zona di avvertimento.
- Voglio mostrare rosso se non hanno completato l'attività dopo la data di scadenza.
Ho preso in prestito da in questo articolo a Di Marc Anderson Blog (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) per ottenere la logica di confronto e in questo articolo a www.endusersharepoint.com per le idee di base dietro il cruscotto (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) scritto da Toni Frankola.
Si consiglia di leggere il Blog di supporto, ma l'implementazione è questa:
- Creare un tipo di contenuto (colonne + CT)
- Creare un elenco personalizzato e associarlo con il tipo di contenuto.
- Creare una pagina web part.
- Aggiungere l'elenco personalizzato per la pagina web part.
- Aprire la pagina in SPD.
- Convertire l'elenco in un DVWP.
- Modificare il XSL per generare i bit di dashboard.
Ho due date: una data di avviso e una data di scadenza. Confrontare le date, mio xsl esegue le seguenti operazioni:
<xsl:scegliere> <!-- Quando politica e manuale sono firmati, Siamo verdi indipendentemente dalle date. -->
<xsl:Quando test="@Employee_x0020_Handbook_x003F_ = 1 e @Security_x0020_Policies = 1"> <img src= "/ layouts/immagini/KPIDefault-0.GIF" ALTNon = "problemi"/> <un href= "/ HumanResources/liste/nuovo dipendente Checklist/EditForm.aspx?ID ={@ ID}&Fonte = / HumanResources/condiviso documenti/nuovo noleggio Dashboard.aspx"> [Modifica]</un> </xsl:Quando> <!-- Indicatore visualizza ambra se siamo oltre la data di avviso. -->
<xsl:Quando test= "ddwrt:FormatDateTime(stringa(ddwrt:Oggi()), 1033, 'yyyyMMdd') >= ddwrt:FormatDateTime(stringa(@TaskDueDate), 1033, 'yyyyMMdd')"> <img src="/_layouts/images/KPIDefault-2.gif" ALT= "Scaduti"/> <un stile= "border: 0PX" href= "/ HumanResources/liste/nuovo dipendente Checklist/EditForm.aspx?ID ={@ ID}&Fonte = / HumanResources/condiviso documenti/nuovo noleggio Dashboard.aspx"> [Modifica]</un> </xsl:Quando> <!-- Visualizza indicatore rosso se noi stiamo passati la data di scadenza. -->
<xsl:Quando test= "ddwrt:FormatDateTime(stringa(ddwrt:Oggi()), 1033, 'yyyyMMdd') >= ddwrt:FormatDateTime(stringa(@Warning_x0020_Date), 1033, 'yyyyMMdd')"> <img src="/_layouts/images/KPIDefault-1.gif" ALT= "Attenzione"/> <un href= "/ HumanResources/liste/nuovo dipendente Checklist/EditForm.aspx?ID ={@ ID}&Fonte = / HumanResources/condiviso documenti/nuovo noleggio Dashboard.aspx"> [Modifica]</un> </xsl:Quando> <!-- Se arriviamo qui, Siamo precedente rispetto alla data dell'avviso, quindi siamo verde. -->
<xsl:in caso contrario> <img src= "/ layouts/immagini/KPIDefault-0.GIF" ALTNon = "problemi"/> <un href= "/ HumanResources/liste/nuovo dipendente Checklist/EditForm.aspx?ID ={@ ID}&Fonte = / HumanResources/condiviso documenti/nuovo noleggio Dashboard.aspx"> [Modifica]</un> </xsl:in caso contrario> </xsl:scegliere> |
Alcuni punti chiave da sopra:
- Ho provato a confrontare le date senza utilizzare la funzionalità di ddwrt e ho trovato nulla. Non ho ancora capito che. Essi date visualizzate correttamente, ma entrambi">"e"<"i confronti sempre fallito. Alla fine, ddwrt è venuto in mio soccorso (Grazie, ancora una volta, Marc).
- Anche io sto visualizzando un [Modifica] collegare all'elemento. Ho fatto principalmente questo modo che ho potuto testare facilmente questo fuori. Il link stesso può essere utile a qualcuno che sta cercando di capirlo.
- Questo è implementato in SharePoint online e funziona bene.
- Le immagini di che riferimento nella directory layouts (/layouts/immagini...) sono disponibili fuori dalla scatola nel mio ambiente quindi pure sono probabilmente disponibili per voi.
Ecco una schermata di quello che sembra per me:
</fine>
Seguimi su Twitter a http://www.twitter.com/pagalvin