Share via


ReportViewer.Drillthrough-Ereignis

Tritt auf, wenn ein Drillthroughelement in einem Bericht ausgewählt wird.

Namespace: Microsoft.Reporting.WinForms
Assembly: Microsoft.ReportViewer.WinForms (in microsoft.reportviewer.winforms.dll)

Syntax

'Declaration
Public Event Drillthrough As DrillthroughEventHandler
'Usage
Dim instance As ReportViewer
Dim handler As DrillthroughEventHandler

AddHandler instance.Drillthrough, handler
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.

Hinweise

Dieses Ereignis tritt auf, wenn ein Drillthroughelement in einem Bericht ausgewählt wird. Informationen zu diesem Ereignis werden in einem DrillThroughEventArgs-Objekt an den DrillThroughEventHandler-Delegaten übergeben, der das Ereignis behandelt.

Wenn der Drillthroughbericht über Unterberichte verfügt, müssen Sie Daten für diese Unterberichte angeben. Stellen Sie hierzu dem Drillthroughbericht, der über das DrillthroughEventArgs-Objekt übergeben wird, einen SubreportProcessing-Ereignishandler bereit.

Zum Laden von Daten für den Drillthroughbericht müssen Sie die DataSources.Add-Methode des Drillthroughberichts aufrufen, der über das DrillThroughEventArgs-Objekt und nicht über das vom ReportViewer-Steuerelement verwendete LocalReport-Objekt übergeben wird.

Der Name der Datenquelle, der in der Ereignishandlermethode für den Drillthrough hinzugefügt wird, muss mit dem im Drillthroughbericht angegebenen Datenquellennamen übereinstimmen. Der Name dieser Datenquelle kann im Berichts-Designer angezeigt werden. Hierzu klicken Sie im Berichts-Designer auf das Menü Bericht und wählen die Option Datenquellen aus. Dadurch wird das Dialogfeld Berichtsdatenquellen geöffnet, in dem die Namen der im Bericht definierten Berichtsdatenquellen angezeigt werden.

Weitere Informationen zur Behandlung von Ereignissen finden Sie unter Consuming Events.

Beispiel

Im folgenden Beispielcode wird ein Beispielbericht mit einer Reihe von Drillthroughelementen geladen und ein Ereignishandler zur Behandlung der Drillthroughereignisse eingerichtet. Zu den an den Drillthrough-Ereignishandler übergebenen Argumenten gehört auch ein Drillthrough-Berichtsobjekt. Der Ereignishandler fügt diesem Bericht eine Datenquelle hinzu, bevor der Drillthroughbericht im ReportViewer-Steuerelement gerendert wird.

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;

}

}

Im nachfolgenden Visual Basic-Beispiel wird davon ausgegangen, dass Sie eine Windows-Anwendung mit einem Formular und einem ReportViewer-Steuerelement erstellt haben.

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

Siehe auch

Referenz

ReportViewer-Klasse
ReportViewer-Member
Microsoft.Reporting.WinForms-Namespace