ארכיון חודשי: בדצמבר 2007

ליצור גרפים של מייצגי ב- SharePoint

מבט כולל:

(עדכון 12/04/07: הוספת משאב מעניין אחר בקצה קישור לבלוג אחר המטפלת זה דרך web part מעניין מאוד)

את הבלוג מתאר כיצד ליצור גרף עמודות ב- SharePoint. זה עובד בסביבות WSS וגם מוס. כמו הדבר תלוי רק ה-web part של תצוגת נתונים.

הגישה הכללית היא כדלקמן:

  1. יצירת רשימה או ספריית מסמכים המכיל את הנתונים שברצונך גרף.
  2. המקום בספריית המסמכים הקשורים / מותאם אישית ברשימה בדף, להמיר אותו ל- web part של תצוגת נתונים (DVWP).
  3. שינוי של DVWP XSL ליצירת HTML המציגה בצורת גרף.

תרחישים עסקיים / תוכנית ההתקנה:

יצרתי רשימה מותאמת אישית עם תקן כותרת העמודה והעמודה נוספים אחד, "מצב". מודלים הזה (בצורה מאוד פשטנית) אישור"עבור הוצאות" התרחיש כאשר הכותרת מייצג את הפרויקט ואת המצב ערך מתוך רשימת:

  • הציע נישואין
  • בתהליך
  • התקועה

המטרה היא לייצר אינטראקטיבי אופקי גרף המציג את קודי מצב אלה.

אני צריכה את הרשימה ואת זה נראה כמו זה:

התמונה

יצירת Web Part תצוגת נתונים:

ליצור את DVWP על-ידי הוספת הרשימה המותאמת אישית לדף (דף אתר במקרה שלי) ובצע את ההוראות כאן (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

בנוסף פשוט יצירת את DVWP, אנחנו גם צריכים להגדיר את המאפיין החלפה כדי להציג את כל השורות זמין. בשבילי, . זה נראה משהו כזה:

התמונה

בנקודה זו, תמיד קרוב. SPD ו הדפדפן. אני מכן לפתוח מחדש את הדף באמצעות הדפדפן. הדבר מונע בטעות שמחרבן לי את פריסת חלק בדף.

לשנות את ה-XSLT:

הגיע זמן לשנות ה-XSLT.

. אני תמיד משתמשת visual studio בשביל זה. (ראה כאן עבור הערה חשובה על intellisense זה יעזור לך הרבה).

ליצור פרוייקט ריק מוסיף קבצים חדשים ארבע (החלפת המילים "אורגינל" וחדש"" כיאה):

  • 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 = אדום><td>&nbsp;</td></. tr></טבלה></td>
</. tr>
<. tr>
<td רוחב = 10%>סגור</td>
<td><טבלה cellpadding ="0" cellspacing ="0" גבול = רוחב 0 = 25%><צבע רקע tr = אדום><td>&nbsp;</td></. tr></טבלה></td>
</. tr>
<. tr>
<td רוחב = 10%>התקועה</td>
<td><טבלה cellpadding ="0" cellspacing ="0" גבול = רוחב 0 = 25%><צבע רקע tr = אדום><td>&nbsp;</td></. tr></טבלה></td>
</. tr>
</טבלה>
</td>
</. tr>
</טבלה>
</הגוף>
</html>

נעשה שימוש בגישה מתים פשוט ליצירת סורגים שלי על-ידי הגדרת צבע הרקע של שורה "אדום".

Take-away כאן את זה: בסופו של דבר, כל מה שאנחנו עושים הוא יצירת HTML עם שורות ועמודות.

תבנית ה-XSLT:

העתקתי את ה-XSLT שיוצר גרף עמודות אופקיות. . זה טוב למדי הגיב כדי לא להוסיף הרבה כאן למעט הערות אלו:

  • התחלתי עם ברירת המחדל XSL SharePoint Designer נתן לי כאשר שבתחילה יצרתי את DVWP.
  • . הייתי יכול לעשות את זה מ- SPD 657 קווים 166 קווים.
  • לא להתעסק עם קובץ ה-XML פרמטרים (נפרדת מאמצעי ה-XSL, לך תדע. למה אני מתכוון. כשאתה הולך לשנות את DVWP עצמה; קיימים שני קבצים, שבאפשרותך לשנות). עם זאת, על מנת לפשט את זה, להסיר וכמעט בכולם ה-XSL. זאת אומרת, אם אתה רוצה לעשות שימוש באותם הפרמטרים, אתה רק צריך להוסיף והגדרותיהם משתנים בחזרה ה-XSL. זה יהיה קל. מאז יהיה לך הגדרות המשתנה המקורי של XSL בפרוייקט visual studio.
  • אתה צריך להיות מסוגל להעתיק ולהדביק את זה ישירות לתוך הפרוייקט שלך visual studio. לאחר מכן, הסר את השיחות שלי ולהוסיף משלכם שיחות "ShowBar".
  • התרגיל למטה עבודות על-ידי יצירת <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="כד:סכימות-מיקרוסופט-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="כד:סכימות-מיקרוסופט-com:office" xmlns:s="רכיב uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="רכיב uuid:C2F41010-65B3 - 11d 1-A29F-00AA00C14882" xmlns:ר'="כד:סכימות-מיקרוסופט-com:שורות" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="כד:frontpage:פנימית"
> <xsl:פלט שיטה="html" כניסה="לא" /> <xsl:תבנית עשרונית נאן="" /> <xsl:param שם="ListUrlDir"></xsl:param> <!-- אני צריך את זה כדי לתמוך את ההסתעפות. --> <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 דיב $dvt_RowCount" /> <xsl:משתנה שם="totalInProcess" בחר="ספירה(/dsQueryResponse/שורות/שורה[לנרמל-מרחב(@Status) = "בתהליך"])" /> <xsl:משתנה שם="percentInProcess" בחר="$totalInProcess דיב $dvt_RowCount" /> <xsl:משתנה שם="totalStalled" בחר="ספירה(/dsQueryResponse/שורות/שורה[לנרמל-מרחב(@Status) = 'נתקע'])" /> <xsl:משתנה שם="percentStalled" בחר="$totalStalled דיב $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. סה כ פריטים של קוד מצב (לא על הסכום הכולל של כל קודי מצב). הוא פולט <. tr></. tr> קו אופקי גרף. אנחנו קוראים תבנית זו עבור כל קוד מצב שאנחנו רוצים להציג. --> <xsl:תבנית קריאה שם="ShowBar"> <xsl:עם param שם="BarDisplayLabel" בחר=""הציע""/> <xsl:עם param שם="BarPercent" בחר="$percentProposed"/> <xsl:עם param שם="QueryFilterFieldName" בחר="'מצב'"/> <xsl:עם param שם="QueryFilterFieldValue" בחר=""הציע""/> <xsl:עם param שם="TotalItems" בחר="$totalProposed"></xsl:עם param> </xsl:תבנית קריאה> <xsl:תבנית קריאה שם="ShowBar"> <xsl:עם param שם="BarDisplayLabel" בחר="'נתקע'"/> <xsl:עם param שם="BarPercent" בחר="$percentStalled"/> <xsl:עם param שם="QueryFilterFieldName" בחר="'מצב'"/> <xsl:עם param שם="QueryFilterFieldValue" בחר="'נתקע'"/> <xsl:עם param שם="TotalItems" בחר="$totalStalled"></xsl:עם param> </xsl:תבנית קריאה> <xsl:תבנית קריאה שם="ShowBar"> <xsl:עם param שם="BarDisplayLabel" בחר=""בתהליך""/> <xsl:עם param שם="BarPercent" בחר="$percentInProcess"/> <xsl:עם param שם="QueryFilterFieldName" בחר="'מצב'"/> <xsl:עם param שם="QueryFilterFieldValue" בחר=""בתהליך""/> <xsl:עם param שם="TotalItems" בחר="$totalInProcess"></xsl:עם param> </xsl:תבנית קריאה> </טבלה> </td> </. tr> </טבלה> </xsl:אחרת> </xsl:בחר> </xsl:תבנית> <!-- תבנית זו עושה את העבודה של הצגת שורות בודדות של גרף. אתה בטח תעשה רוב מגרסאות שלך כאן. --> <xsl:תבנית שם="ShowBar"> <xsl:param שם="BarDisplayLabel" /> <!-- תווית להראות --> <xsl:param שם="BarPercent"/> <!-- % סה '. --> <xsl:param שם="QueryFilterFieldName"/> <!-- נהגו לקפוץ לשאילתה & מסנן --> <xsl:param שם="QueryFilterFieldValue"/> <!-- נהגו לקפוץ לשאילתה & מסנן --> <xsl:param שם="TotalItems" /> <!-- ספירה סך של barlabel הזה --> <. tr> <!-- הבר תווית עצמה. --> <td מחלקה="ms-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:עם param שם="אחוז" בחר="$BarPercent"/> </xsl:תבנית קריאה>) </td> <!-- לבסוף, פולטים <td> תג הבר עצמו.--> <td> <טבלה cellpadding="0" cellspacing="0" גבול="0" רוחב="{סיבוב($BarPercent * 100)+1}%"> <. tr צבע רקע="אדום"> <xsl:טקסט בטל-פלט-בריחה="כן"><![CDATA[&nbsp;]]></xsl:טקסט> </. tr> </טבלה> </td> </. tr> </xsl:תבנית> <!-- זה נלקח ישירות מתוך כמה XSL מצאתי בתוך תבנית MS. --> <xsl:תבנית שם="percentformat"> <xsl:param שם="אחוז"/> <xsl:בחר> <xsl:כאשר מבחן="עיצוב מספר($אחוז, '#,##0%;-#,##0%')= 'סבתא'">0%</xsl:כאשר> <xsl:אחרת> <xsl:הערך בחר="עיצוב מספר($אחוז, '#,##0%;-#,##0%')" /> </xsl:אחרת> </xsl:בחר> </xsl:תבנית> </xsl:גליון סגנונות>

התוצאות:

ה-XSL מלמעלה יוצר הגרף הזה:

התמונה

בהסתעפות הנתונים המשמשים כבסיס על-ידי לחיצה על קוד מצב:

התמונה

מחשבות המסכם:

זה יכול להיות מוכללת?

. אני אוהב את הרעיון graphing הזה, . אבל אני שונא את העובדה שיש לי להיכנס ולעשות כל כך הרבה יד-קידוד. . נתתי קצת מחשבה. זה יכול להיות מוכללת, אני אופטימי, אבל אני גם קצת מפחיד כי ייתכן קיר לבנים איפשהו לאורך השביל לא מציעים שום עבודה.. אם למישהו יש רעיונות טובים בזה, אנא ציינו זאת בהערות או שלח לי דוא.

גרפים אנכי:

זהו גרף עמודות אופקיות. זה בהחלט אפשרי ליצור גרף אנכי. אנחנו רק צריכים לשנות את ה-HTML. הייתי מתחיל באותה דרך: ליצור ייצוג HTML של גרף עמודות אנכיות, ואז להבין כיצד להשיג זאת באמצעות XSL. אם מישהו מעוניין בזה, . אפשר לשכנע לנסות אותו ולעבוד לבדוק אם יש פגמים. אם מישהו כבר עשה את זה, אנא יידע אותי ואקשר בשמחה לבלוג שלך 🙂

אני חושבת אתגר עם גרף אנכי זה התוויות עבור הגרף קשים יותר לניהול, אבל בהחלט לא בלתי אפשרי.

של שדה שם הבנתי אותך:

יש לפחות שני דברים לחפש עם שמות השדות שלך.

הראשונה, שם שדה ברווח חייב להיות נמלט את ה-XSL. זה יהיה כנראה בעיה כאן:

        <xsl:משתנה שם="totalProposed" 
בחר="ספירה(/dsQueryResponse/שורות/שורה[לנרמל-מרחב(@Status) = 'הציע'])" />

אם מצבך"" טור בעצם קוראים "קוד מצב" אז אתה צריך להפנות את זה בתור "Status_x0020_Code":

   <xsl:משתנה שם="totalProposed" 
בחר="ספירה(/dsQueryResponse/שורות/שורה[לנרמל-מרחב(@Status_x0020_Code) = 'הציע'])" />

שנייה, . ואני קצת מעורפלים בעניין, אבל אתה גם צריך להיות בכוננות לבואם של שינויי שמות שדה. אם אתה שם את שדה "קוד מצב" ולאחר מכן על, לשנות את שם "מצב דינה אזולאי", "השם הפנימי" לא משנה. השם הפנימי עדיין יהיה "קוד מצב" ואת חייבת להיות הפניה כמו "Status_x0020_Code". "המשאבים האחרים" קישורים עשוי לסייע לאבחן ולתקן בעיות כאלה.

על הצבע הזה:

אני בחרתי "אדום" כי זה לרצות אותי כרגע. זה לא יהיה עניין גדול להראות צבעים שונים כדי לספק יותר מאשר תיאור חזותי של מספר, אבל גם לספק KPI שימושי. לדוגמה, אם האחוז של "התקועה" הוא של דינה אזולאי > 10% אז תראי את זה אדום, אחרת להראות את זה בשחור. השימוש <xsl:בחר> כדי להשיג את זה.

משאבים אחרים:

שינוי צורה של שמחה!

<סיום />

מנוי על הבלוג שלי!

SharePoint אינו מספק “למי יש גישה” דוחות

עדכון 01/28/08: הפרויקט codeplex פותר בעיה זו: http://www.codeplex.com/AccessChecker. לא השתמשתי בו, אבל הוא נראה מבטיח, אם זה בעיה שאתה צריך כתובת בסביבה שלך.

עדכון 11/13/08: ג'ואל אולסן כתבו פוסט טוב מאוד על גדול יותר ניהול בעיית האבטחה כאן: http://www.sharepointjoel.com/ Lists/Posts/Post.aspx?רשימת = 0cd1a63d % 2D183c % 2D4fc2 %2 D 8320% 2Dba5369008acb&ID = 113. זה קישורים למספר משאבים שימושיים אחרים.

פורום משתמשים ולקוחות מרבים לשאול שאלה לאורך שורות אלה: "כיצד אוכל ליצור רשימה של כל המשתמשים בעלי גישה לאתר" או "איך יכול אני אוטומטית להתריע לכל המשתמשים בעלי גישה לרשימת על שינויים שבוצעו ברשימה?"

אי אפשר לצאת של הפתרון תיבת בשביל זה. אם אתה חושב על זה לרגע, זה לא קשה להבין למה.

SharePoint ביטחון הוא מאוד גמיש. יש לפחות ארבע הקטגוריות העיקריות של משתמשים:

  • משתמשים אנונימיים.
  • SharePoint משתמשים וקבוצות.
  • מדריך משתמשים פעילים.
  • טפסים מבוסס אימות (FBA) משתמשים.

הגמישות אומר הרי מנקודת ראות ביטחונית, בכל אתר SharePoint נתון יהיה שונה באופן משמעותי אחר. על מנת ליצור דוח רשימה ב- access, צריך לברר איך האתר מאובטח, שאילתה מספר מאגרים פרופיל משתמש אחר ולאחר מכן להציג את זה בצורה שימושית. זו בעיה קשה לפתרון כללי.

איך מתמודדים ארגונים עם זה? אשמח לשמוע ממך הערות או דוא.

</קצה>

תגיות טכנורטי: ,