LocalReport.SubreportProcessing 事件
發生在處理子報表時。
命名空間: Microsoft.Reporting.WebForms
組件: Microsoft.ReportViewer.WebForms (在 microsoft.reportviewer.webforms.dll)
語法
'宣告
<SRDescriptionAttribute("SubreportProcessingEventDesc")> _
Public Event SubreportProcessing As SubreportProcessingEventHandler
'用途
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.
備註
您必須提供子報表所用之任何資料來源的資料。若要這麼做,您必須提供 SubreportProcessing 事件的事件處理常式。
您可以檢查 Parameters 屬性,提供對應於這些參數值的資料,來檢查傳給子報表的參數值。
如果主報表有多份子報表,您可以檢查 SubreportProcessingEventArgs 類別的 ReportPath 屬性來判斷正在處理的子報表,以及提供這份子報表的資料。
請參閱 SubreportProcessingEventArgs,以取得傳給這個事件處理常式之引數的描述。
範例
下列範例程式碼利用子報表來實作主版詳細資料報表。這個程式碼會載入包含一份子報表的範例報表,並設定一個事件處理常式來處理 SubreportProcessing 事件。傳遞至 SubreportProcessing 事件處理常式之引數包括封裝子報表的物件。這個事件處理常式會先將資料來源執行個體加入這份子報表中,然後才會在 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
另請參閱
參考
LocalReport 類別
LocalReport 成員
Microsoft.Reporting.WebForms 命名空間