PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > 基本操作 > セクションレポートの基本操作 > パラメータの追加 |
このトピックでは、セクションレポートでパラメータを追加する方法について説明します。
レポートのSQL文字列に<%FieldName | PromptString | DefaultValue | Type%>を追加すると、[パラメータ値の入力]ダイアログが表示されます。
文字列型では、アポストロフィまたは引用符で囲んだデフォルト値を指定した場合、ActiveReportsは同じマークをSQLに送信します。ブール型では、DefaultValueにTrue/Falseを使用した場合、SQL出力にTrue/Falseが生成されます。0、1を指定した場合、0または1が生成されます。
|
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; |
次の手順は、パラメータ付きレポートを表示する方法を説明します。
パラメータのダイアログボックスを表示する
Visual Basic
Visual Basicコード(Form_Loadイベント内に張り付けます) |
コードのコピー
|
---|---|
Dim rpt As New SectionReport1 Viewer1.Document = rpt.Document rpt.Run() |
C#
C#コード(Form_Loadイベント内に張り付けます) |
コードのコピー
|
---|---|
SectionReport1 rpt = new SectionReport1(); viewer1.Document = rpt.Document; rpt.Run(); |
Viewerのサイドバーでパラメータパネルを表示する
Visual Basic
Visual Basicコード(Form_Loadイベント内に張り付けます) |
コードのコピー
|
---|---|
Dim rpt As New SectionReport1 Me.Viewer1.LoadDocument(rpt) |
C#
C#コード(Form_Loadイベント内に張り付けます) |
コードのコピー
|
---|---|
SectionReport1 rpt = new SectionReport1(); viewer1.LoadDocument(rpt); |