GrapeCity ActiveReports for .NET 16.0J
スクリプトの使用
ActiveReportsユーザーガイド > 基本操作 > ページレポート/RDLレポートの基本操作 > 共通操作 > スクリプトの使用

ページレポートまたはRDLレポートでは、式でカスタムコードを使用して、レポートの機能を拡張することができます。複雑な関数やレポートで何回も使用したい関数の場合には、レポートへコードを組み込むことも可能です。また、コードを含めるカスタムアセンブリを作成し、複数のレポートから使用することもできます。

レポート内でコードを組み込む

プロジェクトにページレポート/RDLレポートのテンプレートを追加し、スクリプトタブに以下のようなコードを追加します。

コントロールのプロパティから関数を呼び出す

単一のメソッドのコードブロックの簡単な例です。
Public Function GetDueDate() as Date
    Return DateTime.Now.AddDays(30)
End Function

コントロールのプロパティからコードブロック内のメソッドを呼び出します。例として、この関数をTextbox コントロールのValueプロパティで呼び出すことができます。
=Code.GetDueDate()

コントロールのプロパティからカスタム定数と変数を使用する

コードブロックでカスタム定数、および変数を定義します。
Public Dim MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 143.456
Public Const MyConst As String = "444"

コードブロックでカスタム定数、および変数を使用します。例として、Textbox コントロールのValueプロパティに変数、または定数の値を設定することができます。
=Code.MyVersion
=Code.MyDoubleVersion
=Code.MyConst

コントロールのプロパティからグローバルコレクションを呼び出す

レポートパラメータ値を取得します。
Public Function ReturnParam() As String
    Return "param value = " + Report.Parameters!ReportParameter1.value.ToString()
End Function

コントロールのプロパティからコードブロック内でグローバルコレクションを呼び出します。例として、 Textbox コントロールのValueプロパティでグローバルコレクションを呼び出します。
=Code.ReturnParam()

コードブロックの形にインスタンスベースのVisual Basic .NETコードを使用します。コードブロックに複数のメソッドを含めて、コントロールのプロパティで式からそのメソッドにアクセスすることができます。

メモ: ページレポート/RDLレポートでは、Visual Basic .NET をスクリプト言語として使用します。一方、セクションレポートでは、Visual Basic .Net、およびC#コード両方をスクリプトで使用できます。

カスタムアセンブリの作成

C#、またはVisual Basic .NETでカスタムアセンブリを作成して、複数のレポートでコードを使用可能にします。

  1. 使用するカスタムアセンブリを作成します。
  2. カスタムアセンブリをレポートで使用可能な状態にします。
    • ご使用のアプリケーションでデザイナ、またはビューワコントロールを組み込んでいる場合は、実行ファイルがある場所と同じ場所にカスタムアセンブリを配置してください。
    • 製品に含まれているデザイナアプリケーション、またはビューワアプリケーションを使用している場合は、カスタムアセンブリをActiveReportsアセンブリフォルダにコピーします。デフォルトでは「.\ActiveReportsNET16\Bin\v16.xx.xxxx.1」となっています。
      注意: 上記の両方のケースで使用する場合、両方の場所にカスタムアセンブリコピーする必要があります。なお、カスタムアセンブリをグローバルアセンブリキャッシュに登録することでも使用できます。 (C:\Windows\assembly)
  3. レポートにアセンブリ参照を追加 します。
    • [レポート]メニューより、[レポートのプロパティ]を選択します。
    • 表示される[レポート]ダイアログで、[参照]を選択し、アセンブリ名一覧のアイコン上で[開く]をクリックし、任意のアセンブリを追加します。
    • アセンブリ名の下のクラス一覧の[クラス名]に、名前空間、およびクラス名を入力します。同様に、[インスタンス名]の下に、式で使用したい名前を入力します。

  4. 式を使用してアセンブリにアクセスする方法
    • スタティックメンバ(C#アセンブリでpublic static と記載されているメンバ、 Visual BasicアセンブリでPublic Shared と記載されているメンバ)にアクセスする方法:
      =Namespace.Class.Member
    • クラスインスタンスをアクセスする方法:
      =Code.InstanceName
関連トピック