次の方法で共有


CrystalReportViewer.OnDrill メソッド

2 つの CrystalReportViewer コントロールの間で Drill イベントを同期させるために、2 番目のコントロールのデフォルトのイベント ハンドラとして機能します。

名前空間 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 イベントに関連するデータ

解説

Drill イベントが 1 つ目の CrystalReportViewerCrystalReportViewer1)で発生すると、OnDrill メソッドは、もう 1 つの CrystalReportViewerCrystalReportViewer2)のデフォルトのイベント ハンドラとして機能します。この動作は、CrystalReportViewer1 で新規に作成する DrillEventHandler で、CrystalReportViewer2OnDrill メソッドのアドレスを引数として使用することによって実現されます。ユーザーが CrystalReportViewer1 内のサブレポートをドリル ダウンすると、CrystalReportViewer2 内のサブレポートには、CrystalReportViewer1 内のレポートのアクティビティが反映されます。CrystalReportViewer2 ではイベントが発生しないので、CrystalReportViewer2 内の Drill イベント コードは無視されます。ユーザーが CrystalReportViewer2 内のサブレポートをドリル ダウンすると、CrystalReportViewer2 の Drill イベントと後続のコードが実行されます。

この方法は、2 つのレポート間のデータを比較するときに利用できます。たとえば、Web アプリケーションで、2 つの月次売上レポート(12 月のレポートと 1 月のレポート)を表示するとします。12 月の売上レポート内のレポートがドリル ダウンされると、1 月のレポートに 12 月のレポートに対する操作が反映されます。ユーザーは、レポートごとに操作を繰り返さなくても、2 つのレポート間で売上高を比較できます。

次の例は、OnDrill メソッドを介して CrystalReportViewer2 にイベントを依頼する DrillEventHandler を、CrystalReportViewer1 で新規に作成する方法を示します。この例では 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 名前空間