Nota: Esto fue anunciado primero en www.endusersharepoint.com aquí: http://www.endusersharepoint.com/2009/11/02/Comparing-Dates-in-a-Data-View-Web-Part-to-Build-a-WSS-KPI-in-SharePoint/.
Este es otro blog post on Comparar fechas en XSL en un elemento web de vista de datos en SharePoint.
Este es mi escenario:
- Tengo una lista personalizada.
- El propósito de negocio de la lista es apoyar la idea de un nuevo empleado y sus tareas a efectuarse dentro de 7 días de comenzar el trabajo.
- Están en una "zona de advertencia" después de 4 días si no ha completado estas tareas.
- Quiero crear un panel simple que muestra verde cuando ya han completado la tarea o si tienen más de 4 días para completarlo.
- Quiero la consola para mostrar amarillo si se encuentran en la zona de advertencia.
- Quiero mostrar rojo si no ha completado la tarea después de la fecha de vencimiento.
Tomo prestado de en este artículo en Marc Anderson blog (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) para obtener la lógica de la comparación y en este artículo en www.endusersharepoint.com para las ideas básicas detrás del tablero (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) escrito por Toni Frankola.
Usted debe leer los blogs de apoyo, pero la aplicación es el siguiente:
- Crear un tipo de contenido (columnas + CT)
- Crear una lista personalizada y asociarla con el tipo de contenido.
- Crear una página de elementos web.
- Añadir a la lista personalizada a la página de elementos web.
- Abre la página en SPD.
- Convertir la lista en un DVWP.
- Modificar el XSL para generar los bits del tablero de instrumentos.
Tengo dos fechas: una fecha de aviso y una fecha de vencimiento. Para comparar las fechas, mi xsl hace lo siguiente:
<XSL:Elija> <!-- Cuando se firman el manual y política, somos verdes independientemente de las fechas. -->
<XSL:Cuando prueba="@Employee_x0020_Handbook_x003F_ = 1 y @Security_x0020_Policies = 1"> <IMG src= "/ _layouts/imágenes/KPIDefault-0.GIF" AltNo = problemas""/> <un href= "HumanResources listas New empleado Checklist/EditForm.aspx?ID ={@ ID}&gm6;Documentos/nueva fuente = / recursos humanos/compartida Alquiler de Dashboard.aspx"> [Editar]</un> </XSL:Cuando> <!-- Mostrar indicador ámbar si estamos después de la fecha de la ADVERTENCIA. -->
<XSL:Cuando prueba= "ddwrt:FormatDateTime(cadena(ddwrt:Hoy en día()), 1033, 'yyyyMMdd') >= ddwrt:FormatDateTime(cadena(@TaskDueDate), 1033, 'yyyyMMdd')"> <IMG src="/_layouts/images/KPIDefault-2.gif" Alt= "Retraso"/> <un estilo= "border: 0PX" href= "HumanResources listas New empleado Checklist/EditForm.aspx?ID ={@ ID}&gm6;Documentos/nueva fuente = / recursos humanos/compartida Alquiler de Dashboard.aspx"> [Editar]</un> </XSL:Cuando> <!-- Mostrar indicador rojo si estamos pasa la fecha de vencimiento. -->
<XSL:Cuando prueba= "ddwrt:FormatDateTime(cadena(ddwrt:Hoy en día()), 1033, 'yyyyMMdd') >= ddwrt:FormatDateTime(cadena(@Warning_x0020_Date), 1033, 'yyyyMMdd')"> <IMG src="/_layouts/images/KPIDefault-1.gif" Alt= "ADVERTENCIA"/> <un href= "HumanResources listas New empleado Checklist/EditForm.aspx?ID ={@ ID}&gm6;Documentos/nueva fuente = / recursos humanos/compartida Alquiler de Dashboard.aspx"> [Editar]</un> </XSL:Cuando> <!-- Si llegamos aquí, Somos anteriores a la fecha de la ADVERTENCIA, así que estamos verdes. -->
<XSL:de lo contrario> <IMG src= "/ _layouts/imágenes/KPIDefault-0.GIF" AltNo = problemas""/> <un href= "HumanResources listas New empleado Checklist/EditForm.aspx?ID ={@ ID}&gm6;Documentos/nueva fuente = / recursos humanos/compartida Alquiler de Dashboard.aspx"> [Editar]</un> </XSL:de lo contrario> </XSL:Elija> |
Algunos puntos clave desde arriba:
- He intentado comparar fechas sin utilizar la funcionalidad de ddwrt y consiguió en ninguna parte. Todavía no entienden. Las fechas mostradas correctamente, pero ambos">«y»<"de las comparaciones no siempre. En el final, ddwrt vino a mi rescate (Gracias, nuevo, Marc).
- Yo también estoy viendo una [Editar] Enlace al artículo. Lo hice principalmente para que fácilmente pude probar este. El mismo enlace puede ser útil para alguien que intenta descubrirlo.
- Esto se implementa en SharePoint online y funciona muy bien.
- Las imágenes que hacen referencia en el directorio _layouts (/imágenes/_layouts/KPI...) están disponibles fuera de la caja de mi entorno, por lo que son probablemente disponibles para usted, así.
Aquí está una captura de pantalla de lo que parece para mí:
</final>
Sígueme en Twitter en http://www.twitter.com/pagalvin