كيفية استخدام التجميعات المخصصة أو التعليمات البرمجية المضمنة في "خدمات التقارير"

عمود الصوت دعم ملقم SQL

كيفية استخدام التجميعات المخصصة أو التعليمات البرمجية المضمنة في "خدمات التقارير"

لتخصيص هذا العمود إلى احتياجاتك، نحن نريد دعوة منك إرسال الأفكار حول مواضيع تهم لك والمسائل التي تحتاج إلى مشاهدة الموجهة في المستقبل مقالات قاعدة المعارف والأعمدة "الصوتية دعم". يمكنك إرسال أفكارك وملاحظات باستخدام نموذج طلب لذلك . يوجد أيضا ارتباط إلى النموذج في أسفل هذا العمود.
مرحباً بك مرة أخرى! أنا ساندي؛ مع فريق Microsoft SQL Server المحتوى. أنا الخاص بك مضيفة للأعمدة الصوتية دعم ملقم SQL. ملاحظة سريعة حول لي: تم مع Microsoft لمدة 14 عاماً. طوال السنوات الثلاث الماضية، قد عملت مع فريق SQL خادم المحتوى.


العمود هذا الشهر، جون سيرمون يوفر لك الخطوات لاستخدام التعليمات البرمجية المضمنة في SQL Server 2000 Reporting Services وخدمات SQL Server 2005 التقارير أو التجميع المخصصة. تم تصميم هذا المقال لتمنحك الخطوات الأساسية للحصول على إعداد وتشغيل بتجميع مخصص في "خدمات التقارير". مهندس دعم التصعيد مع فريق دعم المطور SQL في Microsoft ويعمل Microsoft منذ آذار/مارس 2001. وقد عمل مع SQL Server على مدى عشر سنوات وقد تواجه باستخدام Microsoft Visual Studio تنمية على نطاق واسع. جون حاصل على درجة س. ب. في إدارة الأعمال من "القلعة". وهو حاصل أيضا شهادة مطور حل شهادة Microsoft (المقاصة) وشهادة مسؤول قاعدة بيانات معتمد ل Microsoft (MCDBA). وآمل أن تستمتع بالعمود وذلك مفيداً.

إنشاء تجميع مخصص

