Reporting Services のカスタム アセンブリや埋め込みコードを使用する方法

文書翻訳 文書翻訳
文書番号: 920769
SQL Server サポート音声列

Reporting Services のカスタム アセンブリや埋め込みコードを使用する方法

この列には、お客様のニーズをカスタマイズするには、表示し問題関心のあるトピックに関するアイデアをナレッジ ベースの記事や音声のサポート列将来の対処を提出するに招待します。アイデアおよびフィードバックを使用して送信することができます、 それを要求します。 フォームです。また、この列の下部にあるフォームへのリンクです。
すべて展開する | すべて折りたたむ

目次

ご来店ありがとうございます。Sandy Yakob コンテンツのチームと私します。私は、ウェイトレスの SQL Server サポート音声列です。自分に関する注意: 14 年にマイクロソフトがあった。過去 3 年間、私は SQL Server のコンテンツのチームと取り組んできました。

今月のコラムでは、ジョン Sirmon、カスタム アセンブリや埋め込みコード SQL Server 2000年レポート サービスと SQL Server 2005 Reporting Services を使用するための手順をことができます。この資料では、Reporting Services のカスタム アセンブリと実行、作成の基本的な手順を提供する設計されています。ジョンは、マイクロソフト開発者サポートの SQL チームはサポート エスカレーション エンジニアで、マイクロソフトの後の 2001 年 3 月にあった。彼は SQL Server で 10 年間で効果があった、広範な開発のマイクロソフト Visual Studio が発生しました。John B. 山にある程度で経営管理学修士、要塞を保持します。彼は、また、マイクロソフト認定ソリューション デベロッパー (MCSD) 証明書およびマイクロソフト認定データベース管理者 (MCDBA) 証明書を保持します。列を喜ばして立つことを願っています。

カスタム アセンブリを作成します。

