Evento ReportViewer.Drillthrough
Viene generato quando si seleziona un elemento drill-through in un rapporto.
Spazio dei nomi Microsoft.Reporting.WinForms
Assembly: Microsoft.ReportViewer.WinForms (in Microsoft.ReportViewer.WinForms.dll)
Sintassi
'Dichiarazione
Public Event Drillthrough As DrillthroughEventHandler
'Utilizzo
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 supporta l'utilizzo di eventi, ma non la dichiarazione di nuovi eventi.
Osservazioni
Questo evento viene generato quando si seleziona un elemento drill-through in un rapporto. Le informazioni sull'evento vengono passate in un oggetto DrillThroughEventArgs al delegato DrillThroughEventHandler, che gestisce l'evento.
Se nel rapporto drill-through sono presenti sottorapporti, è necessario specificare i dati a essi relativi. A tale scopo, specificare un gestore dell'evento SubreportProcessing per il rapporto drill-through passato tramite l'oggetto DrillthroughEventArgs.
Per caricare i dati per il rapporto drill-through, è necessario chiamare il metodo DataSources.Add del rapporto drill-through passato tramite l'oggetto DrillThroughEventArgs anziché l'oggetto LocalReport utilizzato dal controllo ReportViewer.
Il nome dell'origine dati aggiunta al metodo del gestore dell'evento di drill-through deve corrispondere al nome dell'origine dati specificato nel rapporto drill-through. È possibile visualizzare il nome di tale origine dati in Progettazione rapporto scegliendo Origini dati dal menu Rapporto. Verrà visualizzata la finestra di dialogo Origini dati del rapporto in cui sono elencati i nomi delle origini dati definite nel rapporto.
Per ulteriori informazioni sulla gestione degli eventi, vedere Consuming Events.
Esempi
Nell'esempio di codice seguente viene caricato un rapporto 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 rapporto drill-through. Il gestore dell'evento aggiunge un'origine dati a questo rapporto prima che venga eseguito il rendering del rapporto 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
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