Note: Cela a été d'abord affiché au www.endusersharepoint.com ici: http://www.endusersharepoint.com/2009/11/02/Comparing-dates-in-a-Data-View-Web-part-to-build-a-WSS-KPI-in-SharePoint/.
C'est encore un autre blog post sur la comparaison des dates dans XSL dans un WebPart Affichage de données dans SharePoint.
C'est mon scénario:
- J'ai une liste personnalisée.
- Le but de l'entreprise de la liste est de soutenir l'idée d'un nouvel employé et de ses tâches à remplir dans 7 jours de départ de l'emploi.
- Ils sont dans une « zone d'avertissement » après 4 jours si ils n'ont pas terminé ces tâches.
- Je veux créer un tableau de bord simple qui montre verte lorsqu'ils ont terminé soit la tâche ou si elles ont plus de 4 jours pour la terminer.
- Je veux que le tableau de bord pour montrer jaune si ils sont dans la zone d'avertissement.
- Je veux montrer rouge si ils n'ont pas terminé la tâche après la date d'échéance.
J'ai emprunté Cet article à Marc Anderson blog (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) pour obtenir la logique de comparaison et Cet article à www.endusersharepoint.com pour les idées de base derrière le tableau de bord (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) écrit par Toni Frankola.
Vous devriez lire les blogs de soutien, mais la mise en œuvre va comme ceci:
- Créer un type de contenu (colonnes + CT)
- Créer une liste personnalisée et l'associer avec le type de contenu.
- Créer une page de composants WebPart.
- Ajouter la liste personnalisée de la page de composants WebPart.
- Ouvrez la page dans le SPD.
- Convertir la liste en un DVWP.
- Modifier le XSL pour générer les bits de tableau de bord.
J'ai deux dates: une date de mise en garde et une date d'échéance. Pour comparer des dates, mon xsl effectue les opérations suivantes:
<XSL:choisir> <!-- Quand Manuel et politique sont signés, Nous sommes verts indépendamment des dates. -->
<XSL:Lorsque test="@Employee_x0020_Handbook_x003F_ = 1 @ Security_x0020_Policies = 1"> <img SRC= "/ _layouts/images/KPIDefault-0.GIF" AltNe = "aucun problèmes"/> <un href= "/ HumanResources, listes, nouvel employé Checklist/EditForm.aspx?ID ={@ ID}&Source = / HumanResources/Shared Documents/nouvelle embauche Dashboard.aspx"> [Edit]</un> </XSL:Lorsque> <!-- Indicateur d'émission ambre si nous sommes au-delà de la date de mise en garde. -->
<XSL:Lorsque test= « ddwrt:FormatDateTime(chaîne(ddwrt:Aujourd'hui()), 1033, « AAAAMMJJ ») >= ddwrt:FormatDateTime(chaîne(@ TaskDueDate), 1033, « AAAAMMJJ »)"> <img SRC="/_layouts/images/KPIDefault-2.gif" Alt= En souffrance »"/> <un style= "border: 0px" href= "/ HumanResources, listes, nouvel employé Checklist/EditForm.aspx?ID ={@ ID}&Source = / HumanResources/Shared Documents/nouvelle embauche Dashboard.aspx"> [Edit]</un> </XSL:Lorsque> <!-- Afficher indicateur rouge si nous sommes passés à la date d'échéance. -->
<XSL:Lorsque test= « ddwrt:FormatDateTime(chaîne(ddwrt:Aujourd'hui()), 1033, « AAAAMMJJ ») >= ddwrt:FormatDateTime(chaîne(@ Warning_x0020_Date), 1033, « AAAAMMJJ »)"> <img SRC="/_layouts/images/KPIDefault-1.gif" Alt= "Warning"/> <un href= "/ HumanResources, listes, nouvel employé Checklist/EditForm.aspx?ID ={@ ID}&Source = / HumanResources/Shared Documents/nouvelle embauche Dashboard.aspx"> [Edit]</un> </XSL:Lorsque> <!-- Si nous obtenons ici, Nous sommes plus tôt que la date de mise en garde, Nous sommes tellement verts. -->
<XSL:autrement> <img SRC= "/ _layouts/images/KPIDefault-0.GIF" AltNe = "aucun problèmes"/> <un href= "/ HumanResources, listes, nouvel employé Checklist/EditForm.aspx?ID ={@ ID}&Source = / HumanResources/Shared Documents/nouvelle embauche Dashboard.aspx"> [Edit]</un> </XSL:autrement> </XSL:choisir> |
Quelques points clés d'en haut:
- J'ai essayé de comparer les dates sans utiliser la fonctionnalité ddwrt et obtenu nulle part. Je ne comprends toujours pas que. Ils dates affichées correctement, mais les deux">« et »<"les comparaisons toujours échoués. En fin de compte, ddwrt est venu à mon secours (Merci, encore une fois, Marc).
- J'affiche également une [Edit] lien vers l'article. Je l'ai fait principalement pour que j'ai pu facilement tester ceci dehors. Le lien lui-même peut être utile à quelqu'un essayant de figurer dehors.
- C'est implémenté dans SharePoint online et fonctionne parfaitement.
- Les images que je référence dans le répertoire _layouts (/_layouts/images/KPI…) sont disponibles de la boîte dans mon environnement donc ils sont probablement disponibles pour vous aussi.
Voici une capture d'écran de ce qu'il ressemble pour moi:
</fin>
Me suivre sur Twitter à http://www.twitter.com/pagalvin