Evento ReportViewer.Drillthrough
Se produce cuando se selecciona un elemento de obtención de detalles en un informe.
Espacio de nombres: Microsoft.Reporting.WinForms
Ensamblado: Microsoft.ReportViewer.WinForms (en microsoft.reportviewer.winforms.dll)
Sintaxis
'Declaración
Public Event Drillthrough As DrillthroughEventHandler
'Uso
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.
Comentarios
Este evento se produce cuando se selecciona un elemento de obtención de detalles en un informe. La información sobre este evento se pasa en un objeto de DrillThroughEventArgs al delegado DrillThroughEventHandler, que se encarga de controlar el evento.
Si el informe de obtención de detalles tiene informes integrados, deberá suministrar datos para esos informes integrados. A tal efecto, proporcione un controlador de eventos SubreportProcessing al informe de obtención de detalles que se pasa mediante el objeto DrillthroughEventArgs.
A fin de cargar datos para el informe de obtención de detalles, se debe llamar al método DataSources.Add del informe de obtención de detalles que se pasa mediante el objeto DrillThroughEventArgs en lugar del objeto LocalReport utilizado por el control ReportViewer.
El nombre del origen de datos agregado al método del controlador de eventos de obtención de detalles debe coincidir con el nombre del origen de datos especificado en el informe de obtención de detalles. El nombre de este origen de datos se puede ver en el Diseñador de informes haciendo clic en el menú Informe y seleccionado Orígenes de datos. A continuación se abre el cuadro de diálogo Orígenes de datos de informe que muestra los nombres de los orígenes de datos de informe definidos en el informe.
Para obtener más información sobre el control de eventos, vea Consuming Events.
Ejemplo
El siguiente código de ejemplo carga un informe de ejemplo que contiene una serie de elementos de obtención de detalles y configura un controlador de eventos para controlar los eventos de obtención de detalles. Los argumentos pasados al controlador de eventos de obtención de detalles incluyen un objeto de informe de obtención de detalles. El controlador de eventos agrega un origen de datos a este informe antes de que el informe de obtención de detalles se represente en el control 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;
}
}
En el siguiente ejemplo de Visual Basic se presupone que ha creado una aplicación Windows con un formulario y un control 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
''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
Consulte también
Referencia
Clase ReportViewer
Miembros ReportViewer
Espacio de nombres Microsoft.Reporting.WinForms