PowerTools ActiveReports for .NET 11.0J > ActiveReportsユーザーガイド > 基本操作 > セクションレポートの基本操作 > セクションレポートでのパラメータの追加 |
このトピックでは、セクションレポートでパラメータを追加する方法について説明します。
レポートエクスプローラからパラメータを追加する
レポートのSQL文字列に<%FieldName | PromptString | DefaultValue | Type%>を追加すると、[パラメータ値の入力]ダイアログが表示されます。
文字列型では、アポストロフィまたは引用符で囲んだデフォルト値を指定した場合、ActiveReportsは同じマークをSQLに送信します。ブール型では、DefaultValueにTrue/Falseを使用した場合、SQL出力にTrue/Falseが生成されます。0、1を指定した場合、0または1が生成されます。
|
SQLクエリでパラメータを追加する
SQLクエリでパラメータを追加すると、データベースから取得したい値の入力を求めるために、[パラメータ値の入力]ダイアログが表示されます。
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%>
上記のクエリを使用すると、次のダイアログが表示されます。ユーザーは、表示されている値を使用するか、別の値を選択することができます。
注意: 必須パラメータは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のサイドバーのパラメータパネルを使用できません。パラメータパネルの代わりに、パラメータのダイアログボックスを使用してレポートを表示してください。 |
Visual Basic
Visual Basicコード(コードの先頭に張り付けます) |
コードのコピー
|
---|---|
Imports GrapeCity.ActiveReports.SectionReportModel |
Visual Basicコード(ReportStartイベント内に張り付けます) |
コードのコピー
|
---|---|
Dim myParam1 As New Parameter() |
C#
C#コード(コードの先頭に張り付けます) |
コードのコピー
|
---|---|
using GrapeCity.ActiveReports.SectionReportModel; |
C#コード(ReportStartイベント内に張り付けます) |
コードのコピー
|
---|---|
Parameter myParam1 = new Parameter(); |
Visual Basic
Visual Basicコード(FetchDataイベント内に張り付けます) |
コードのコピー
|
---|---|
'テキストボックスのテキストをパラメータの値に等しく設定します。 Me.txtParam1.Text = Me.Parameters("myParam1").Value |
C#
C#コード(FetchDataイベント内に張り付けます) |
コードのコピー
|
---|---|
//テキストボックスのテキストをパラメータの値に等しく設定します。 this.txtParam1.Text = this.Parameters["myParam1"].Value; |