Использование пользовательских сборок или встроенного кода в службах Reporting Services

Переводы статьи Переводы статьи
Код статьи: 920769 - Vizualiza?i produsele pentru care se aplic? acest articol.
Поддержка голосовой связи SQL Server столбец

Использование пользовательских сборок или встроенного кода в службах Reporting Services

Чтобы настроить этот столбец, по необходимости, мы хотим пригласить вас отправлять свои идеи по темам, интересующих и проблемы, которые вы хотите видеть в будущем направлено статей и столбцов, поддержка голосовой связи. Вы можете отправить свои идеи и с помощью обратной связиДля этого попроситеФорма:. Также является ссылкой на форму в нижней части этой статьи.
Развернуть все | Свернуть все

В этой статье

Добро пожаловать обратно! Я Sandy Yakob с Microsoft SQL Server содержимое группы. Я ваш hostess для столбцов SQL Server поддержка голосовой связи. Быстрые заметки о мне: я был в корпорации Майкрософт 14 лет. За последние три года я работал с группой содержимого SQL Server.

Для этого месяца Джон Sirmon даст действия, чтобы использовать пользовательскую сборку или встроенный код в службы отчетов SQL Server 2000 и SQL Server 2005 Reporting Services. В этой статье был разработан для предоставления основных этапов работы и работать с пользовательской сборки в службах Reporting Services. Джон является инженер технической поддержки с помощью группы поддержки SQL разработчиков корпорации Майкрософт и работал в корпорации Майкрософт с марта 2001 года. Он работал с SQL Server более 10 лет и имеет широкие разработки опыт работы с Microsoft Visual Studio. Джон содержит степени S. б. на странице администрирования бизнеса от Citadel. Он также содержит решения для разработчиков (MCSD) сертификации и сертификации базы данных администратор (MCDBA). Я надеюсь, что приятно столбца и оказаться полезными.

Создание пользовательской сборки

Чтобы создать пользовательскую сборку, выполните следующие действия.
  1. Создайте библиотеку классов Visual Studio. в менюФайл:Выберите пункт менюСОЗДАТЬ., выберите пунктProjectи выберите командуБиблиотека классов.
  2. Укажите имя и расположение. Например я использовал 2005\projects SimpleClassLibrary» и «C:\Documents and Settings\user1\My Documents\Visual Studio.
  3. Откройте файл класса (в моем случае Class1.vb), а затем создайте функции, которые требуется использовать в службах Reporting Services. В моем случае я просто создать одну разделяемую функцию простой.

    Примечание.Поскольку это разделяемую функцию (static в 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 в папке «Мои Documents\Visual Studio SimpleClassLibrary\bin\Debug 2005\Projects\».

Копирование пользовательской сборки в папку служб отчетов SQL

Доступ к сборке в конструкторе отчетов и сервер отчетов в службах Reporting Services. Для этого необходимо скопировать в .dll в папку конструктора отчетов и папок сервера отчетов.

Примечание.Путь может быть немного различаться в зависимости от пути установки.
  • Скопируйте DLL-файл для Reporting Services 2005 следующие папки:
    • Программа Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
    • Программа Services\ReportServer\bin Server\MSSQL.3\Reporting Files\Microsoft SQL
  • 2000 Reporting Services скопируйте DLL-файл в следующие папки:
    • Конструктор Server\80\Tools\Report SQL Files\Microsoft программы
    • Программа Services\ReportServer\bin Server\MSSQL\Reporting Files\Microsoft SQL
Примечание.Так как необходимо делать это каждый раз, измените код, может быть довольно утомительным. Многие разработчики создают пакетные файлы для обработки этой задачи. Ниже приведен пример пакетного файла, можно использовать.
@ECHO OFF
REM   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)" «C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\»
Копировать "$ (TargetPath)" "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
После построения макрос используется для указания местоположения моей сборке. Для получения дополнительных сведений о создании события после построения посетите следующий веб-узел Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/42x5kfw4.aspx

Добавление ссылки на пользовательскую сборку в службах Reporting Services

