作成日: 2026/03/25 最終更新日: 2026/03/25
文書種別
使用方法
詳細
セクションレポートの場合、レポートに出力するデータが存在しないとき、NoDataイベントが発生します。このイベントを利用することで、表記のような動作が実現可能です。
たとえば、以下のコードのように、NoDataイベント内でCancelメソッドを実行することで、レポートの生成処理をキャンセルし、データが空のレポート(ヘッダ/フッタしか出力されていないレポート)が生成されることを回避できます。
◆サンプルコード (C#)
private void SectionReport1_NoData(object sender, EventArgs e)
{
this.Cancel();
}◆サンプルコード (VB.NET)
Private Sub SectionReport1_NoData(sender As Object, e As EventArgs) Handles MyBase.NoData
Me.Cancel()
End SubCancelメソッドによりレポートの生成処理がキャンセルされた場合、CurrentPageプロパティがNothingのままになりますので、下記のようなコードでデータが存在しなかったことも判断可能です。
◆サンプルコード (C#)
var rpt = new SectionReport1();
rpt.Run();
if (rpt.CurrentPage == null)
{
System.Console.WriteLine("データがありません。");
}◆サンプルコード (VB.NET)
Dim rpt As New SectionReport1()
rpt.Run(False)
If (rpt.CurrentPage Is Nothing) Then
Console.WriteLine("データがありません。")
End Ifなお、NoDataイベントが発生する条件は、レポートの構造によって異なります。
セクションレポートの場合、DataSourceプロパティが設定されている(デザイン時にデータソースの設定を行っている)レポートをバウンドレポートといいます。
一方、上記のようなデータソースの設定を行わず、FetchDataイベントを使用して出力するデータの読み込みをすべてコード上で行っているセクションレポートをアンバウンドレポートといいます。
それぞれのレポートについて、NoDataイベントが発生する条件は、以下の通りです。
■バウンドレポートの場合
出力対象レコードが1レコードも存在しないとき
■アンバウンドレポートの場合
最初に発生したFetchDataイベントでeArgs.EOFパラメータに"True"を設定したとき