1

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つのレポートに結合する必要があります(おそらくこのように)が、レポートのフィールドをロードするコードはダイアログにあります。

レポートの初期化をダイアログから切り離すにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

レポートの基本クラス(つまり)のインスタンスを取得し、それを表示する一般的なレポート表示ダイアログを非常に簡単に作成できます。レポートを最後まで強く入力する必要CrystalReportはありません。

于 2010-03-16T08:56:21.253 に答える