PowerTools ActiveReports for .NET 9.0J
パラメータの追加
すべて展開すべて展開
すべて折りたたむすべて折りたたむ

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

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

  1. レポートエクスプローラで、 [パラメータ]ノードを右クリックし、[追加]を選択します。パラメータノードに子ノードが(parameter1)追加されます。
  2. 追加されたパラメータを選択して、[プロパティ]ウインドウで次のプロパティを設定します。

    レポートのSQL文字列に<%FieldName | PromptString | DefaultValue | Type%>を追加すると、[パラメータ値の入力]ダイアログが表示されます。

    • PromptUser: ユーザーにパラメータ値の入力を求めるダイアログを使用するかどうかを決定します。パラメータを使用する場合は、Trueに設定します。
    • FieldName: 要求するフィールドの名前です(CustomerID、LastNameなど)。これは構文の唯一の必須部分です。したがって、その他の値を使用したくない場合は、<%FieldName%>を使用できます。
    • PromptString: ダイアログ内でコントロールの横に表示されるテキストを設定するオプションの文字列値です(例:「顧客IDを入力してください」)。
    • DefaultValue: パラメータのデフォルト値を設定します。たとえば、日付パラメータの場合、フィールドのDefaultValueを現在の日付にしておくと、他の日付に基づくレポートを生成する場合以外は、[Enter]キーを押すだけで済みます。
    • Type: 要求するデータ型を示します。指定なし(既定値(文字列型))、S(文字列型)、D(日付型)、B(ブール型)のいずれかを指定できます。文字列型ではテキストボックス、日付型ではカレンダドロップダウンコントロール、ブール型ではチェックボックスの各入力用コントロールが表示されます。
      文字列型では、アポストロフィまたは引用符で囲んだデフォルト値を指定した場合、ActiveReportsは同じマークをSQLに送信します。ブール型では、DefaultValueにTrue/Falseを使用した場合、SQL出力にTrue/Falseが生成されます。0、1を指定した場合、0または1が生成されます。
  3. パラメータをレポート上のフィールドに渡したり、実行時にアクセスしたりできます。コード上でパラメータを追加する方法については、以下の「実行時にパラメータを追加する」を参照してください。

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

    C#

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

    Visual Basic

    C#

上記の処理を行うと、次のようなダイアログが表示されます。ユーザーは、このダイアログにテキストを入力し、レポート上に表示できます。

パラメータ付きレポートを表示する

次の手順は、パラメータ付きレポートを表示する方法を説明します。

パラメータのダイアログボックスを表示する

Viewerのサイドバーでパラメータパネルを表示する

関連トピック

概念

 

 


©2003-2015 GrapeCity inc. All rights reserved.