共用方式為


ReportViewer.Drillthrough 事件

發生在於報表中選取鑽研項目時。

命名空間: Microsoft.Reporting.WinForms
組件: Microsoft.ReportViewer.WinForms (在 microsoft.reportviewer.winforms.dll)

語法

'宣告
<SRDescriptionAttribute("DrillthroughEventDesc")> _
Public Event Drillthrough As DrillthroughEventHandler
'用途
Dim instance As ReportViewer
Dim handler As DrillthroughEventHandler

AddHandler instance.Drillthrough, handler
[SRDescriptionAttribute("DrillthroughEventDesc")] 
public event DrillthroughEventHandler Drillthrough
public:
event DrillthroughEventHandler^ Drillthrough {
    void add (DrillthroughEventHandler^ value);
    void remove (DrillthroughEventHandler^ value);
}
/** @event */
public void add_Drillthrough (DrillthroughEventHandler value)

/** @event */
public void remove_Drillthrough (DrillthroughEventHandler value)
JScript supports the use of events, but not the declaration of new ones.

備註

這個事件發生在於報表中選取鑽研項目時。這個事件的相關資訊會在 DrillThroughEventArgs 物件中傳遞至 DrillThroughEventHandler 委託,由它來處理事件。

如果鑽研報表有子報表,您必須提供這些子報表的資料。若要執行這個動作,請將 SubreportProcessing 事件處理常式提供給透過 DrillthroughEventArgs 物件來傳遞的鑽研報表。

若要載入鑽研報表的資料,您必須呼叫透過 DrillThroughEventArgs 物件 (而不是 ReportViewer 控制項所用的 LocalReport 物件) 來傳遞之鑽研報表的 DataSources.Add 方法。

加入鑽研事件處理常式方法的資料來源名稱,必須符合鑽研報表指定的資料來源名稱。您可以在 [報表設計師] 中,按一下 [報表] 功能表,選取 [資料來源] 來檢視這個資料來源的名。這會開啟 [報表資料來源] 對話方塊來顯示報表所定義之報表資料來源的名稱。

如需有關處理事件的詳細資訊,請參閱<Consuming Events>。

範例

下列範例程式碼會載入包含一系列鑽研項目的範例報表,並設定一個事件處理常式來處理這些鑽研事件。傳遞至鑽研事件處理常式的引數包括鑽研報表物件。事件處理常式會先將資料來源加入這份報表中,然後在 ReportViewer 控制項中轉譯鑽研報表。

using System;

using System.Data;

using System.Windows.Forms;

using Microsoft.Reporting.WinForms;

public class Demo : Form

{

private DataTable LoadEmployeesData()

{

DataSet dataSet = new DataSet();

dataSet.ReadXml(@"c:\employees.xml");

return dataSet.Tables[0];

}

private DataTable LoadDepartmentsData()

{

DataSet dataSet = new DataSet();

dataSet.ReadXml(@"c:\departments.xml");

return dataSet.Tables[0];

}

void DemoDrillthroughEventHandler(object sender, DrillthroughEventArgs e)

{

LocalReport localReport = (LocalReport)e.Report;

localReport.DataSources.Add(new ReportDataSource("Employees",

LoadEmployeesData()));

}

public Demo()

{

this.Text = "Report Control Demo";

this.ClientSize = new System.Drawing.Size(950, 600);

ReportViewer reportViewer = new ReportViewer();

// Set Processing Mode.

reportViewer.ProcessingMode = ProcessingMode.Local;

// Set RDL file.

reportViewer.LocalReport.ReportPath = @"c:\Departments.rdlc";

// Supply a DataTable corresponding to each report data source.

reportViewer.LocalReport.DataSources.Add(

new ReportDataSource("Departments", LoadDepartmentsData()));

// Add a handler for drillthrough.

reportViewer.Drillthrough += new DrillthroughEventHandler(DemoDrillthroughEventHandler);

// Add the reportviewer to the form.

reportViewer.Dock = DockStyle.Fill;

this.Controls.Add(reportViewer);

// Process and render the report.

reportViewer.RefreshReport();

}

[STAThread]

public static int Main(string[] args)

{

Application.Run(new Demo());

return 0;

}

}

下列 Visual Basic 範例假設您已建立含有表單和 ReportViewer 控制項的 Windows 應用程式。

Imports System.Data

Imports Microsoft.Reporting.WinForms

Public Class Form1

Private Function LoadEmployeesData() As DataTable

Dim dataSet As New DataSet()

dataSet.ReadXml("c:\My Reports\employees.xml")

LoadEmployeesData = dataSet.Tables(0)

End Function

Private Function LoadDepartmentsData()

Dim dataSet As New DataSet()

dataSet.ReadXml("c:\My Reports\departments.xml")

LoadDepartmentsData = dataSet.Tables(0)

End Function

Public Sub DemoDrillthroughEventHandler(ByVal sender As Object, ByVal e As DrillthroughEventArgs)

Dim localReport = e.Report

localReport.DataSources.Add(New ReportDataSource("Employees", LoadEmployeesData()))

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ReportViewer1.ProcessingMode = ProcessingMode.Local

''Set RDL file.

ReportViewer1.LocalReport.ReportPath = "c:\My Reports\Departments.rdlc"

'' Supply a DataTable corresponding to each report data source.

Dim myReportDataSource = New ReportDataSource("Departments", LoadDepartmentsData())

ReportViewer1.LocalReport.DataSources.Add(myReportDataSource)

''Add a handler for drillthrough.

AddHandler ReportViewer1.Drillthrough, AddressOf DemoDrillthroughEventHandler

'' Process and render the report.

Me.ReportViewer1.RefreshReport()

End Sub

End Class

另請參閱

參考

ReportViewer 類別
ReportViewer 成員
Microsoft.Reporting.WinForms 命名空間