カスタム アセンブリを作成するには、次の手順を実行します。
  1. Visual Studio クラス ライブラリを作成します。で、 ファイル メニューのポイント 新しい、ポイント プロジェクト、し クラス ライブラリ.
  2. 名前と場所を指定します。たとえば、SimpleClassLibrary および C:\Documents and Settings\user1\My Documents\Visual Studio 2005\projects 使用していた。
  3. クラス ファイル (この場合、Class1.vb) を開き、[Reporting Services で使用する関数を作成します。私の事例では、私だけで簡単な 1 つの共有関数を作成します。

    メモ これは、共有関数 (C# の静的) なので、私たちがインスタンス化されたオブジェクトを使用してアクセスする必要はありません。このアセンブリは、この資料の後半を参照する方法は、効果は、この点を考慮します。
    Public Class Class1
    
        Public Shared Function DoSomething() As String
            Return "string data returned from custom assembly"
        End Function
    
    End Class
    
  4. すべてのコードの追加が完了したらをクリックします。 SimpleClassLibrary をビルドします。 で、 ビルド メニューです。この手順は、それぞれの bin フォルダーにアセンブリまたはマネージ .dll を作成します。私の例では、アセンブリ、SimpleClassLibrary.dll、自分の Documents\Visual Studio 2005\Projects\ でのこの手順の作成SimpleClassLibrary\bin\Debug フォルダー。

Reporting Services の SQL フォルダーにカスタム アセンブリをコピーします。

アセンブリ レポート デザイナーとレポート サーバーにレポート サービスを使用できるようにします。これを行うには、レポート デザイナーのフォルダーに、レポート サーバーのフォルダーに、.dll をコピーする必要があります。

メモ パスは、インストール パスによって少し異なることがあります。
  • レポート サービス 2005 では、次のフォルダーに、.dll をコピーします。
    • ただし Visual Studio 8\Common7\IDE\PrivateAssemblies をプログラムします。
    • ただし SQL Server\MSSQL.3\Reporting Services\ReportServer\bin をプログラムします。
  • レポート サービス 2000 の場合は、次のフォルダーに、.dll をコピーします。
    • プログラムただし SQL Server\80\Tools\Report デザイナー
    • ただし SQL Server\MSSQL\Reporting Services\ReportServer\bin をプログラムします。
メモ たびに、コードを変更する必要があるため、若干面倒な場合があります。多くの開発者は、このタスクを処理するバッチ ファイルを作成します。使用できるサンプルのバッチ ファイルは次のとおりです。
@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"
私は通常この作業プロジェクトでは、カスタムのビルド後のイベントを作成することによって処理します。これを行うには、プロジェクトのプロパティを参照してください。次に、クリックして、 コンパイル タブをクリックし ビルド イベント.これが表示されます、 ビルド イベント ダイアログ ボックスです。選択 ビルド後イベントのコマンドライン、し、次を入力します。
C:\Program ただし Visual Studio を「$ (ターゲット パス)」"8\Common7\IDE\PrivateAssemblies\"をコピーします。
「$ (ターゲット パス)」「C:\Program ただし SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\」をコピーします。
これ、ビルド後のマクロを使用して、アセンブリの場所を指定します。ビルド後のイベントを作成する方法の詳細については、次のマイクロソフト開発ネットワーク (MSDN) Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/42x5kfw4.aspx

Reporting Services のカスタム アセンブリへの参照を追加します。

カスタム アセンブリへの参照を追加するには、レポート デザイナーでレポートを Reporting Services のレポートを開きます。これを行うには、次の手順を実行します。
  1. カスタム アセンブリを参照するレポートを開きます。
  2. で、 レポート メニューをクリックして [レポートのプロパティ.
  3. で、 [レポートのプロパティ ダイアログ ボックスをクリックして、 参照 タブします。
  4. 下にあります。 参照をクリックして省略記号 (...) は、隣接するボタンを アセンブリ名 列ヘッダー。

    メモ は、 クラス セクションでは、インスタンス ベースのメンバーに対してだけです。静的メンバーの場合ではありません。(もに「共有」と、Reporting Services のドキュメントの一部に) 静的メンバー、クラスのすべてのインスタンスには、同じストレージの場所を使用するすべてのインスタンスを意味します。Shared キーワードでマイクロソフトの Visual Basic と C# で static キーワードを使用して静的メンバーを宣言します。これは少し複雑になります。これは、カスタム アセンブリにアクセスする必要があるインスタンス メンバーが含まれている場合はが、クラス名とインスタンス名を指定するのには、 クラス セクションです。メソッドから呼び出すことがあるために Reporting Services が定義として Visual Basic に shared キーワードを使用して、使用することが 参照 代わりにセクションを クラス セクションです。
  5. で、 参照を追加します。 ダイアログ ボックス、クリックして 参照.(SQL Server 2005 をクリックして、 参照 」タブ)。
  6. 検索し、カスタム アセンブリをクリックします。クリックしてください。 ファイルを開く.(SQL Server 2005 をクリックします。 追加 代わりに ファイルを開く.)
  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
    メモ インスタンス ベースのメソッドを使用する場合は、参照を異なる設定がします。これを行うには、移動する必要があります。 [レポートのプロパティをクリックして、 参照 タブをクリックし、クラス名とインスタンス名を指定の クラス セクションです。

カスタム アセンブリに追加のアクセス許可が必要な場合、コード アクセス セキュリティ

カスタム アセンブリの実行レベルの既定のアクセス許可よりも多くのアクセス許可を必要とする場合は、いくつかのコード アクセス セキュリティの変更を行う必要があります。コード アクセス セキュリティのアクセス許可の問題が発生した場合は、おそらく"# エラーと"予想される結果の代わりにカスタム アセンブリから表示されます。この問題が発生しているかどうかは、確認するためにことができますいくつかのクイック ステップ、およびカスタム アセンブリへのアクセス権を付与する方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
842419 Reporting Services のレポートで参照されるカスタム アセンブリにアクセス許可を付与する方法
メモ 次の方法では、コード アクセス セキュリティの問題が発生している場合を判断するためのテストです。カスタム アセンブリに完全信頼のアクセス許可を付与するため、次の方法を使用することはお勧めしません。

カスタム アセンブリには、新しいコード グループを作成し、完全信頼のアクセス許可を付与します。これを行うには、プログラムただし 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. 次の関数を追加し、クリックしてください [OK].
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. このレポートでは、新しいテキスト ボックスを追加します。
  5. 追加する、次のように [プロパティ] します。
    =code.EmbeddedFunction
ハード作業ここでジョン、ありがとうたいと思います。彼 SQL Server といくつかの Microsoft の開発言語での豊富な経験を持ちお客様と連携し、困難な問題を解決するために楽しんでいます。今月のトピックを楽しみたいと考えています。閲覧ありがとう!常に、トピックの案を提出する無料のフィール列は今後対応などの技術を使用して、 それを要求します。 フォームです。

プロパティ

文書番号: 920769 - 最終更新日: 2011年7月19日 - リビジョン: 3.0
キーワード:?
kbhowto kbmt KB920769 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:920769
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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