Comparando datas en un sitio Part de Vista de datos para crear un KPI WSS

Nota: este foi o primeiro publicado no 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 é un post no blog comparando datas en XSL nunha parte de datos web vista no SharePoint.

Este é o meu escenario:

  • Eu teño unha lista personalizada.
  • A finalidade do negocio da lista é o de apoiar a idea dun novo traballador, como as súas tarefas para ser rematada no prazo 7 días de comezar o traballo.
  • Eles están nunha "zona de alerta" tras 4 días se non está concluído estas tarefas.
  • Eu quero crear un panel sinxelo que mostra verde cando quere completar a tarefa ou no caso de que teñen máis de 4 días para completa-lo.
  • Eu quero o panel para amosar amarelo no caso de que están na zona de alerta.
  • Quero mostrar vermello se non tiveren completado a tarefa despois da data de caducidade.

Peguei prestado Neste artigo en Marc Anderson Blog (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) para obter a lóxica de comparación e Neste artigo en www.endusersharepoint.com para as ideas básicas por detrás do taboleiro (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) escrito por Toni Frankola.

Ten que ler os blogs de apoio, pero a implementación é así:

  1. Crear un tipo de contido (columnas + CT)
  2. Crear unha lista personalizada e asocialo con tipo de contido.
  3. Crear unha páxina web part.
  4. Engadir a lista personalizada á páxina web part.
  5. Abre a páxina no SPD.
  6. Converte a lista a un DVWP.
  7. Modifique o XSL para xerar os bits de taboleiro.

Eu teño dúas datas: a warning date and a due date. To compare the dates, meu XSL fai o seguinte:

 
 <XSL:escoller>
 
 <!-- Cando ambos manual e política son asinados, que son verdes, con independencia de datas. -->
 <XSL:cando proba="@Employee_x0020_Handbook_x003F_ = 1 e @ Security_x0020_Policies = 1">
 <img src="/_layouts/images/KPIDefault-0.GIF" vello="No problems"/>
 <un href="/HumanResources/Lists/New Employee Checklist/EditForm.aspx?ID ={@ ID}&ampères;Fonte = / HumanResources / Shared Documents / Dashboard.aspx Nova Contratación"> [Editar]</un>
 </XSL:cando>
 
 <!-- Amosar ámbar indicador se nós estamos máis aló da data de aviso. -->
 <XSL:cando proba="ddwrt:FormatDateTime(corda(ddwrt:Hoxe()), 1033, 'YYYYMMDD') &gt;= Ddwrt:FormatDateTime(corda(@ TaskDueDate), 1033, 'YYYYMMDD')">
 <img src="/_layouts/images/KPIDefault-2.GIF" vello="Overdue"/>
 <un estilo="border: 0px" href="/HumanResources/Lists/New Employee Checklist/EditForm.aspx?ID ={@ ID}&ampères;Fonte = / HumanResources / Shared Documents / Dashboard.aspx Nova Contratación"> [Editar]</un>
 </XSL:cando>
 
 <!-- Mostrar o indicador vermello se pasou a data de caducidade. -->
 <XSL:cando proba="ddwrt:FormatDateTime(corda(ddwrt:Hoxe()), 1033, 'YYYYMMDD') &gt;= Ddwrt:FormatDateTime(corda(@ Warning_x0020_Date), 1033, 'YYYYMMDD')">
 <img src="/_layouts/images/KPIDefault-1.GIF" vello="Warning"/> 
 <un href="/HumanResources/Lists/New Employee Checklist/EditForm.aspx?ID ={@ ID}&ampères;Fonte = / HumanResources / Shared Documents / Dashboard.aspx Nova Contratación"> [Editar]</un>
 </XSL:cando>
 
 <!-- Se chegamos ata aquí, estamos antes da data de aviso, polo que estamos verde. -->
 <XSL:se non>
 <img src="/_layouts/images/KPIDefault-0.GIF" vello="No problems"/>
 <un href="/HumanResources/Lists/New Employee Checklist/EditForm.aspx?ID ={@ ID}&ampères;Fonte = / HumanResources / Shared Documents / Dashboard.aspx Nova Contratación"> [Editar]</un>
 </XSL:se non>
 
 </XSL:escoller>

Algúns puntos clave de arriba:

  • I tried to compare dates without using the ddwrt functionality and got nowhere. I still don’t understand that. They dates displayed correctly, pero ao mesmo tempo ">"E"<” comparisons always failed. A finais, ddwrt veu no meu socorro (grazas, novo, Bagazo).
  • Eu tamén estou mostrando un [Editar] link to the item. I mainly did this so that I could easily test this out. The link itself may be useful to someone trying to figure it out.
  • Isto é aplicado en SharePoint en liña e funciona moi ben.
  • As imaxes que fan referencia no directorio _layouts (/_layouts / images / KPI episodio) están dispoñibles fóra da caixa no meu entorno para que probabelmente están dispoñibles para ti tamén.

Aquí está unha captura de pantalla do que parece a min:

image

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Deixe unha resposta

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *