サブレポートでパラメータを使用すると、サブレポートを親レポートに接続できます。親レポートをサブレポートに連結するフィールドのパラメータを設定することにより、親レポートはパラメータを通じて情報をサブレポートに渡すことができます。このチュートリアルでは、パラメータを使用して、レポートとサブレポートをリンクさせる方法について説明します。
このトピックでは、以下のタスクを行います。
チュートリアルを完了すると、次のようなレポートが作成されます。
Visual Studioプロジェクトに親レポートとサブレポートを追加する
詳細は、「クイックスタート」参照してください。
親レポートをデータソースに接続する
SQLクエリ |
コードのコピー
|
---|---|
Select * from suppliers order by country |
パラメータを使用して、サブレポートをデータソースに接続する
SQLクエリ |
コードのコピー
|
---|---|
SELECT * FROM products INNER JOIN categories ON products.categoryid = categories.categoryid WHERE products.supplierID =<%SupplierID%> |
親レポート(rptParent)のレイアウトを作成する
プロパティ名 | プロパティの値 |
---|---|
Name | ghSuppliers |
DataField | Country |
TextBox
プロパティ名 | プロパティの値 |
---|---|
DataField | Country |
Name | txtCountry |
Text | Country |
Location | 0, 0 |
Font | MS ゴシック, 13pt, style=Bold |
TextBox1
プロパティ名 | プロパティの値 |
---|---|
DataField | CompanyName |
Name | txtCompanyName |
Text | Company Name |
Location | 0.0625, 0.0625 |
Size | 2.25, 0.2 in |
Style | background-color: Silver; font-weight: bold |
TextBox2
プロパティ名 | プロパティの値 |
---|---|
DataField | ContactName |
Name | txtContactName |
Text | Contact Name |
Location | 2.312, 0.0625 |
Size | 2.25, 0.2 in |
Style | background-color: Silver; font-weight: bold |
TextBox3
プロパティ名 | プロパティの値 |
---|---|
DataField | Phone |
Name | txtPhone |
Text | Phone |
Location | 4.562, 0.0625 |
Size | 1.542, 0.2 in |
Style | background-color: Silver; font-weight: bold |
SubReport
プロパティ名 | プロパティの値 |
---|---|
Name | Subreport1 |
ReportName | ProductName |
Location | 0.0625, 0.312 |
サブレポート(rptChild)のレイアウトを作成する
プロパティ名 | プロパティの値 |
---|---|
Name | ghProducts |
DataField | CategoryName |
TextBox
プロパティ名 | プロパティの値 |
---|---|
DataField | CategoryName |
Name | txtCategoryName |
Text | Category Name |
Location | 0.0625, 0.0625 |
Size | 2.042, 0.2 in |
Style | color: Maroon; font-weight: bold |
TextBox
プロパティ名 | プロパティの値 |
---|---|
DataField | ProductName |
Name | txtProductName |
Text | Product Name |
Location | 0.0625, 0.0625 |
Size | 1.99, 0.2 in |
Style | color: Red |
サブレポートを現在のレコードのsupplierIDに連結するために必要なコードを追加する
Visual Basic
Visual Basicコード (Formatイベント内に貼り付けます) |
コードのコピー
|
---|---|
Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format
Dim rpt As New rptChild()
Me.Subreport1.Report = rpt
End Sub
|
C#
C#コード (Formatイベント内に貼り付けます) |
コードのコピー
|
---|---|
private void Detail_Format(object sender, System.EventArgs eArgs)
{
rptChild rpt = new rptChild();
this.Subreport1.Report = rpt;
}
|
サブレポートのShowParametersUIプロパティをFalseに設定するコードを追加する
Visual Basic
Visual Basicコード (ReportStartイベント内に貼り付けます) |
コードのコピー
|
---|---|
Private Sub rptChild_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart
Me.ShowParameterUI = False
End Sub
|
C#
C#コード (ReportStartイベント内に貼り付けます) |
コードのコピー
|
---|---|
private void rptChild_ReportStart(object sender, System.EventArgs eArgs)
{
this.ShowParameterUI = false;
}
|
レポートを表示する