Activereportsでのドキュメント生成中に処理を強制的に中断する方法
今日は久々にVB.NET関連のTIPSです。
Activereportsでのドキュメント生成中に処理を強制的に中断する方法です。
Activereportsで印刷する場合に、コール元で条件を与え、条件に合致するデータが存在しない場合に何もせずに戻したい時の方法です。
レポート開始時にDBからのデータ取得時に、レコードが存在しない場合にはCancelメソッドで強制的に中断できます。
Private Sub rpt_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart
'ここでOrcaleDataReaderなどによるデータリーダのSQL文実行を行い、結果がエラー等の場合、強制的に中断
Me.Cancel
End Sub
Private Sub rpt_NoData(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.NoData
'さらにSQLエラーが無くても、データが無かった場合、強制的に中断
Me.Cancel()
End Sub
レポート生成側では、Runメソッドで生成後、ドキュメントの現在のページがNothingであれば強制的に中断したと見なせます。
Dim report As New ActiveReport1()
report.Run()
If (report.CurrentPage Is Nothing) Then
MsgBox("データがありません。")
End If
以上、簡単なTIPSでした。
コメント