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