כיצד להשתמש ההרכבות המותאמות אישית או קוד מוטבע ב שירותי דיווח

עמודה קול תמיכה של שרת SQL

כיצד להשתמש ההרכבות המותאמות אישית או קוד מוטבע ב שירותי דיווח

כדי להתאים אישית את עמודה זו לצרכים שלך, אנו מעוניינים להזמין ממך למסור את הרעיונות שלך אודות נושאים המעניינים אותך ונושאים שברצונך לראות נדונו בעתיד מאמרים במאגר הידע ועמודות קול תמיכה. באפשרותך לשלוח רעיונות ומשוב באמצעות טופס שאל עבור אותו . הוא גם קישור לטופס בחלק התחתון של עמודה זו.
ברוך השב! אני Sandy Yakob עם צוות Microsoft SQL Server תוכן. אני hostess שלך עבור העמודות קול תמיכה של שרת SQL. הערה מהירה אודותיי: אני לא עם Microsoft למשך 14 שנים. בשלוש השנים האחרונות, אני עבדת עם צוות התוכן של SQL Server.


עבור עמודה של חודש זה, ג'ון Sirmon יציג בפניך את השלבים לשימוש הרכבה מותאם אישית או קוד מוטבע ב- SQL Server 2000 Reporting Services שירותי דיווח של SQL Server 2005. מאמר זה תוכנן כדי להעניק לך את השלבים הבסיסיים שיסייעו לך ופועל עם הרכבה מותאם אישית ב- Reporting Services. ג'ון מהנדס הסלמה תמיכה עם צוות התמיכה מפתח SQL ב- Microsoft, פעלה עבור Microsoft מאז מרץ 2001. הוא שיתפה פעולה עם SQL Server עבור יותר מ- 10 שנים וכוללת פיתוח נרחב להיתקל עם Microsoft Visual Studio. ג'ון מחזיק מידה S. B. בניהול העסק מ- Citadel. הוא גם מכילה את האישורים של Microsoft מוסמך פתרון מפתחים (MCSD) והסמכה Microsoft מוסמך מסד הנתונים של מנהל (MCDBA). אני מקווה ליהנות את עמודה ו שיועיל.

ליצור הרכבה מותאם אישית

