Partager via


Événement LocalReport.SubreportProcessing

Se produit lors du traitement d'un sous-rapport.

Espace de noms: Microsoft.Reporting.WebForms
Assembly: Microsoft.ReportViewer.WebForms (dans microsoft.reportviewer.webforms.dll)

Syntaxe

'Déclaration
<SRDescriptionAttribute("SubreportProcessingEventDesc")> _
Public Event SubreportProcessing As SubreportProcessingEventHandler
'Utilisation
Dim instance As LocalReport
Dim handler As SubreportProcessingEventHandler

AddHandler instance.SubreportProcessing, handler
[SRDescriptionAttribute("SubreportProcessingEventDesc")] 
public event SubreportProcessingEventHandler SubreportProcessing
public:
event SubreportProcessingEventHandler^ SubreportProcessing {
    void add (SubreportProcessingEventHandler^ value);
    void remove (SubreportProcessingEventHandler^ value);
}
/** @event */
public void add_SubreportProcessing (SubreportProcessingEventHandler value)

/** @event */
public void remove_SubreportProcessing (SubreportProcessingEventHandler value)
JScript supports the use of events, but not the declaration of new ones.

Remarques

Vous devez fournir des données pour toutes les sources de données utilisées dans les sous-rapports. Pour cela, vous devez fournir un gestionnaire d'événements pour l'événement SubreportProcessing.

Pour examiner les valeurs des paramètres transmis au sous-rapport, examinez la propriété Parameters et fournissez les données correspondant à ces valeurs de paramètres.

Si le rapport principal contient plusieurs sous-rapports, vous pouvez examiner la propriété ReportPath de la classe SubreportProcessingEventArgs pour déterminer le sous-rapport en cours de traitement et fournir les données pour ce sous-rapport.

Pour une description des arguments transmis à ce gestionnaire d'événements, consultez SubreportProcessingEventArgs.

Exemple

L'exemple de code suivant implémente un rapport en mode Maître/Détails à l'aide de sous-rapports. Le code charge un exemple de rapport qui contient un sous-rapport et configure un gestionnaire d'événements afin de gérer l'événement SubreportProcessing. Les arguments transmis au gestionnaire d'événements SubreportProcessing incluent un objet qui encapsule le sous-rapport. Le gestionnaire d'événements ajoute une instance de source de données à ce sous-rapport avant son rendu dans le contrôle ReportViewer.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Reporting.WebForms;

public partial class _Default : System.Web.UI.Page 
{
    private DataTable orderDetailsData = null;

    private DataTable LoadOrdersData()
    {
        // Load data from XML file
        DataSet dataSet = new DataSet();
        dataSet.ReadXml(@"c:\My Reports\OrderData.xml");
        return dataSet.Tables[0];
    }

    private DataTable LoadOrderDetailsData()
    {
        // Load data from XML file
        DataSet dataSet = new DataSet();
        dataSet.ReadXml(@"c:\My Reports\OrderDetailData.xml");
        return dataSet.Tables[0];
    }

    void DemoSubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e)
    {
        if (orderDetailsData == null)
            orderDetailsData = LoadOrderDetailsData();
        e.DataSources.Add(new ReportDataSource("DataSet1_OrderDetails", orderDetailsData));
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // Set RDL file
            ReportViewer1.LocalReport.ReportPath = 
                @"c:\My Reports\Orders.rdlc";

            // Supply a DataTable corresponding to each report dataset
            ReportViewer1.LocalReport.DataSources.Add(
                new ReportDataSource("DataSet1_Orders", 
                    LoadOrdersData()));
    }
    // Add a handler for SubreportProcessing
    ReportViewer1.LocalReport.SubreportProcessing += new 
        SubreportProcessingEventHandler(DemoSubreportProcessingEventHandler);

    }
}
using System;
Imports System.Data
Imports Microsoft.Reporting.WebForms

Partial Class _Default
    Inherits System.Web.UI.Page

    Dim orderDetailsData As DataTable = Nothing

    Private Function LoadOrdersData() As DataTable
        Dim dataSet As New DataSet()
        dataSet.ReadXml("c:\My Reports\OrderData.xml")
        LoadOrdersData = dataSet.Tables(0)
    End Function

    Private Function LoadOrderDetailsData()
        Dim dataSet As New DataSet()
        dataSet.ReadXml("c:\My Reports\OrderDetailData.xml")
        LoadOrderDetailsData = dataSet.Tables(0)
    End Function

    Public Sub DemoSubreportProcessingEventHandler(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
        If (orderDetailsData Is Nothing) Then
            orderDetailsData = LoadOrderDetailsData()
        End If
        e.DataSources.Add(New ReportDataSource("DataSet1_OrderDetails", orderDetailsData))

    End Sub


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If (Not IsPostBack) Then

            ' Set RDL file.
            ReportViewer1.LocalReport.ReportPath = "c:\My Reports\Orders.rdlc"

            ' Supply a DataTable corresponding to each report data source.
            Dim myReportDataSource = New ReportDataSource("DataSet1_Orders", LoadOrdersData())
            ReportViewer1.LocalReport.DataSources.Add(myReportDataSource)
        End If

        'Add a handler for drillthrough.
        AddHandler ReportViewer1.LocalReport.SubreportProcessing, AddressOf DemoSubreportProcessingEventHandler

    End Sub

End Class

Voir aussi

Référence

Classe LocalReport
Membres LocalReport
Espace de noms Microsoft.Reporting.WebForms