Чтобы добавить ссылку на пользовательскую сборку, откройте отчет служб отчетов в конструкторе отчетов. Выполните следующие действия::
  1. Откройте отчет, который будет ссылаться на пользовательскую сборку.
  2. в менюReportвыберите пунктСвойства отчета.
  3. В диалоговом окнеСвойства отчетадиалоговое окно, нажмите кнопкуСсылкиTAB:.
  4. Из спискаСсылки, нажмите кнопку с многоточием ()...) кнопки, которая находится рядомИмя сборкизаголовок столбца.

    Примечание.надписьюКлассыраздел предназначен только для элементов на основе экземпляра. Он не предназначен для статических членов. Статические (также называется «Общие» в часть документации служб Reporting Services) означает, что член доступен для каждого экземпляра класса, и каждый экземпляр использует одно место хранения. Статические члены, объявленные с помощью общих ключевых слов в Visual Basic и C# ключевое слово static. Это может быть немного запутанным. Это означает, если члены экземпляра, необходимо получить доступ к вашей пользовательской сборки, необходимо указать имя класса и имя экземпляра вКлассыв разделе. Так как метод я вызова из служб Reporting Services был определен как статическую с помощью общих ключевых слов в Visual Basic, я используюСсылкиВместо того, разделКлассыв разделе.
  5. В диалоговом окнеДобавление ссылкидиалоговое окно, нажмите кнопкуОбзор. (В SQL Server 2005, щелкнитеОбзорВкладка).
  6. Найдите и выделите пользовательскую сборку. затем –OPEN. (В SQL Server 2005, щелкнитеДобавьте серверВместоOPEN.)
  7. В диалоговом окнеДобавление ссылкидиалоговое окно, нажмите кнопкуOk..
  8. В диалоговом окнеСвойства отчетадиалоговое окно, нажмите кнопкуOk..
Теперь мы готовы использовать пользовательскую сборку в службах 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
    Примечание.Будет настройки справки по-разному, если необходимо использовать метод на основе экземпляра. Для этого необходимо перейти кСвойства отчетаПерейдите на вкладкуСсылкиtab, and then specify the class name and the instance name in theКлассыв разделе.

Code access security if the custom assembly requires additional permissions

If the custom assembly requires more permissions than the default Execution level permissions, you must make some code access security changes. If a permissions issue with code access security occurs, you will most likely see "#Error" from your custom assembly instead of the expected results. For a few quick steps that you can perform to determine if this problem is occurring, and for detailed instructions about how to grant additional permissions to your custom assembly, click the following article number to view the article in the Microsoft Knowledge Base:
842419Как предоставить разрешения для пользовательской сборки, на которые ссылается отчет служб отчетов
Примечание.The following approach is a test to help determine if code access security issues are occurring. We do not recommend that you use the following approach because it grants full trust permissions to your custom assembly.

Создайте новый CodeGroup для вашей пользовательской сборки и предоставьте разрешения полного доверия. Чтобы сделать это, откройте файл программы Files\Microsoft 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". Тем не менее при развертывании отчетов на сервере отчетов, разрешения по умолчанию, который предоставляется в сервер отчетов устанавливается на уровне выполнения. Данная проблема возникает, наиболее вероятно увидите "Об" в элементе управления отчета вместо ожидаемых результатов из пользовательской сборки.

Встроенный код

Внедренный код — код, который написан на языкеКодразделСвойства отчета«Свойства системы».. Встроенный код подходит для кода, который будет вызываться несколько раз в отчете. Если вы хотите повторно использовать код в нескольких отчетах, скорее всего пользовательской сборки является лучшим выбором. Чтобы создать встроенные функции, выполните следующие действия.
  1. в менюReportвыберите пунктСвойства отчета.
  2. В диалоговом окнеСвойства отчетадиалоговое окно, нажмите кнопкуКодTAB:
  3. Добавьте следующую функцию и нажмите кнопкуOk..
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. В отчете добавьте новую текстовую рамку.
  5. Добавьте следующий код вЗначение:Свойство.
    =code.EmbeddedFunction
Я хотел бы поблагодарить Джона для своей тяжелой работой в этой статье. Он содержит подробные возможности SQL Server и на нескольких языках разработки корпорации Майкрософт и увлекается работу с клиентами и решении сложных вопросов. Желаем вам удовольствие от раздела в этом месяце! Спасибо за чтение! Всегда, вида бесплатно отправить идеи по разделам требуется, чтобы в будущем адресована столбцов или в Microsoft Knowledge Base с помощьюДля этого попроситеФорма:.

Свойства

Код статьи: 920769 - Последний отзыв: 27 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2000 Reporting Services
Ключевые слова: 
kbhowto kbmt KB920769 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:920769

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com