ActiveReports for .NET 18.0J
セクションレポートでのパラメータの追加
ActiveReportsユーザーガイド > 基本操作 > セクションレポートの基本操作 > 対話的な操作 > セクションレポートでのパラメータの追加

このトピックでは、セクションレポートでパラメータを追加する方法について説明します。

レポートエクスプローラからパラメータを追加する

SQLクエリでパラメータを追加する

SQLクエリでパラメータを追加すると、データベースから取得したい値の入力を求めるために、[パラメータ値の入力]ダイアログが表示されます。

  1. Detailセクションのデータソースのアイコンをクリックし、[レポートデータソース]ダイアログを表示します。
  2. レポートをデータソース(例 OleDbデータソース)に接続します。接続の詳細については、「レポートとデータソースの連結」を参照してください。
  3. [クエリ]フィールドで、実行時にパラメータ値の入力を求めるパラメータの構文を追加します。
    SELECT * FROM Products
    INNER JOIN (Orders INNER JOIN [Order Details] ON Orders.OrderID= [Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID WHERE Products.SupplierID = <%SupplierID|顧客IDを入力|7%>
    AND OrderDate >= #<%OrderDate|注文日|11/1/1994|D%>#
    AND Discontinued = <%Discontinued|取り扱い中止|true|B%>
  4. [OK]をクリックすると、データソースを保存し、レポートのデザイナ面に戻ります。

上記のクエリを使用すると、次のダイアログが表示されます。ユーザーは、表示されている値を使用するか、別の値を選択することができます。

注意: 必須パラメータはFieldNameのみです。その他のパラメータは省略可能です。しかし、デフォルト値を指定していない場合、デザイン時にフィールドリストにデータが入らないことに注意してください。

データソースがAccessの場合、パラメータ構文はテキストまたはメモフィールドに一重引用符(')、日付/時刻フィールドにはポンド記号(#)を必要とします。データソースによってこれらの文字が異なることに注意してください。

#<%InvoiceDate | Choose invoice date: | 11/2/04 | D%>#

'<%Country | Country:| Germany | S%>'

ActiveReports内のパラメータと同じ方法でストアドプロシージャを使用することができます。SQLステートメントは、"CustOrderHist '<%ID|Enter Customer ID:|AFLKI%>"というパラメータのストアドプロシージャ呼び出しとプレースホルダを持っています。ActiveReportsはパラメータテキスト<%...%>を、CustOrderHist 'AFLKI'のような呼び出しを作成するためにユーザーがダイアログに入力した内容に置き換えます。

上の例のようにSQLステートメントにパラメータを追加するには、ActiveReportsデザイナ内のデータソースアイコンをクリックし、Datasource ダイアログからパラメータをクエリに追加する必要があります。

実行時にパラメータを追加する

実行時にパラメータを追加、編集および削除することができます。以下の手順は、パラメータの値をTextBoxコントロールに表示する方法を説明します。

メモ: 実行時にコードからパラメータを追加した場合は、Viewerのサイドバーのパラメータパネルを使用できません。パラメータパネルの代わりに、パラメータのダイアログボックスを使用してレポートを表示してください。

  1. レポートの周囲にあるグレー領域をダブルクリックし、ReportStartイベントのイベント処理メソッドを作成します。
  2. ハンドラに次のコードを記載し、実行時にパラメータを追加します。

    Visual Basic

    Visual Basicコード(コードの先頭に張り付けます)
    コードのコピー

    Imports GrapeCity.ActiveReports.SectionReportModel

    Visual Basicコード(ReportStartイベント内に張り付けます)
    コードのコピー

    Dim myParam1 As New Parameter()
    myParam1.Key = "myParam1"
    myParam1.Type = Parameter.DataType.String

    'ユーザーから入力させない場合は false に設定します。
    myParam1.PromptUser = True
    myParam1.Prompt = "データを入力:"
    myParam1.DefaultValue = "既定値"
    Me.Parameters.Add(myParam1);

    'レポートを実行する時にパラメータのダイアログボックスを表示するには、True に設定します。
    Me.ShowParameterUI = True

    C#

    C#コード(コードの先頭に張り付けます)
    コードのコピー

    using GrapeCity.ActiveReports.SectionReportModel;

    C#コード(ReportStartイベント内に張り付けます)
    コードのコピー

    Parameter myParam1 = new Parameter();
    myParam1.Key = "myParam1";
    myParam1.Type = Parameter.DataType.String;

    //ユーザーから入力させない場合は false に設定します。
    myParam1.PromptUser = true;
    myParam1.Prompt = "データを入力:";
    myParam1.DefaultValue = "既定値";
    this.Parameters.Add(myParam1);

    //レポートを実行する時にパラメータのダイアログボックスを表示するには、True に設定します。
    this.ShowParameterUI = true;

  3. デザイナ面上で、レポートの周囲にあるグレーの領域をクリックし、[プロパティ]ウィンドウを開きます。
  4. レポートのイベント一覧を表示するために、[プロパティ]ウィンドウで[イベント]ボタンをクリックします。
  5. FetchDataイベントを選択し、ダブルクリックします。 イベント処理メソッドが作成されます。
  6. ハンドラに次のコードを記載し、実行時にパラメータを渡します。

    Visual Basic

    Visual Basicコード(FetchDataイベント内に張り付けます)
    コードのコピー
    'テキストボックスのテキストをパラメータの値に等しく設定します。
    Me.txtParam1.Text = Me.Parameters("myParam1").Value

    C#

    C#コード(FetchDataイベント内に張り付けます)
    コードのコピー
    //テキストボックスのテキストをパラメータの値に等しく設定します。
    this.txtParam1.Text = this.Parameters["myParam1"].Value;
上記の処理を行うと、次のようなダイアログが表示されます。ユーザーは、このダイアログにテキストを入力し、レポート上に表示することができます。
関連トピック