Condividi tramite


Evento ReportViewer.Drillthrough

Viene generato quando si seleziona un elemento drill-through in un report.

Spazio dei nomi: Microsoft.Reporting.WinForms
Assembly: Microsoft.ReportViewer.WinForms (in microsoft.reportviewer.winforms.dll)

Sintassi

'Dichiarazione
<SRDescriptionAttribute("DrillthroughEventDesc")> _
Public Event Drillthrough As DrillthroughEventHandler
'Utilizzo
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.

Note

Questo evento viene generato quando si seleziona un elemento drill-through in un report. Le informazioni sull'evento vengono passate in un oggetto DrillThroughEventArgs al delegato DrillThroughEventHandler, che gestisce l'evento.

Se nel report drill-through sono presenti sottoreport, è necessario specificare i dati a essi relativi. A tale scopo, specificare un gestore dell'evento SubreportProcessing per il report drill-through passato tramite l'oggetto DrillthroughEventArgs.

Per caricare i dati per il report drill-through, è necessario chiamare il metodo DataSources.Add del report drill-through passato tramite l'oggetto DrillThroughEventArgs anziché l'oggetto LocalReport utilizzato dal controllo ReportViewer.

Il nome dell'origine dei dati aggiunta al metodo del gestore dell'evento di drill-through deve corrispondere al nome dell'origine dei dati specificato nel report drill-through. È possibile visualizzare il nome di tale origine dei dati in Progettazione report scegliendo Origini dei dati dal menu Report. Verrà visualizzata la finestra di dialogo Origini dei dati del report in cui sono elencati i nomi delle origini dei dati definite nel report.

Per ulteriori informazioni sulla gestione degli eventi, vedere Consuming Events.

Esempio

Nell'esempio di codice seguente viene caricato un report di esempio che contiene una serie di elementi drill-through e viene impostato un gestore dell'evento per la gestione degli eventi di drill-through. Gli argomenti passati al gestore dell'evento di drill-through includono un oggetto report drill-through. Il gestore dell'evento aggiunge un'origine dei dati a questo report prima che venga eseguito il rendering del report drill-through nel controllo 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;

}

}

Nell'esempio Visual Basic seguente si suppone che sia stata creata un'applicazione per Windows che dispone di un form e di un controllo 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

Vedere anche

Riferimento

Classe ReportViewer
Membri ReportViewer
Spazio dei nomi Microsoft.Reporting.WinForms