כדי ליצור הרכבה מותאם אישית, בצע את הפעולות הבאות:
  1. צור ספריית מחלקות Visual Studio. בתפריט קובץ , הצבע על חדש, הצבע על פרוייקטולאחר מכן לחץ על ספריית המחלקות.
  2. ציין את השם ומיקום. לדוגמה, ניתן להשתמש 2005\projects SimpleClassLibrary ו- C:\Documents ו- Settings\user1\My Documents\Visual Studio.
  3. פתח את הקובץ מחלקה (במקרה שלי, Class1.vb), ולאחר מכן צור הפונקציות בהן ברצונך להשתמש ב- Reporting Services. במקרה שלי, אני פשוט ליצור פונקציה משותפת פשוטה אחת.

    הערה מאחר שזו פונקציה משותפת (סטטית ב- c#), אין לנו לגשת אליו באמצעות אובייקט מופע. זכור זאת כפי זו יש השפעה על האופן שבו אנו הפניה שלנו ההרכבה בהמשך המאמר.
    Public Class Class1
    Public Shared Function DoSomething() As String
    Return "string data returned from custom assembly"
    End Function

    End Class

  4. לאחר שתסיים להוסיף את הקוד, לחץ על בנה SimpleClassLibrary בתפריט לבנות . שלב זה יוצר את ההרכבה או ה-. dll מנוהל בתיקיית סל המתאימים. בדוגמה שלי, שלב זה נוצר ההרכבה שלי, SimpleClassLibrary.dll, בתיקיה SimpleClassLibrary\bin\Debug 2005\Projects\ Studio Documents\Visual שלי.

העתק את ההרכבה מותאם אישית לתיקיות SQL Reporting Services

לפנות את ההרכבה מעצב הדוחות ולשרת דוח Reporting Services. לשם כך, עליך להעתיק. dll שלך לתיקיה מעצב הדוחות וגם אל התיקיה שרת הדיווח.

הערה הנתיב עשוי להיות מעט שונה, בהתאם לנתיב ההתקנה שלך.
  • 2005 שירותי דיווח, העתק את ה-. dll בתיקיות הבאות:
    • לתכנת אותו Visual Studio 8\Common7\IDE\PrivateAssemblies
    • תוכנית אותו SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • עבור דיווח 2000 שירותים, העתק את ה-. dll בתיקיות הבאות:
    • מעצב Server\80\Tools\Report של SQL אותו לתוכנית
    • תוכנית אותו SQL Server\MSSQL\Reporting Services\ReportServer\bin
הערה מאחר שעליך לעשות זה בכל פעם שמשנים את הקוד, הוא יכול להיות מעט מייגעת. מפתחים רבים ליצור קבצי אצווה כדי לטפל משימה זו. הנה דוגמה של קובץ אצווה שבאפשרותך להשתמש.
@ECHO OFFREM   Name: SRSDeploy.bat
REM
REM This batch files copies my custom assembly to my Reporting Services folders.
REM Run this from the directory where the customer assembly was compiled.
REM Be sure to close any applications that have your custom assembly open.
REM
REM This is the SQL Server 2005 version:
copy SimpleClassLibrary.dll "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies"
copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin"

REM This is the SQL Server 2000 version:REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer"
REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin"

בדרך כלל ניתן לטפל משימה זו על-ידי יצירת אירוע לאחר build מותאם אישית בפרוייקט שלי. לשם כך, עבור אל גליון המאפיינים של הפרוייקט שלך. לאחר מכן, לחץ על הכרטיסיה הידור ולאחר מכן לחץ על בניה אירועים. פעולה זו פותחת את תיבת הדו-שיח בניית אירועים . בחר שלאחר בניית שורת פקודה של אירוע, ולאחר מכן הקלד את הפקודה הבאה:
"8\Common7\IDE\PrivateAssemblies\ אותו C:\Program Visual Studio" עותק "$(TargetPath)"
העתק "$(TargetPath)" "C:\Program אותו SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
פעולה זו משתמשת מאקרו לאחר בנייה כדי לציין את המיקום של הרכבת שלי. לקבלת מידע נוסף אודות יצירת אירועים שלאחר build, בקר באתר האינטרנט הבא של Microsoft מפתח רשת (MSDN):

הוספת הפניה להרכבה מותאמים אישית בשירותי דיווח

כדי להוסיף הפניה להרכבה המותאם אישית שלך, פתח את הדוח Reporting Services במעצב דוח. לשם כך, בצע את הפעולות הבאות:
  1. פתח את הדוח אשר תפנה הרכבה מותאם אישית.
  2. בתפריט דוח , לחץ על מאפייני הדוח.
  3. בתיבת הדו-שיח מאפייני דוח , לחץ על הכרטיסיה הפניות .
  4. תחת הפניות, לחץ על הלחצן עם שלוש הנקודות (...) הנמצאת ליד כותרת עמודה של שם הרכבה .



    הערה המקטע מחלקות הוא רק עבור חברים מבוססי-מופע. הוא אינו עבור חברי סטטי. סטטי (מכונה גם "משותפים" מסוימים שלנו תיעוד Reporting Services) מציין כי החבר זמין עבור כל מופע של המחלקה כל מופע משתמשת באותו מיקום אחסון. לחברים הסטטיים מוצהרים באמצעות מילת המפתח המשותף ב- Microsoft Visual Basic ומילות מפתח סטטיות ב- c#. זה יכול להיות מעט מבלבל. מה פירוש הדבר הוא, אם הרכבה מותאם אישית שלך כוללת חברים מופע אליה אתה צריך לגשת, יהיה עליך לציין את שם המחלקה ואת שם מופע במקטע מחלקות . מכיוון השיטה שאני מתקשר מתוך Reporting Services הוגדר כסטטי באמצעות מילת המפתח המשותף ב- Visual Basic, שימוש במקטע הפניות במקום במקטע מחלקות .
  5. בתיבת הדו-שיח הוספת הפניות , לחץ על עיון. (ב- SQL Server 2005, לחץ על הכרטיסיה עיון ).
  6. אתר ולאחר מכן לחץ על הרכבה מותאם אישית. לחץ על פתח. (ב- SQL Server 2005, לחץ על הוסף במקום פתוח).
  7. בתיבת הדו-שיח הוספת הפניות , לחץ על ' אישור'.
  8. בתיבת הדו-שיח מאפייני דוח , לחץ על ' אישור'.
אנו מוכנים כעת לשימוש הרכבה מותאם אישית ב- Reporting Services.
  1. פתח את הדוח (קובץ ה-. rdl) מעצב הדוחות.
  2. כדי להדגים כיצד להשתמש הרכבה מותאם אישית ב- Reporting Services, הוסף תיבת טקסט. כדי לעשות זאת, גרור תיבת טקסט ריקה מארגז הדוח.
  3. מאפייני תיבת טקסט, לחץ על המאפיין ערך ולאחר מכן לקרוא לפונקציה על-ידי שימוש בתחביר הבא.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    בדוגמה שלי, שצויין הבאות.
    =SimpleClassLibrary.Class1.DoSomething()
    תבניות אחרות משמשים להפניית בקוד Reporting Services. לדוגמה, השתמש בתבנית הבאה בעת התקשרות קוד מוטבע.
    =Code.MethodName()
    אם תתקשר שיטה שאינו סטטי או מופע מבוסס-, מתוך בתוך הרכבה מותאם אישית באמצעות מופע, השתמש בתבנית הבאה.
    =Code.InstanceName.Method
    הערה הגדרת האסמכתא שלך באופן שונה אם תרצה להשתמש בשיטת מבוסס על מופע. כדי לעשות זאת, אתה צריך כדי לעבור אל מאפייני דוח, לחץ על הכרטיסיה הפניות ולאחר מכן ציין שם המחלקה ואת שם המופע במקטע מחלקות .

קוד האבטחה גישה אם הרכבה מותאם אישית דורשת הרשאות נוספות

אם הרכבה מותאם אישית דורשת הרשאות יותר מאשר הרשאות ברירת המחדל של רמת ביצוע, עליך לבצע מספר שינויים אבטחה של קוד גישה. אם מתרחשת בעיית הרשאות עם אבטחת גישת קוד, סביר להניח כי תראה "#Error" מהרכבה המותאם אישית שלך במקום התוצאות הצפויות. עבור כמה שלבים מהירים שבאפשרותך לבצע כדי לקבוע אם בעיה זו מתרחשת, לקבלת הוראות מפורטות אודות אופן הענקת הרשאות נוספות להרכבת המותאם אישית שלך, לחץ על מספר המאמר שלהלן כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:
842419 כיצד להעניק הרשאות להרכבה מותאם אישית שאליו מתייחס הדוח בשירותי דיווח

הערה השיטה הבאה היא מחשב כדי לקבוע אם מתרחשות בעיות אבטחה של קוד גישה. לא מומלץ להשתמש בגישה הבאה מכיוון שהיא מעניקה הרשאות אמון מלא להרכבה המותאם אישית שלך.



צור קבוצת קוד חדשה עבור הרכבה מותאם אישית שלך ולאחר מכן להעניק הרשאות אמון מלא. כדי לעשות זאת, פתח את קובץ התוכנית אותו SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config, ולאחר מכן הוסף את הקוד הבא.
<CodeGroup class="UnionCodeGroup"   version="1"
PermissionSetName="FullTrust"
Name="MyCodeGroup"
Description="Code group for my data processing extension">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\pathtocustomassembly\customassembly.dll"
/>
</CodeGroup>

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

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

קוד מוטבע

קוד מוטבע הוא קוד שנכתב במקטע קוד של תיבת הדו-שיח מאפייני הדוח . קוד מוטבע הוא בחירה טובה עבור קוד תיקרא מספר פעמים בתוך הדוח שלך. אם ברצונך לעשות שימוש חוזר בקוד דוחות מרובים, הרכבה מותאם אישית כנראה היא בחירה טובה יותר. כדי ליצור פונקציה לא מוטבע, בצע את הפעולות הבאות:
  1. בתפריט דוח , לחץ על מאפייני הדוח.
  2. בתיבת הדו-שיח מאפייני דוח , לחץ על הכרטיסיה קוד
  3. הוסף הפונקציה הבאה ולאחר מכן לחץ על אישור.
    Public Function EmbeddedFunction() as String Return "this is from embedded code function"
    End Function

  4. הדוח, הוסף תיבת טקסט חדשה.
  5. הוסף את הדברים הבאים המאפיין Value .
    =code.EmbeddedFunction
הייתי רוצה להודות ג'ון לעבודה הקשיח שלו על מאמר זה. הוא חוויה מעמיק ב- SQL Server ושפות הפיתוח Microsoft מספר ונהנים עבודה עם לקוחות ופתרון בעיות קשה. מקווים שנהנית הנושא בחודש זה! תודה על הקריאה! כמו תמיד, אל תהסס לשלוח רעיונות הנושאים שברצונך נדונו בעתיד עמודות או במאגר הידע באמצעות טופס שאל עבור אותו .
מאפיינים:

מזהה פריט: 920769 - סקירה אחרונה: 9 בינו׳ 2017 - תיקון: 1

משוב