หมายเหตุ: นี้ถูกลงรายการบัญชีครั้งแรกที่ 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 part สำหรับมุมมองข้อมูลการใน SharePoint.
นี่คือสถานการณ์ของฉัน:
- มีการรายการแบบกำหนดเอง.
- วัตถุประสงค์ทางธุรกิจของรายการคือการ สนับสนุนความคิดของพนักงานใหม่และงานที่ตนต้องทำให้เสร็จภายใน 7 วันเริ่มงาน.
- พวกเขาอยู่ใน "เตือน"โซนหลัง 4 วันถ้าได้ไม่สมบูรณ์แล้วงานเหล่านี้.
- ต้องการสร้างแดชบอร์ดแบบง่ายซึ่งแสดงสีเขียว เมื่อพวกเขาเสร็จงานอย่างใดอย่างหนึ่ง หรือ ถ้าพวกเขามี มากกว่า 4 วันที่จะดำเนินการเสร็จสิ้น.
- ต้องการแผงหน้าปัดเพื่อแสดงสีเหลืองถ้าพวกเขาอยู่ในโซนคำเตือน.
- ต้องการให้แสดงสีแดงถ้าพวกเขาไม่เสร็จงานหลังจากวันครบกำหนด.
ผมยืมคำจาก บทความนี้ ที่ มาร์ค Anderson blog (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/) เขียนโดย Toni Frankola.
คุณควรอ่านในบล๊อกที่สนับสนุน, แต่ไปใช้งานดังนี้:
- สร้างชนิดเนื้อหา (คอลัมน์ + CT)
- สร้างรายการแบบกำหนดเอง และกำหนดความสัมพันธ์กับชนิดเนื้อหา.
- สร้างเพจของ web part.
- เพิ่มรายการที่กำหนดเองลงในเพจของ web part.
- เปิดขึ้นหน้าใน SPD.
- แปลงรายการ DVWP.
- แก้ไข XSL เพื่อสร้างบิตในแดชบอร์ด.
มีการวันสองวัน: คำเตือนเกี่ยวกับวันและวันครบกำหนด. การเปรียบเทียบวัน, ไม่ xsl ของฉันต่อไปนี้:
<xsl:เลือก> <!-- เมื่อคู่มือและนโยบายจะถูกเซ็นชื่อ, เรามีสีเขียวโดยไม่คำนึงถึงวัน. -->
<xsl:เมื่อ ทดสอบ="@Employee_x0020_Handbook_x003F_ = 1 และ@ Security_x0020_Policies = 1"> <img src= "/ _layouts/รูป ภาพ/KPIDefault-0.GIF" alt= "ไม่มีปัญหา"/> <การ href= " / HumanResources/รายการ/New Checklist/EditForm.aspx พนักงาน?ID ={@ ID}&แอมป์;แหล่งที่มา = / HumanResources/ร่วม เอกสาร/ใหม่เช่า Dashboard.aspx"> [แก้ไข]</การ> </xsl:เมื่อ> <!-- ตัวบ่งชี้ที่แสดง amber ถ้าเรากำลังเตือนวันที่ผ่านมา. -->
<xsl:เมื่อ ทดสอบ= "ddwrt:FormatDateTime(สายอักขระ(ddwrt:วันนี้()), 1033, 'yyyyMMdd') >= ddwrt:FormatDateTime(สายอักขระ(@ TaskDueDate), 1033, 'yyyyMMdd')"> <img src="/_layouts/images/KPIDefault-2.GIF" alt= "Overdue"/> <การ ลักษณะ= "เส้นขอบ: 0px" href= " / HumanResources/รายการ/New Checklist/EditForm.aspx พนักงาน?ID ={@ ID}&แอมป์;แหล่งที่มา = / HumanResources/ร่วม เอกสาร/ใหม่เช่า Dashboard.aspx"> [แก้ไข]</การ> </xsl:เมื่อ> <!-- แสดงสีแดงถ้าเรากำลังผ่านพ้นไปวันครบกำหนด. -->
<xsl:เมื่อ ทดสอบ= "ddwrt:FormatDateTime(สายอักขระ(ddwrt:วันนี้()), 1033, 'yyyyMMdd') >= ddwrt:FormatDateTime(สายอักขระ(@ Warning_x0020_Date), 1033, 'yyyyMMdd')"> <img src="/_layouts/images/KPIDefault-1.GIF" alt= "คำเตือน"/> <การ href= " / HumanResources/รายการ/New Checklist/EditForm.aspx พนักงาน?ID ={@ ID}&แอมป์;แหล่งที่มา = / HumanResources/ร่วม เอกสาร/ใหม่เช่า Dashboard.aspx"> [แก้ไข]</การ> </xsl:เมื่อ> <!-- ถ้าเราได้รับที่นี่, เรากำลังก่อนหน้าวันคำเตือน, ดังนั้น เราจะสีเขียว. -->
<xsl:มิฉะนั้น> <img src= "/ _layouts/รูป ภาพ/KPIDefault-0.GIF" alt= "ไม่มีปัญหา"/> <การ href= " / HumanResources/รายการ/New Checklist/EditForm.aspx พนักงาน?ID ={@ ID}&แอมป์;แหล่งที่มา = / HumanResources/ร่วม เอกสาร/ใหม่เช่า Dashboard.aspx"> [แก้ไข]</การ> </xsl:มิฉะนั้น> </xsl:เลือก> |
ประเด็นที่สำคัญบางอย่างจากข้างบน:
- ฉันพยายามที่จะเปรียบเทียบวันที่ โดยใช้ฟังก์ชัน ddwrt และมีไม่มีที่ไหน. ฉันยังไม่เข้าใจว่า. พวกเขาที่ต้องแสดงอย่างถูกต้อง, แต่ทั้งสองอย่าง">"และ"<"เปรียบเทียบล้มเหลวเสมอ. ในสุด, ddwrt มากู้ภัยของฉัน (ขอขอบคุณ, อีกครั้ง, มาร์ค).
- ฉันกำลังแสดงการ [แก้ไข] ลิงค์ไปยังสินค้า. ผมส่วนใหญ่ทำอย่างนี้เพื่อที่ฉันสามารถทดสอบนี้ออกได้อย่างง่ายดาย. การเชื่อมโยงตัวเองอาจเป็นประโยชน์กับคนพยายามคิดออก.
- นี้มีการใช้งานใน SharePoint แบบออนไลน์ และการทำงานทาง.
- รูปที่ผมอ้างอิงในไดเรกทอรี _layouts (/_layouts/รูป ภาพ/KPI ...) มีพร้อมใช้งานทันทีในสภาพแวดล้อมการทำงานของฉันเพื่อที่จะพร้อมใช้งานสำหรับคุณคงดี.
นี่คือยิงหน้าจอของสิ่งที่ดูเหมือนว่าสำหรับฉัน:
</สิ้นสุด>
ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin