请注意: 这是首次在张贴 www.endusersharepoint.com 在这里: http://www.endusersharepoint.com/2009/11/02/comparing-dates-in-a-data-view-web-part-to-build-a-wss-kpi-in-sharepoint/.
这是另一个博客文章上比较在 XSL 数据视图 web 部件在 SharePoint 中的日期.
这是我的方案:
- 我有一个自定义列表.
- 列表中的业务目的是支持内完成新员工和任务的想法 7 天开始作业的.
- 他们是在一个"预警区"后 4 如果他们没有完成这些任务的天.
- 我要创建一个简单的仪表板,显示绿色时他们也完成了任务,或者,如果他们有超过 4 天来完成它.
- 我想要的仪表板显示黄色的如果他们是在警告区.
- 希望显示红色 ; 如果他们没有完成任务后的截止日期.
我从借 这篇文章 在 马克 · 安德森 博客 (http://mdasblog.wordpress.com/2008/02/19/comparing-dates-in-sharepoint-using-xsl/) 要比较的逻辑和 这篇文章 在 www.endusersharepoint.com 为仪表板背后的基本理念 (http://www.endusersharepoint.com/2008/12/09/visual-indicators-for-the-masses-kpis-in-wss/) 写的 托妮 · Frankola.
您应该阅读支持博客, 但执行这样:
- 创建内容类型 (列 + CT)
- 创建自定义列表,并将它与该内容类型相关联.
- 创建 web 部件页.
- 向 web 部件页中添加的自定义列表.
- 打开 SPD 中的页面.
- 将列表转换为 DVWP.
- 修改 XSL 生成的仪表板位.
我有两个日期: 警告日期和到期日期. 要比较的日期, 我的 xsl 将执行以下:
<xsl:选择> <!-- 手册和政策签署时, 我们是绿色而不考虑日期. -->
<xsl:当 测试="@Employee_x0020_Handbook_x003F_ = 1 和 @Security_x0020_Policies = 1"> <img src="/ _layouts/图像/KPIDefault-0.GIF" alt="没有问题"/> <一 href="/ HumanResources/列表/新员工 Checklist/EditForm.aspx?ID ={@ ID}&源 = / HumanResources/共享文件或新雇 Dashboard.aspx"> [编辑]</一> </xsl:当> <!-- 显示琥珀色指示灯是否我们过去的警告日期. -->
<xsl:当 测试="ddwrt:已被格式化为(字符串(ddwrt:今天()), 1033, '' yyyyMMdd) >ddwrt =:已被格式化为(字符串(@TaskDueDate), 1033, '' yyyyMMdd)"> <img src="/_layouts/images/KPIDefault-2.GIF" alt="过期"/> <一 样式="边界: 0px" href="/ HumanResources/列表/新员工 Checklist/EditForm.aspx?ID ={@ ID}&源 = / HumanResources/共享文件或新雇 Dashboard.aspx"> [编辑]</一> </xsl:当> <!-- 显示红色指示灯是否我们传递的截止日期. -->
<xsl:当 测试="ddwrt:已被格式化为(字符串(ddwrt:今天()), 1033, '' yyyyMMdd) >ddwrt =:已被格式化为(字符串(@Warning_x0020_Date), 1033, '' yyyyMMdd)"> <img src="/_layouts/images/KPIDefault-1.GIF" alt="警告"/> <一 href="/ HumanResources/列表/新员工 Checklist/EditForm.aspx?ID ={@ ID}&源 = / HumanResources/共享文件或新雇 Dashboard.aspx"> [编辑]</一> </xsl:当> <!-- 如果我们能在这里, 我们早于警告日期, 所以我们绿色. -->
<xsl:否则> <img src="/ _layouts/图像/KPIDefault-0.GIF" alt="没有问题"/> <一 href="/ HumanResources/列表/新员工 Checklist/EditForm.aspx?ID ={@ ID}&源 = / HumanResources/共享文件或新雇 Dashboard.aspx"> [编辑]</一> </xsl:否则> </xsl:选择> |
从上面的几个关键点:
- 我试图不使用 ddwrt 功能比较日期和没有成功. 仍不明白. 他们显示正确的日期, 但两者都">"和"<"比较总是失败. 在结束, ddwrt 来拯救我 (谢谢你, 再次, 马克 ·).
- 我也要显示 [编辑] 链接到该项目. 我主要是做这,我可以轻松地测试一下. 链接本身可能对某人试图找出有用.
- 这在线在 SharePoint 中实现,很好地工作.
- 引用 _layouts 目录中的图像 (/_layouts/图像/KPI......) 是可用现成的在我的环境中,所以他们也是大概可供您的.
是的看起来像我的屏幕截图:
</结束>
跟我在 Twitter 上 http://www.twitter.com/pagalvin