VS 2008 and Crystal Reports Viewer

I am developing an application in VB/VS2008 and am using Crystal Reports and the CR Report Viewer.  I am able to use the viewer on a form, and can pass parameters and get the report to load.  What I am wondering is, can I use a single Form/Viewer to view all reports in my application?  Or do I have to create a Form/Viewer for each report?  I have not been able to find any examples of how to programatically call the form passing variables, so that I can use the same viewer for any report.  My scenerio is to have a form open, clicking on a button will pass a parameter to the report, and open the selected report in the viewer.  I'd like to do this from many areas of the application, but don't want to have to create multiple forms with viewers.
sassymackeAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Éric MoreauConnect With a Mentor Senior .Net ConsultantCommented:
Then you need to do something like:

dim f as new FormWithTheCRViewer
f.myCrystalReportViewer.ReportSource = rptReport
f.show
0
 
Éric MoreauSenior .Net ConsultantCommented:
a single form is OK. check "Testing your report" from http://www.emoreau.com/Entries/Articles/2006/09/Feeding-Crystal-Reports-from-your-application.aspx (in particular CrystalReportViewer1.ReportSource = mrptDoc)
0
 
sassymackeAuthor Commented:
Thanks emoreau.  I hate to be a bonehead, but which code goes into the viewer's form, and which goes into the form where I'm calling the report from?
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
Éric MoreauSenior .Net ConsultantCommented:
download the sample code that goes with the article. everything is there. Basically, there is nothing into the viewer form.
0
 
sassymackeAuthor Commented:
Sometimes right in front of your nose is not close enough!  I'll try this code and post back in a few. Thanks.
0
 
mlmccCommented:
If that code is different from yours, post your code and we can try to help modify it.

mlmcc
0
 
sassymackeAuthor Commented:
This is what I have, but I can't get past the error that myCrystalReportViewer is not declaired.  That is the name of my viewer control on Form2.  This is the code on the other form.
Imports CrystalDecisions.CrystalReports.ViewerObjectModel
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
 
Public Class RFI
 
    Private rptReport As New ReportDocument    
 
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument)
 
        Dim myTables As Tables = myReportDocument.Database.Tables
        For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables
            Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo
            myTableLogonInfo.ConnectionInfo = myConnectionInfo
            myTable.ApplyLogOnInfo(myTableLogonInfo)
        Next
 
    End Sub
    Private Sub ConfigureCrystalReports()
        Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
 
        myConnectionInfo.DatabaseName = "FrerichsPMgr"
        myConnectionInfo.IntegratedSecurity = True
        SetDBLogonForReport(myConnectionInfo, rptReport)
    End Sub
    Private Sub PrintPreviewToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewToolStripMenuItem1.Click
        Me.Cursor = Cursors.WaitCursor
 
        rptReport.Load("..\Reports\RFIRPT.rpt")
 
        ConfigureCrystalReports()
        
        Dim ID As String
        ID = Me.RFIIDTextBox.Text
        'Set the values of the parameters
        rptReport.SetParameterValue("RFIID", ID)
 
        'Pass the Report Document object to the viewer
        myCrystalReportViewer.ReportSource = rptReport
    End Sub
End Class

Open in new window

0
 
Éric MoreauSenior .Net ConsultantCommented:
myCrystalReportViewer has to be the name of your CR viewer.

Is it on the same form where this code runs?
0
 
sassymackeAuthor Commented:
That is the name of my viewer, but it is on a different form.  I want to call that form to open with the viewer when I press the button.  
0
 
sassymackeAuthor Commented:
It WORKED!!!!  I have spent more time on this than I care to admit.  Thanks so much for the assitance!!!
0
 
sassymackeAuthor Commented:
Thanks so much!!!
0
All Courses

From novice to tech pro — start learning today.