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