Comparando datas em uma Web Part de exibição de dados para construir um KPI WSS

Observação: Isto foi Postado em www.endusersharepoint.com here: http://www.endusersharepoint.com/ 2009/11/02/comparing-dates-in-a-data-view-web-part-to-build-a-wss-kpi-in-sharepoint/.

Este é ainda outro blog post comparando datas em XSL em uma web part de exibição dados no SharePoint.

Este é o meu cenário:

  • Eu tenho uma lista personalizada.
  • A finalidade do negócio da lista é apoiar a idéia de um novo funcionário e suas funções para ser concluído no prazo de 7 dias de começar o trabalho.
  • Eles estão em uma "zona de alerta" após 4 dias se eles não concluídas essas tarefas.
  • Eu quero criar um painel de controle simples que mostra verde quando eles também completaram a tarefa ou se eles têm mais de 4 dias para concluí-lo.
  • Eu quero o painel mostrar amarelo, se eles estão na zona de aviso.
  • Eu quero mostrar vermelho se eles não tem concluído a tarefa após a data de vencimento.

Pedi emprestado Este artigo às De Marc Anderson blog (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) para obter a lógica de comparação e Este artigo às www.endusersharepoint.com para as idéias básicas por trás do painel de controle (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) escrito por Toni Frankola.

Você deve ler os Blogues de apoio, Mas a implementação é assim:

  1. Criar um tipo de conteúdo (colunas + CT)
  2. Criar uma lista personalizada e associá-lo com o tipo de conteúdo.
  3. Criar uma página de web Parts.
  4. Adicionar a lista personalizada para a página de web Parts.
  5. Abra a página em SPD.
  6. Converter a lista para um DVWP.
  7. Modificar o XSL para gerar os bits do painel de controle.

Eu tenho duas datas: uma data de aviso e uma data de vencimento. Para comparar as datas, meu xsl faz o seguinte:

 
 <XSL:Escolha>
 
 <!-- Quando assinatura manual e política, Nós somos verdes independentemente de datas. -->
 <XSL:Quando teste="@Employee_x0020_Handbook_x003F_ = 1 e @Security_x0020_Policies = 1">
 <img src= "/ layouts/imagens/KPIDefault-0.GIF" Alt= "Sem problemas"/>
 <uma href= "/ Recursos humanos/listas/novo empregado Checklist/EditForm.aspx?ID ={@ ID}&amp;Fonte = / recursos humanos/compartilhado documentos/nova contratar Dashboard.aspx"> [Editar]</uma>
 </XSL:Quando>
 
 <!-- Mostrar o indicador âmbar se passamos a data de aviso. -->
 <XSL:Quando teste= "ddwrt:FormatDateTime(Cadeia de caracteres(ddwrt:Hoje()), 1033, 'yyyyMMdd') &gt;= ddwrt:FormatDateTime(Cadeia de caracteres(@TaskDueDate), 1033, 'yyyyMMdd')">
 <img src="/_layouts/images/KPIDefault-2.gif" Alt= "Overdue"/>
 <uma estilo= "fronteiriços: 0PX" href= "/ Recursos humanos/listas/novo empregado Checklist/EditForm.aspx?ID ={@ ID}&amp;Fonte = / recursos humanos/compartilhado documentos/nova contratar Dashboard.aspx"> [Editar]</uma>
 </XSL:Quando>
 
 <!-- Mostrar o indicador vermelho se passamos a data de vencimento. -->
 <XSL:Quando teste= "ddwrt:FormatDateTime(Cadeia de caracteres(ddwrt:Hoje()), 1033, 'yyyyMMdd') &gt;= ddwrt:FormatDateTime(Cadeia de caracteres(@Warning_x0020_Date), 1033, 'yyyyMMdd')">
 <img src="/_layouts/images/KPIDefault-1.gif" Alt= "Aviso"/> 
 <uma href= "/ Recursos humanos/listas/novo empregado Checklist/EditForm.aspx?ID ={@ ID}&amp;Fonte = / recursos humanos/compartilhado documentos/nova contratar Dashboard.aspx"> [Editar]</uma>
 </XSL:Quando>
 
 <!-- Se chegarmos aqui, Estamos anteriores à data do aviso, Então, nós estamos verdes. -->
 <XSL:caso contrário>
 <img src= "/ layouts/imagens/KPIDefault-0.GIF" Alt= "Sem problemas"/>
 <uma href= "/ Recursos humanos/listas/novo empregado Checklist/EditForm.aspx?ID ={@ ID}&amp;Fonte = / recursos humanos/compartilhado documentos/nova contratar Dashboard.aspx"> [Editar]</uma>
 </XSL:caso contrário>
 
 </XSL:Escolha>

Alguns pontos-chave de cima:

  • Eu tentei comparar datas sem usar a funcionalidade de ddwrt e adiantou. Eu ainda não entendo isso. Eles datas exibidas corretamente, Mas ambos">"e"<"comparações sempre falha. No final, ddwrt veio em meu socorro (Obrigado, mais uma vez, Marc).
  • Eu também estou exibindo um [Editar] link para o item. Principalmente fiz isto para que eu pudesse facilmente testar esta fora. O próprio link pode ser útil para alguém tentando descobrir.
  • Isso é implementado no SharePoint online e funciona muito bem.
  • As imagens de que referência no diretório layouts (/layouts/imagens/KPI...) estão disponíveis fora da caixa no meu ambiente, então eles estão provavelmente disponíveis para você também.

Aqui está uma captura de tela do que parece para mim:

image

</fim>

Subscreva ao meu blog.

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

Deixar uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *