J'utilise Visual Studio 2005 avec VB.NET.Aide découplage Crystal Report de CrystalReportViewer
J'ai un certain nombre de Crystal Reports, chacun avec leur propre ressource de dialogue associée contenant un CrystalReportViewer. Les définitions de classe ressemblent à ceci:
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
J'instancier essentiellement la boîte de dialogue, mis theItems à la liste que je veux, et appelle ShowDialog.
J'ai maintenant besoin de combiner plusieurs de ces rapports dans un seul rapport (possibly like this) mais le code qui charge les champs dans le rapport est dans la boîte de dialogue.
Comment procéder pour découpler l'initialisation du rapport de la boîte de dialogue?
Merci!
Merci Rowland. Si je comprends bien, alors, je viens de charger les données du rapport ailleurs, définir et lier l'objet CrystalReport, et afficher la boîte de dialogue? – John
@John exactement cela. En effet, vous changez votre code pour que 'theReport' soit exposé comme une propriété de type CrystalReport, vous pouvez alors le définir comme un nouveau' myCrystalReport' et afficher le dialogue ou tout autre objet CrystalReport –
Travaillé comme un charme. Merci! – John