لإنشاء تجميع مخصص، اتبع الخطوات التالية:
  1. إنشاء مكتبة فئة Visual Studio. من القائمة ملف ، أشر إلى جديد، أشر إلى المشروعوثم انقر فوق مكتبة الفئات.
  2. تحديد الاسم والموقع. على سبيل المثال، استخدام 2005\projects سيمبليكلاسليبراري و C:\Documents and Settings\user1\My ستوديو Documents\Visual.
  3. فتح ملف الفئة (في حالتي، Class1.vb) ثم قم بإنشاء الوظائف التي تريد استخدامها في "خدمات التقارير". في حالتي، أنا فقط إنشاء دالة مشتركة واحدة البسيطة.

    ملاحظة: لأن هذه وظيفة مشتركة (ثابتة في C #)، لا لدينا للوصول إليه باستخدام كائن تم إنشاء مثيل له. تضع ذلك في اعتبارها هذا له تأثير على كيف يمكننا الإشارة جمعيتنا لاحقاً في المقالة.
    Public Class Class1
    Public Shared Function DoSomething() As String
    Return "string data returned from custom assembly"
    End Function

    End Class

  4. عند الانتهاء من إضافة كافة التعليمات البرمجية، انقر فوق إنشاء سيمبليكلاسليبراري بنية قائمة. هذه الخطوة بإنشاء التجميع أو.dll المدارة في مجلد سلة المعنية. بلدي على سبيل المثال، إنشاء هذه الخطوة لدى الجمعية SimpleClassLibrary.dll، في المجلد SimpleClassLibrary\bin\Debug 2005\Projects\ "ستوديو Documents\Visual الخاصة بي".

نسخ التجميع المخصصة إلى المجلدات خدمات تقارير SQL

توفير التجميع الخاص بك لمصمم التقرير وخادم التقارير في "خدمات التقارير". للقيام بذلك، يجب نسخ.dll الخاص بك إلى مجلد "مصمم تقرير" ومجلد "خادم التقرير".

ملاحظة: قد يكون المسار مختلفة بعض الشيء، استناداً إلى مسار التثبيت الخاص بك.
  • 2005 خدمات التقارير، نسخ.dll إلى المجلدات التالية:
    • برنامج مايكروسوفت 8\Common7\IDE\PrivateAssemblies Visual Studio
    • برنامج مايكروسوفت SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • 2000 خدمات التقارير، نسخ.dll إلى المجلدات التالية:
    • برنامج مايكروسوفت SQL Server\80\Tools\Report المصمم
    • برنامج مايكروسوفت 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"

أنا عادة معالجة هذه المهمة عن طريق إنشاء حدث بعد بناء مخصصة في المشروع. للقيام بهذا، انتقل إلى خصائص المشروع الخاص بك. بعد ذلك، انقر فوق علامة التبويب ترجمة ومن ثم انقر فوق إنشاء أحداث. يؤدي هذا إلى فتح مربع الحوار إنشاء أحداث . اختر ما بعد بناء الحدث سطر الأوامرواكتب ما يلي:
نسخ "$(TargetPath)" "Visual Studio مايكروسوفت C:\Program 8\Common7\IDE\PrivateAssemblies\"
نسخ "$(TargetPath)" "C:\Program مايكروسوفت SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
يستخدم هذا ماكرو بعد بناء لتحديد موقع التجميع الخاص بي. لمزيد من المعلومات حول إنشاء أحداث قبل أو بعد البناء، قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

إضافة مرجع إلى التجميع المخصص في "خدمات التقارير"

لإضافة مرجع إلى التجميع المخصص الخاص بك، افتح تقرير "خدمات التقارير" في "مصمم التقرير". للقيام بذلك، اتبع الخطوات التالية:
  1. افتح التقرير ستشير التجميع المخصصة.
  2. من القائمة تقرير ، انقر فوق خصائص التقرير.
  3. في مربع الحوار خصائص التقرير ، انقر فوق علامة التبويب مراجع .
  4. ضمن مراجع، انقر فوق زر علامة القطع (.) بجوار عنوان العمود اسم التجميع .



    ملاحظة: قسم الفئات المستندة إلى مثيل أعضاء فقط. لم يكن لأعضاء ثابتة. ثابت (يشار إليها باسم "المشتركة" في بعض وثائق "خدمات التقارير" الخاصة بنا) يعني أن العضو متوفرة لكل مثيل للفئة وكل مثيل يستخدم نفس موقع التخزين. أعضاء ثابتة يتم تعريفها باستخدام الكلمة الأساسية المشتركة في Microsoft Visual Basic وأساسية ثابتة في C #. يمكن أن يكون مربكاً بعض الشيء. وهذا يعني، إذا كان التجميع المخصص الخاص بك يحتوي على مثيل للأعضاء التي تحتاج إلى الوصول إليه، يجب عليك تحديد اسم الفئة واسم المثيل في المقطع فئات . لأنه تم تعريف الأسلوب الذي يمكن به من "خدمات التقارير" كثابتة باستخدام الكلمة الأساسية المشتركة في Visual Basic، سوف تستخدم قسم المراجع بدلاً من المقطع فئات .
  5. في مربع الحوار إضافة المراجع ، انقر فوق استعراض. (في SQL Server 2005، انقر فوق علامة التبويب استعراض .)
  6. حدد موقع ومن ثم انقر فوق تجميع مخصص. انقر فوق فتح. (في SQL Server 2005، انقر فوق إضافة بدلاً من فتح.)
  7. في مربع الحوار إضافة المراجع ، انقر فوق "موافق".
  8. في مربع الحوار خصائص التقرير ، انقر فوق "موافق".
نحن الآن مستعدون لاستخدام التجميع المخصصة في "خدمات التقارير".
  1. افتح التقرير (ملف.rdl) في "مصمم التقرير".
  2. لشرح كيفية استخدام التجميع المخصصة في "خدمات التقارير"، أضف مربع نص. للقيام بذلك، اسحب مربع نص فارغ من مربع الأدوات إلى التقرير.
  3. في خصائص مربع النص، انقر فوق قيمة الخاصية وقم باستدعاء دالة باستخدام بناء الجملة التالي.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    بلدي على سبيل المثال، حددت ما يلي.
    =SimpleClassLibrary.Class1.DoSomething()
    يتم استخدام تنسيقات أخرى للإشارة إلى رمز في "خدمات التقارير". على سبيل المثال، استخدم التنسيق التالي في حالة استدعاء التعليمات البرمجية المضمنة.
    =Code.MethodName()
    إذا قمت باستدعاء أسلوب غير ثابت أو المستندة إلى مثيل من داخل تجميع مخصص باستخدام مثيل، استخدم التنسيق التالي.
    =Code.InstanceName.Method
    ملاحظة: أعددت المرجع الخاص بك بشكل مختلف إذا كنت ترغب في استخدام أسلوب المستندة إلى مثيل. للقيام بذلك، يمكنك أن تحتاج للانتقال إلى خصائص التقرير، انقر فوق علامة التبويب مراجع ، وقم بتحديد اسم الفئة واسم المثيل في المقطع فئات .

رمز أمان الوصول إذا أذونات إضافية تتطلب تجميع مخصص

إذا كان التجميع المخصصة تتطلب أذونات أكثر من أذونات مستوى التنفيذ الافتراضية، يجب إجراء بعض تغييرات أمان الوصول إلى التعليمات البرمجية. في حالة حدوث مشكلة أذونات بأمان الوصول إلى التعليمات البرمجية، سوف ترى "#Error" الأكثر احتمالاً من التجميع المخصص الخاص بك بدلاً من النتائج المتوقعة. لبعض الخطوات السريعة التي تقوم بها لتحديد إذا كان يتم حدوث هذه المشكلة، ولإرشادات مفصلة حول كيفية منح أذونات إضافية إلى التجميع المخصص الخاص بك، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
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>

نوصي بإنشاء مجموعة بدلاً من تعيين هذا الإذن لمجموعة التعليمات البرمجية الخاصة بك بتعيين أذونات أكثر تحديداً. هذه المقالة المقصود الحصول على إعداد وتشغيل مع التجميعات المخصصة، وهذا يتطلب المزيد من التفاصيل.

ملاحظة: التجميعات المخصصة غالباً ما تعمل بشكل جيد في "مصمم التقرير". ومع ذلك، قد تجد أنه عند نشر ثم حاول تشغيل التجميع المخصص في "خادم التقرير"، تنفيذ مستوى الأذونات الافتراضية غير كافية. والسبب في ذلك، بشكل افتراضي، تشغيل "مصمم التقرير" التجميعات المخصصة مع أذونات "الثقة الكاملة". ومع ذلك، عند نشر التقارير الخاصة بك "خادم التقرير"، يتم تعيين الإذن الافتراضي الذي يتم منحة في "خادم التقرير" إلى مستوى التنفيذ. في حالة حدوث هذه المشكلة، قد تشاهد "#Error" في عنصر تحكم التقرير بدلاً من النتائج المتوقعة من التجميع المخصصة.

التعليمات البرمجية المضمنة

التعليمات البرمجية المضمنة هي التعليمات البرمجية التي يتم كتابتها في مقطع التعليمات البرمجية مربع الحوار خصائص التقرير . التعليمات البرمجية المضمنة هي الأفضل للتعليمات البرمجية التي سيتم استدعاؤها عدة مرات داخل التقرير. إذا كنت ترغب في إعادة استخدام التعليمات البرمجية في تقارير متعددة، ربما تجميع مخصص خيار أفضل. لإنشاء دالة مضمنة، اتبع الخطوات التالية:
  1. من القائمة تقرير ، انقر فوق خصائص التقرير.
  2. في مربع الحوار خصائص التقرير ، انقر فوق علامة التبويب تعليمات برمجية
  3. إضافة الدالة التالية ومن ثم انقر فوق موافق.
    Public Function EmbeddedFunction() as String Return "this is from embedded code function"
    End Function

  4. في التقرير، أضف مربع نص جديد.
  5. يضاف ما يلي إلى قيمة الخاصية.
    =code.EmbeddedFunction
أود أن أشكر جون على عمله الشاق في هذه المقالة. لديه خبرة عميقة في SQL Server والتطوير Microsoft العديد من اللغات وتتمتع بالتعامل مع العملاء وحل المشاكل الصعبة. نأمل أن تستمتع موضوع هذا الشهر! شكرا للقراءة! كما هو الحال دائماً، لا تتردد في تقديم الأفكار على المواضيع التي ترغب في تناولها في المستقبل الأعمدة أو في قاعدة المعارف باستخدام نموذج طلب لذلك .
خصائص

رقم الموضوع: 920769 - آخر مراجعة: 09‏/01‏/2017 - المراجعة: 1

تعليقات