Événement ReportViewer.Drillthrough
Se produit lorsqu'un élément d'extraction est sélectionné dans un rapport.
Espace de noms : Microsoft.Reporting.WinForms
Assembly : Microsoft.ReportViewer.WinForms (en Microsoft.ReportViewer.WinForms.dll)
Syntaxe
'Déclaration
Public Event Drillthrough As DrillthroughEventHandler
'Utilisation
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);
}
member Drillthrough : IEvent<DrillthroughEventHandler,
DrillthroughEventArgs>
JScript prend en charge l'utilisation d'événements, mais pas la déclaration de nouveaux événements.
Notes
Cet événement se produit lorsqu'un élément d'extraction est sélectionné dans un rapport. Les informations sur cet événement sont transmises dans un objet DrillThroughEventArgs au délégué DrillThroughEventHandler qui gère l'événement.
Si le rapport d'extraction contient des sous-rapports, vous devez fournir les données relatives à ces sous-rapports. Pour cela, fournissez un gestionnaire d'événements SubreportProcessing au rapport d'extraction qui est transmis via l'objet DrillthroughEventArgs.
Pour charger des données relatives au rapport d'extraction, vous devez appeler la méthode DataSources.Add du rapport d'extraction qui est transmis via l'objet DrillThroughEventArgs, au lieu de l'objet LocalReport utilisé par le contrôle ReportViewer.
Le nom de la source de données ajoutée à la méthode du gestionnaire d'événements d'extraction doit correspondre au nom de la source de données spécifié dans le rapport d'extraction. Pour afficher le nom de cette source de données dans le Générateur de rapports, cliquez sur le menu Rapport, puis sélectionnez Sources de données. Vous accédez à la boîte de dialogue Sources de données du rapport, qui affiche les noms des sources de données de rapport définies dans le rapport.
Pour plus d'informations sur la gestion des événements, consultez Consuming Events.
Exemples
L'exemple de code ci-dessous charge un exemple de rapport qui contient une série d'éléments d'extraction et configure un gestionnaire d'événements afin de gérer les événements d'extraction. Les arguments transmis au gestionnaire d'événements d'extraction comprennent un objet de rapport d'extraction. Le gestionnaire d'événements ajoute une source de données à ce rapport avant le rendu du rapport d'extraction dans le contrôle 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;
}
}
L'exemple Visual Basic ci-dessous suppose que vous avez créé une application Windows contenant un formulaire et un contrôle ReportViewer.
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
Dim localReport = ReportViewer1.LocalReport
''Set RDL file.
localReport.ReportPath = "c:\My Reports\Departments.rdlc"
'' Supply a DataTable corresponding to each report
'' data source.
Dim myReportDataSource = New ReportDataSource( _
"Departments", LoadDepartmentsData())
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