VisualStudio2005とVB.NETを使用しています。
いくつかのCrystalReportsがあり、それぞれにCrystalReportViewerを含む独自のダイアログリソースが関連付けられています。クラス定義は次のようになります。
Imports System.Windows.Forms
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class dlgForMyReport
Private theReport As New myCrystalReport
Public theItems As New List(Of MyItem)
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub dlgForMyReport_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
theReport.SetDataSource(theItems)
'Do a bunch of stuff here to set data items in theReport
Me.myCrystalReportViewer.ReportSource = theReport
End Sub
End Class
基本的に、ダイアログをインスタンス化し、アイテムを必要なリストに設定して、ShowDialogを呼び出します。
これらのレポートのいくつかを1つのレポートに結合する必要があります(おそらくこのように)が、レポートのフィールドをロードするコードはダイアログにあります。
レポートの初期化をダイアログから切り離すにはどうすればよいですか?
ありがとう!