Comparar fechas en un elemento Web Vista de datos para construir un KPI de WSS

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:

  1. Crear un tipo de contenido (columnas + CT)
  2. Crear una lista personalizada y asociarla con el tipo de contenido.
  3. Crear una página de elementos web.
  4. Añadir a la lista personalizada a la página de elementos web.
  5. Abre la página en SPD.
  6. Convertir la lista en un DVWP.
  7. 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') &gt;= 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') &gt;= 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í:

image

</final>

Suscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Contesta

su dirección de correo electrónico no será publicada. Los campos necesarios están marcados *