สร้างกราฟแท่งใน SharePoint

ภาพรวม:

(โปรแกรมปรับปรุง 12/04/07: เพิ่มทรัพยากรอื่นที่น่าสนใจที่สุดที่เชื่อมโยงกับบล็อกอื่นที่อยู่นี้ผ่านทาง web part น่าสนใจมาก)

รายการบล็อกนี้อธิบายถึงวิธีการสร้างกราฟแท่งใน SharePoint. ใช้งานในสภาพแวดล้อม WSS และมอสส์เป็นมันเพียงขึ้นอยู่กับ web part มุมมองข้อมูล.

แนวทางโดยรวมจะเป็นดังนี้:

  1. สร้างรายการ หรือไลบรารีเอกสารที่ประกอบด้วยข้อมูลที่คุณต้องการกราฟ.
  2. วางไลบรารีเอกสารที่เกี่ยวข้อง / แบบกำหนดเองรายการลงบนหน้า และแปลง web part สำหรับมุมมองข้อมูล (DVWP).
  3. แก้ไข XSL ของ DVWP เพื่อสร้าง HTML ที่แสดงเป็นกราฟ.

สถานการณ์ของธุรกิจ / การตั้งค่า:

ฉันสร้างรายการกำหนดเอง มีคอลัมน์ชื่อมาตรฐานและคอลัมน์หนึ่งเพิ่มเติม, "สถานะ". รุ่นนี้ (simplistically มาก) อนุญาต"สำหรับค่าใช้จ่าย" สถานการณ์สมมติที่ชื่อแทนโครงการและสถานะค่าจากรายการ:

  • การนำเสนอ
  • ในกระบวนการ
  • หยุดการทำงาน

วัตถุประสงค์คือการ ผลิตเป็นแบบแนวนอนกราฟแท่งที่แสดงรหัสสถานะนี้.

ผมได้รวบรวมรายชื่อ และลักษณะเช่นนี้:

รูปภาพ

สร้าง Web Part มุมมองข้อมูล:

