Compartir a través de


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