このトピックでは、セクションレポートでパラメータを追加する方法について説明します。
レポートエクスプローラからパラメータを追加する
レポートのSQL文字列に<%FieldName | PromptString | DefaultValue | Type%>を追加すると、[パラメータ値の入力]ダイアログが表示されます。
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%>
上記のクエリを使用すると、次のダイアログが表示されます。ユーザーは、表示されている値を使用するか、別の値を選択することができます。
データソースが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; |