สร้าง DVWP โดยการเพิ่มรายการที่กำหนดเองเพ (หน้าเว็บไซต์ในกรณีของฉัน) ทำตามคำแนะนำ ที่นี่ (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

นอกจากเพียงแค่สร้างการ DVWP, เรายังจำเป็นต้องตั้งค่าคุณสมบัติแบ่งหน้าเพื่อแสดงแถวที่ว่าง. สำหรับฉัน, นี้ดูเหมือน:

รูปภาพ

ณ จุดนี้, ฉันปิดเสมอ SPD และเบราว์เซอร์. ฉันแล้วเปิดใหม่หน้าใช้เบราว์เซอร์. นี้หลีกเลี่ยงโดยไม่ตั้งใจ mucking ค่าโครงร่างส่วนเว็บหน้า.

แก้ไข XSLT:

ถึงตอนนี้เวลาแก้ไข XSLT.

จะทำสตูดิโอภาพนี้. (ดู ที่นี่ สำหรับบันทึกสำคัญเกี่ยวกับ intellisense ที่จะช่วยคุณได้เยอะ).

ฉันสร้างโครงการที่มีว่างเพิ่มแฟ้มใหม่ 4 (แทนคำว่า "ต้นฉบับ" และ "ใหม่" ตามความเหมาะสม):

  • Original.xslt
  • New.xslt
  • Params.xml เดิม
  • Params.xml ใหม่

ในกรณีของฉัน, โดยมีลักษณะดังนี้:

รูปภาพ

ปรับเปลี่ยน web part และคัดลอก params และ XSL ต้นฉบับ"" รุ่นใน Visual Studio.

วัตถุประสงค์ที่นี่คือทำ XSL ที่จะแปลงผลลัพธ์ที่เราได้รับกลับจากแบบสอบถาม DVWP ใน HTML ที่ทำเป็นกราฟ.

เพื่อการนี้, ช่วยพิจารณาก่อน ว่า HTML ควรเหมือนก่อนเราปะปน โดยจับที่เรียกว่า "XSL". (ให้ชัดเจน, ต่อไปนี้เป็นเพียงตัวอย่าง; ไม่พิมพ์ หรือคัดลอก/วางลงในห้องภาพ. ฉันให้เป่าเต็มที่จุดเริ่มต้นที่ต่อไปในข้อ). กราฟตัวอย่างต่อไปนี้ถูกแสดงตาม HTML ต่อไปนี้ทันที:

ตัวอย่างกราฟแท่ง

HTML ที่สอดคล้องกัน:

<html>
<เนื้อความ>
<ศูนย์>
<ตารางความกว้าง = 80%>
<tr><td><ศูนย์>กราฟแท่งแนวนอน</td></tr>
<tr>
<การจัดตำแหน่ง td = "ศูนย์">
<เส้นขอบตาราง = "1" ความกว้าง = 80%>
<tr>
<ความกว้างของ td = 10%>เปิด</td>
<td><ตาราง cellpadding ="0" cellspacing ="0" เส้นขอบความกว้าง 0 = = 50%><tr bgcolor =สีแดง><td>&nbsp;</td></tr></ตาราง></td>
</tr>
<tr>
<ความกว้างของ td = 10%>ปิด</td>
<td><ตาราง cellpadding ="0" cellspacing ="0" เส้นขอบความกว้าง 0 = = 25%><tr bgcolor =สีแดง><td>&nbsp;</td></tr></ตาราง></td>
</tr>
<tr>
<ความกว้างของ td = 10%>หยุดการทำงาน</td>
<td><ตาราง cellpadding ="0" cellspacing ="0" เส้นขอบความกว้าง 0 = = 25%><tr bgcolor =สีแดง><td>&nbsp;</td></tr></ตาราง></td>
</tr>
</ตาราง>
</td>
</tr>
</ตาราง>
</เนื้อความ>
</html>

ใช้วิธีการแบบง่ายตายเพื่อสร้างบาร์ของฉันโดยการกำหนดสีของแถวที่จะ "แดง".

ที่นี่จัดเป็น: ในสุด, ทั้งหมดที่เราทำคือการสร้าง HTML ด้วยแถวและคอลัมน์.

เท็มเพลต XSLT:

ฉันได้คัดลอก XSLT ที่สร้างกราฟแท่งแนวนอน. ก็ค่อนข้างดีความเห็นเพื่อที่จะไม่เพิ่มมากที่นี่ยกเว้นบันทึกย่อเหล่านี้:

  • ผมเริ่ม ด้วย XSL ที่ SharePoint Designer ให้ผมเมื่อแรกสร้าง DVWP เริ่มต้น.
  • ผมสามารถที่จะตัดนี้ลงจากของ SPD 657 บรรทัด 166 บรรทัด.
  • ฉันไม่ยุ่งสถานกับพารามิเตอร์ XML แฟ้ม (ซึ่งจะแยกต่างหากจาก XSL และคุณจะรู้ว่าผมหมายถึงเมื่อคุณไปปรับเปลี่ยน DVWP ตัวเอง; มีแฟ้มที่สองที่คุณสามารถปรับเปลี่ยน). อย่างไรก็ตาม, เพื่อลดความซับซ้อนของมัน, ผมไม่ได้เอาออกเกือบทั้งหมดของพวกเขาจาก XSL. นี้หมายความ ว่า ถ้าคุณต้องการใช้พารามิเตอร์เหล่านี้, คุณเพียงแค่เพิ่มคำนิยามตัวแปรไปใน XSL. ได้ง่ายเนื่องจากคุณจะมีคำนิยามตัวแปรเดิมที่ใช้ XSL ในโครงการ visual studio ของคุณ.
  • คุณควรจะสามารถคัดลอก และวางนี้ลงในโครงการ visual studio ของคุณโดยตรง. แล้ว, เอาโทรศัพท์ของฉัน และแทรกการเรียกของคุณเองไป "ShowBar".
  • ลึกโดยสร้างเป็น <a href> แบบนี้: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. เทคนิคนี้อาจเป็นค่าในบริบทอื่น ๆ. ในตอนแรก, ฉันคิดว่า ฉันจะต้องสอดคล้องกับรูปแบบที่ซับซ้อนมากขึ้น: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, แต่ในสภาพแวดล้อมของฉัน ที่ไม่มีความจำเป็น. URL ของรายการถูกส่งผ่านไปเรา โดย SharePoint ดังนั้นโดยทั่วไปค่อนข้างง่าย.

ที่นี่เป็น:

<xsl:สไตล์ชีต เวอร์ชัน="1.0" นำหน้าผลยกเว้น="อาร์เอส z o s ddwrt dt msxsl" 
xmlns:msxsl="ผอบ:เค้าร่าง microsoft com:xslt" xmlns:xsl="http://www.w3.org/ ปี 1999 / / แปลง XSL"
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:o="ผอบ:เค้าร่าง microsoft com:สำนักงาน" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3 - 11d 1-A29F-00AA00C14882" xmlns:อาร์เอส="ผอบ:เค้าร่าง microsoft com:rowset" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="ผอบ:frontpage:ภายใน"
> <xsl:ผลผลิต วิธีการ="html" เยื้อง="ไม่ใช่" /> <xsl:รูปทศนิยม น่าน="" /> <xsl:พารามิเตอร์ ชื่อ="ListUrlDir"></xsl:พารามิเตอร์> <!-- ต้องนี้สนับสนุนความลึก. --> <xsl:แม่แบบ ตรงกับ="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
> <xsl:ตัวแปร ชื่อ="dvt_StyleName">ตาราง</xsl:ตัวแปร> <xsl:ตัวแปร ชื่อ="แถว" เลือก="/dsQueryResponse/แถว/แถว" /> <xsl:ตัวแปร ชื่อ="dvt_RowCount" เลือก="การตรวจนับ($แถว)" /> <xsl:ตัวแปร ชื่อ="IsEmpty" เลือก="$dvt_RowCount = 0" /> <xsl:ตัวแปร ชื่อ="dvt_IsEmpty" เลือก="$dvt_RowCount = 0" /> <xsl:เลือก> <xsl:เมื่อ ทดสอบ="$dvt_IsEmpty"> มีไม่ข้อมูลกราฟ!<br/> </xsl:เมื่อ> <xsl:มิฉะนั้น> <!-- เริ่มต้นสิ่งน่าสนใจ. เราต้องกำหนดคู่ของตัวแปรในแต่ละแถวในกราฟ: จำนวนสินค้าและเปอร์เซ็นต์ของผลรวม. --> <xsl:ตัวแปร ชื่อ="totalProposed" เลือก="การตรวจนับ(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status) = 'นำเสนอ'])" /> <xsl:ตัวแปร ชื่อ="percentProposed" เลือก="$totalProposed div $dvt_RowCount" /> <xsl:ตัวแปร ชื่อ="totalInProcess" เลือก="การตรวจนับ(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status) = 'กระบวนการ'])" /> <xsl:ตัวแปร ชื่อ="percentInProcess" เลือก="$totalInProcess div $dvt_RowCount" /> <xsl:ตัวแปร ชื่อ="totalStalled" เลือก="การตรวจนับ(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status) = 'หยุดการทำงาน'])" /> <xsl:ตัวแปร ชื่อ="percentStalled" เลือก="$totalStalled div $dvt_RowCount" /> <!-- เรากำหนดตาราง HTML ของเราที่นี่. ผมกำลังกู้ยืมเงินจากบางมาตรฐาน SharePoint ลักษณะที่นี่เพื่อให้สอดคล้องกัน. ผมคิดว่า มันจะให้เกียรติเปลี่ยนแปลงไปยังแฟ้ม css ส่วนกลางเป็นรูปแทน. --> <ตาราง ความกว้าง="100%" cellspacing="0" cellpadding="2" ลักษณะ="เส้นขอบขวา: 1 #C0C0C0 แข็ง; เส้นขอบด้านล่าง: 1 #C0C0C0 แข็ง; ลักษณะเส้นขอบซ้าย: เป็นของแข็ง; ความกว้างเส้นขอบซ้าย: 1; ลักษณะเส้นขอบด้านบน: เป็นของแข็ง; ความกว้างเส้นขอบด้านบน: 1;"> <tr> <td การจัดตำแหน่ง="ศูนย์"> <ตาราง เส้นขอบ="1" ความกว้าง="100%"> <!-- สำหรับแต่ละสถานะที่เราต้องการกราฟ, เราเรียก "ShowBar" แม่แบบ. เราผ่าน: 1. ป้ายชื่อแถว. นี้จะเปลี่ยนเป็นการเชื่อมโยงหลายมิติ. 2. เปอร์เซ็นต์ (ตัวแปรจากข้างต้น). 3. ชื่อจริงของรหัสจากรายการต้นแบบ. นี้ไม่จำเป็นต้องตรงกับป้ายชื่อที่แสดง. 4. ค่าของฟิลด์ที่ตรงกันสำหรับการ #3. 5. รายการทั้งหมดของรหัสสถานะนี้ (ไม่ผลรวมของรหัสสถานะทั้งหมด). มัน emits เป็น <tr></tr> และเส้นกราฟแท่งแนวนอน. เราเรียกแม่แบบนี้สำหรับแต่ละรหัสสถานะที่เราต้องการดู. --> <xsl:เรียกแม่ ชื่อ="ShowBar"> <xsl:มีพารามิเตอร์ ชื่อ="BarDisplayLabel" เลือก="'นำเสนอ'"/> <xsl:มีพารามิเตอร์ ชื่อ="BarPercent" เลือก="$percentProposed"/> <xsl:มีพารามิเตอร์ ชื่อ="QueryFilterFieldName" เลือก="'สถานะ'"/> <xsl:มีพารามิเตอร์ ชื่อ="QueryFilterFieldValue" เลือก="'นำเสนอ'"/> <xsl:มีพารามิเตอร์ ชื่อ="TotalItems" เลือก="$totalProposed"></xsl:มีพารามิเตอร์> </xsl:เรียกแม่> <xsl:เรียกแม่ ชื่อ="ShowBar"> <xsl:มีพารามิเตอร์ ชื่อ="BarDisplayLabel" เลือก="'หยุดการทำงาน'"/> <xsl:มีพารามิเตอร์ ชื่อ="BarPercent" เลือก="$percentStalled"/> <xsl:มีพารามิเตอร์ ชื่อ="QueryFilterFieldName" เลือก="'สถานะ'"/> <xsl:มีพารามิเตอร์ ชื่อ="QueryFilterFieldValue" เลือก="'หยุดการทำงาน'"/> <xsl:มีพารามิเตอร์ ชื่อ="TotalItems" เลือก="$totalStalled"></xsl:มีพารามิเตอร์> </xsl:เรียกแม่> <xsl:เรียกแม่ ชื่อ="ShowBar"> <xsl:มีพารามิเตอร์ ชื่อ="BarDisplayLabel" เลือก="ในกระบวนการ'"/> <xsl:มีพารามิเตอร์ ชื่อ="BarPercent" เลือก="$percentInProcess"/> <xsl:มีพารามิเตอร์ ชื่อ="QueryFilterFieldName" เลือก="'สถานะ'"/> <xsl:มีพารามิเตอร์ ชื่อ="QueryFilterFieldValue" เลือก="ในกระบวนการ'"/> <xsl:มีพารามิเตอร์ ชื่อ="TotalItems" เลือก="$totalInProcess"></xsl:มีพารามิเตอร์> </xsl:เรียกแม่> </ตาราง> </td> </tr> </ตาราง> </xsl:มิฉะนั้น> </xsl:เลือก> </xsl:แม่แบบ> <!-- แม่แบบนี้ไม่ทำงานแสดงบรรทัดแต่ละบรรทัดในกราฟแท่ง. คุณคงจะทำส่วนใหญ่ของ tweaking ของคุณที่นี่. --> <xsl:แม่แบบ ชื่อ="ShowBar"> <xsl:พารามิเตอร์ ชื่อ="BarDisplayLabel" /> <!-- ป้ายชื่อที่จะแสดง --> <xsl:พารามิเตอร์ ชื่อ="BarPercent"/> <!-- เปอร์เซ็นต์ของผลรวม. --> <xsl:พารามิเตอร์ ชื่อ="QueryFilterFieldName"/> <!-- ใช้ในการไปสอบถาม & ตัวกรอง --> <xsl:พารามิเตอร์ ชื่อ="QueryFilterFieldValue"/> <!-- ใช้ในการไปสอบถาม & ตัวกรอง --> <xsl:พารามิเตอร์ ชื่อ="TotalItems" /> <!-- จำนวนรวมของ barlabel นี้ --> <tr> <!-- แถบป้ายชื่อตัวเอง. --> <td คลาส="นางสาว formbody" ความกว้าง="30%"> <!-- ชุดถัดไปของงบสร้างสายอักขระแบบสอบถามที่ทำให้เราลึกมุมมองที่กรองข้อมูลต้นแบบ. เราใช้ของบางสิ่งที่นี่: 1. เราสามารถส่งผ่าน FilterField1 และ FilterValue1 รายการเพื่อกรองข้อมูลในคอลัมน์. 2. SharePoint จะผ่านพารามิเตอร์คีย์ให้เรา, ListUrlDir ให้ไปรายต้นเงิน DVWP นี้กำลัง "ทำงาน". ไม่สนุก XSL? --> <xsl:ข้อความ ปิดการใช้งานผลผลิตหลบหนี="ใช่"> <![CDATA[<การ href ="]]></xsl:ข้อความ> <xsl:ค่าของ เลือก="$ListUrlDir"/> <xsl:ข้อความ ปิดการใช้งานผลผลิตหลบหนี="ใช่"><![CDATA[?FilterField1 =]]></xsl:ข้อความ> <xsl:ค่าของ เลือก="$QueryFilterFieldName"/> <xsl:ข้อความ ปิดการใช้งานผลผลิตหลบหนี="ใช่"><![CDATA[&FilterValue1 =]]></xsl:ข้อความ> <xsl:ค่าของ เลือก="$QueryFilterFieldValue"/> <xsl:ข้อความ ปิดการใช้งานผลผลิตหลบหนี="ใช่"><![CDATA[">]]></xsl:ข้อความ> <xsl:ค่าของ เลือก="$BarDisplayLabel"/> <xsl:ข้อความ ปิดการใช้งานผลผลิตหลบหนี="ใช่"><![CDATA[</การ>]]></xsl:ข้อความ> <!-- บิตถัดไปแสดงเลขในรูปแบบ: "(ผลรวม / % ของผลรวม)" --> (<xsl:ค่าของ เลือก="$TotalItems"/> / <!-- นี้สร้างป้ายชื่อเปอร์เซ็นต์ดีสำหรับเรา. ขอขอบคุณ, Microsoft! --> <xsl:เรียกแม่ ชื่อ="percentformat"> <xsl:มีพารามิเตอร์ ชื่อ="เปอร์เซ็นต์" เลือก="$BarPercent"/> </xsl:เรียกแม่>) </td> <!-- ขั้นตอนสุดท้าย, กิ๊กเป็น <td> แท็กสำหรับแถบตัวเอง.--> <td> <ตาราง cellpadding="0" cellspacing="0" เส้นขอบ="0" ความกว้าง="{ปัดเศษ($BarPercent * 100)+1}%"> <tr bgcolor="สีแดง"> <xsl:ข้อความ ปิดการใช้งานผลผลิตหลบหนี="ใช่"><![CDATA[&nbsp;]]></xsl:ข้อความ> </tr> </ตาราง> </td> </tr> </xsl:แม่แบบ> <!-- นี้นำมาโดยตรงจากบาง XSL ที่พบในแม่แบบ MS. --> <xsl:แม่แบบ ชื่อ="percentformat"> <xsl:พารามิเตอร์ ชื่อ="เปอร์เซ็นต์"/> <xsl:เลือก> <xsl:เมื่อ ทดสอบ="รูปแบบหมายเลข($เปอร์เซ็นต์, '#,##0%;-#,##0%')= 'น่าน'">0%</xsl:เมื่อ> <xsl:มิฉะนั้น> <xsl:ค่าของ เลือก="รูปแบบหมายเลข($เปอร์เซ็นต์, '#,##0%;-#,##0%')" /> </xsl:มิฉะนั้น> </xsl:เลือก> </xsl:แม่แบบ> </xsl:สไตล์ชีต>

ผลลัพธ์:

XSL จากข้างต้นสร้างกราฟนี้:

รูปภาพ

ลึกข้อมูลต้นแบบ โดยการคลิกที่รหัสสถานะ:

รูปภาพ

สรุปความคิด:

สามารถนี้สามารถตั้งค่าทั่วไป?

ชอบแนวคิดนี้สร้างกราฟ, แต่ผมเกลียดความจริงที่ต้องไป และไม่มากมือรหัส. ฉันได้รับเพียงเล็กน้อยคิดไปว่ามันสามารถจะตั้งค่าทั่วไป และผมในเชิงบวก, แต่ฉันยังกลัวเล็กน้อยอาจมีกำแพงอิฐอยู่ตามเส้นทางที่จะไม่มีการทำงานรอบ. ถ้าใครมีความคิดที่ดีบางอย่างนี้, โปรดสังเกตในข้อคิดเห็น หรือ อีเมล์ผม.

กราฟแนวตั้ง:

เป็นกราฟแท่งแนวนอน. แน่นอนสามารถสร้างกราฟแนวตั้ง. เราก็ต้องเปลี่ยน HTML. ฉันจะเริ่มต้นแบบเดียวกัน: สร้างการแสดง HTML ของกราฟแท่งแนวตั้ง และทราบวิธีการได้รับที่ผ่าน XSL. ถ้าใครสนใจที่, ฉันไม่สามารถเกลี้ยกล่อมให้ลอง และออกกิจกรรม. ถ้าคนทำที่, โปรดแจ้งให้เราทราบและฉันยินดีจะเชื่อมโยงไปยังบล็อกของคุณ🙂

ผมคิดว่า ท้าทายกับกราฟแนวตั้งเป็นว่า ป้ายชื่อสำหรับกราฟจะยากในการจัดการ, แต่แน่นอนไม่ได้.

ฟิลด์ชื่อ Gotcha:

มีสิ่งหนึ่งเพื่อออกค้นหา ด้วยชื่อของเขตข้อมูล.

แรก, ชื่อเขตข้อมูล มีช่องว่างเป็นต้องหนีใน XSL. นี้อาจจะมีปัญหานี่:

        <xsl:ตัวแปร ชื่อ="totalProposed" 
เลือก="การตรวจนับ(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status) = 'นำเสนอ'])" />

ถ้าสถานะของคุณ"" คอลัมน์เป็นจริงชื่อ "รหัสสถานะ" คุณต้องอ้างอิงเป็น "Status_x0020_Code":

   <xsl:ตัวแปร ชื่อ="totalProposed" 
เลือก="การตรวจนับ(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status_x0020_Code) = 'นำเสนอ'])" />

วินาที, และฉันพร่าเลือนเล็กน้อยนี้, แต่คุณยังจำเป็นต้องเกี่ยวกับการแจ้งเตือนการเปลี่ยนแปลงชื่อเขตข้อมูล. ถ้าคุณตั้งชื่อของฟิลด์ "รหัสสถานะ" และในภายหลังแล้ว, เปลี่ยนชื่อเป็น "AFE สถานะ", "ภายในชื่อ" ไม่มีการเปลี่ยนแปลง. ภายในจะยังคงถูก "รหัส สถานะ" และต้องอ้างอิงเป็น "Status_x0020_Code". "ทรัพยากรอื่น ๆ" การเชื่อมโยงอาจช่วยวินิจฉัย และแก้ไขปัญหาลักษณะนี้.

เกี่ยวกับสี:

ฉันเลือก "สีแดง" เพราะพอฉันในขณะนี้. ไม่เป็นไรจะแสดงสีที่แตกต่างเพื่อให้มากกว่าเพียงแค่คำอธิบายภาพของตัวเลข, แต่ ต้องมี KPI ที่เป็นประโยชน์. ตัวอย่าง, ถ้าหยุดเปอร์เซ็นต์ของ "การทำงาน" เป็นของ AFE > 10% แล้ว แสดงสีแดง, หรือ แสดงในสีดำ. ใช้ <xsl:เลือก> เพื่อให้บรรลุนี้.

ทรัพยากรอื่น ๆ:

เปลี่ยนความสุข!

<สิ้นสุด />

สมัครสมาชิกไปยังบล็อกของฉัน!

17 คิดเกี่ยวกับ“สร้างกราฟแท่งใน SharePoint

  1. Chris B

    หน้านี้เกือบเสร็จสมบูรณ์แล้วงานที่ฉันถูกมองหา.

    มีกลุ่มที่ต้องการใช้รายการ SharePoint แบบสำรวจการสร้างแบบสำรวจเป็นรายสัปดาห์. จับ? พวกเขาไม่ต้องการดูรหัส… หรือเปลี่ยนระบบทุกครั้งที่พวกเขาส่งแบบสำรวจ (วางแผนปรับปรุงประจำสัปดาห์).

    ผมสามารถที่จะเชื่อมต่อนี้รายการแบบสำรวจ และสร้างกราฟในคอลัมน์แรกที่ตอบ. สิ่งที่ฉันไม่สามารถทำนายว่า มีค่าและป้ายชื่อที่พวกเขาจะต้องก้าวไปข้างหน้า. เพื่อให้เรื่อง แย่ลงจะได้น้อยมีคำตอบแต่ละสัปดาห์.

    ฉันจะค้นหาอื่น ๆ ในกรณี, แต่มีคนพบวิธีที่จะสร้างแถวและป้ายชื่อตามออกจำนวนชัน และแบบไดนามิกการตั้งค่าเหล่านี้ แทนยากรหัสค่าที่คาดไว้?

  2. กา Laushine

    ขอบคุณพอล. เป็นประโยชน์มาก. ขอบคุณการทำงานของคุณ, ผมสามารถเพิ่มกราฟแถบคอลัมน์ DVWP อยู่ (เช่น. สำหรับงาน) มีเพียงไม่กี่บรรทัดของรหัสของคุณได้อย่างง่ายดายมาก.
    ใน SharePoint Designer, แทรกมุมมองข้อมูล ด้วยชื่อเรื่อง และ % คอลัมน์ทั้งหมดจากรายการงาน. ฉันวางเคอร์เซอร์ในเซลล์ใดเซลล์หนึ่ง และคลิกขวา. ผมเลือกแทรกคอลัมน์ทางด้านขวา. ในมุมมองโค้ด, พบ <td> และแทน <xsl:องค์ประกอบข้อความข้างในเซลล์มีรหัสของคุณ:
    <ตาราง cellpadding ="0" cellspacing ="0" ขอบ ="0"
    ความกว้าง = "{ปัดเศษ(@PercentComplete * 100)+1}%">
    <ลักษณะ tr = "สีพื้นหลัง:สีแดง">
    <xsl:ข้อความที่ปิดการใช้งานผลผลิตหนี = "ใช่"><![CDATA[&nbsp;]]></xsl:ข้อความ>
    </tr>
    </ตาราง>

    หมายเหตุเปลี่ยนรหัสสีแถวจาก bgcolor = "สีแดง" ลักษณะ = "สีพื้นหลัง:สีแดง"
    นอกจากนี้, สามารถเลือกคอลัมน์ใดคอลัมน์หนึ่งในรายการของฉัน (@PercentComplete) แทน "$BarPercent"
    กา

  3. Wolfgang
    พอล, ขอบคุณสำหรับการนี้! สร้างสำเนาของคุณได้ และทำงานเกือบสมบูรณ์แบบ. มีปัญหาเล็ก ๆ หนึ่งในแถวย่อหน้าที่ 2 ของรหัสของคุณ:
    <xsl:จับแม่ = "/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
    xmlns:__designer =http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:asp ="http://schemas.microsoft.com/ASPNET/20"&gt;
    คุณจำเป็นต้องใส่ http://schemas.microsoft.com/WebParts/v2/DataView/designer ในใบเสนอราคา.
    หลังจากที่ผมแก้ไขให้ มันทำงานเหมือนเสน่ห์! ฉันจะตอนนี้คล้อยนี้รายการและสถานะของตัวเอง แต่ผมมั่นใจว่า มันจะไม่ยากไป. (จะแจ้งผล)
    ขอขอบคุณอีกครั้ง
    ~ Wolle
  4. ไม่มีชื่อ
    คำถาม –
    ถ้ากราฟของฉันใด, ต้องการตัวแปรนับสถานะหนึ่งไม่เพียง แต่นับจำนวนหลายคน?
    ดังนั้น, เช่น ถ้าผม —
    <xsl:ชื่อตัวแปร = "RequestsInitialized"
    เลือก = "จำนวน(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status)= 'WIP'])" />
    –สิ่งเป็น, ฉันต้องการตรวจนับอินสแตนซ์ของ 'WIP', แต่ยังต้องการตัวแปรนี้นับอย่างอื่นเช่น "รอการตรวจทาน'. จะฉันอย่างไรนี้?
    ขอขอบคุณ!
  5. Murty Srirangam
    Hi Paul,
    เอี่ยมจริงๆนี้เป็นจริงความพยายามที่ดีโดยคุณ. สามารถคุณกรุณาอธิบายที่จะฉันลงรหัสนี้. ฉันได้สร้าง prjoect ที่ มีแฟ้มสี่ใหม่. แล้ว สามารถคุณอธิบายละเอียดอะไรควรทำหรือไม่.
    ขอบคุณ
    Murty
  6. แอนดรูงตัน
    สวัสดี, ฉันพยายามที่จะปรับเปลี่ยนนี้เล็กน้อยเพื่อให้สามารถแสดงเป็นกราฟของงานในรายการงานจากผู้. ใช้คอลัมน์ที่เรียกว่า @AssignedTo ซึ่งเป็นคอลัมน์ผู้ใช้สถานะการออนไลน์. ฉันสามารถทำให้การแสดง rendered HTML แต่ไม่ได้รับการคำนวณ และแสดงค่า.
    ความคิดเห็นใด ๆ?
    ขอขอบคุณ
    Andy
  7. Patrik ลูกาเขียน:
    Hi Paul,
    โพสต์มาก!
    คำถาม:
    ต้องการกรองเขตข้อมูลสองในเวลาเดียวกัน: วิธีสามารถนี้ได้หรือไม่?
    ตัวอย่าง, ตัวแปรของคุณอย่างใดอย่างหนึ่งเรียกว่า totalStalled และก็กรองบน @Status.
    อยากจะกรองในเวลาเดียวกันเพื่อลดจำนวนของฉันส่งกลับระเบียนที่เขตข้อมูลอื่น.
    ฉันได้พบวิธีที่จะทำให้ ‘หรือ’, แต่ฉัน donnot จัดการเพื่อหาสิ่งที่ ‘และ’
    ‘การหรือ’ สามารถทำได้เช่นนี้:
    <xsl:ชื่อตัวแปร = "totalStalled" เลือก = "จำนวน(/dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@Status) = ‘จนตรอก’] | /dsQueryResponse/แถว/แถว[พื้นที่ปกติ(@ExtraFilterField) = ‘ค่า’])" />
  8. ไมค์ culp
    ขอบคุณพอล. นอกจากนี้ยังใช้เวลาดูที่นี่:

    http://www.microsoft.com/sharepoint/downloads/components/detail.asp?a1=701เอียนโพสต์นี้ Morrish พฤษภาคม 2006. ฉันพยายามในมอสส์ 2007 และทำงานได้ดี. ที่เพิ่มเข้ามา GAC, มี execadmsvcjobs การ iisreset…

  9. แฟรงค์

    ฉันมี ‘การใช้แผงควบคุมใน SharePoint’ คำถาม. เราเป็นโรงพยาบาลทหารโดยใช้มาตรฐาน MOSS สำหรับอินทราเน็ตของเราและต้องการที่จะสร้างแดชบอร์ดสำหรับกลุ่มคำสั่งของเราเพื่อดู ‘เวลาจริง’ ถ้าเป็นไปได้. ประเด็นหลักคือดูปริมาณปัจจุบันแบบเรียลไทม์ภายในให้ และดูมันเปลี่ยนแปลงขึ้นลงอย่างแท้จริง (อาจต้องคลิก “รีเฟรช”/F5).

    ขอบคุณล่วงหน้า,

ทิ้งคำตอบไว้

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่. ช่องที่ต้องการถูกทำเครื่องหมาย *