通过充当第二个控件的默认事件处理程序,在两个 CrystalReportViewer 控件之间同步 Drill 事件。
命名空间 CrystalDecisions.Web 程序集 CrystalDecisions.Web (CrystalDecisions.Web.dll)
语法
声明
Public Overrideable Sub OnDrill ( _
ByVal source As Object, _
ByVal e As CrystalDecisions.Web.DrillEventArgs _
)
public virtual void OnDrill (
object source,
CrystalDecisions.Web.DrillEventArgs e
)
参数
- source
CrystalReportViewer控件。
- e
与 Drill 事件相关的数据。
备注
在 CrystalReportViewer(将其称为 CrystalReportViewer1)中触发 Drill 事件时,OnDrill 方法将充当另一个 CrystalReportViewer(将其称为 CrystalReportViewer2)的默认事件处理程序。 在为 CrystalReportViewer1 创建使用 CrystalReportViewer2 的 OnDrill 方法的地址作为参数的新 DrillEventHandler 时,将发生此情形。当用户在 CrystalReportViewer1 中的子报表上向下钻取时,CrystalReportViewer2 中的子报表会镜像 CrystalReportViewer1 中的报表活动。CrystalReportViewer2 中的任何 Drill 事件代码都将被忽略,因为该事件在 CrystalReportViewer2 中未触发。如果用户在 CrystalReportViewer2 中的子报表上向下钻取,则 CrystalReportViewer2 的 Drill 事件和随后的任何代码都将执行。
该方法可用来帮助比较两个报表的数据。例如,假设有一个 Web 应用程序显示两份月销售报表,一份是 12 月的,另一份是 1 月的。当向下钻取 12 月的销售报告中的报表时,1 月的报表会镜像在 12 月的报表中进行的操作。用户可以比较两个报表的销售数字,而不必对每个报表进行重复操作。
示例
此示例演示如何为 CrystalReportViewer1 创建新的 DrillEventHandler,它将通过 OnDrill 方法将事件委派给 CrystalReportViewer2。此示例为 CrystalReportViewer 控件设置报表源,然后创建事件处理程序。
声明
Private Sub Page_Load _
(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
Me.CrystalReportViewer1.ReportSource = _
Me.MapPath("DecemberSales.rpt")
Me.CrystalReportViewer2.ReportSource = _
Me.MapPath("JanuarySales.rpt")
AddHandler CrystalReportViewer1.Drill, _
AddressOf(CrystalReportViewer2.OnDrill)
End Sub
private void Page_Load(object sender, System.EventArgs e)
{
CrystalReportViewer1.ReportSource =
this.MapPath("DecemberSales.rpt");
CrystalReportViewer2.ReportSource =
this.MapPath("JanuarySales.rpt");
this.CrystalReportViewer1.Drill += new
CrystalDecisions.Web.DrillEventHandler
(CrystalReportViewer2.OnDrill);
}
版本信息
Crystal Reports Basic for Visual Studio 2008
从此版本开始支持: Crystal Reports for Visual Studio .NET 2002
另请参见
引用
CrystalReportViewer 类
CrystalReportViewer 成员
CrystalDecisions.Web 命名空间