Print Page | Close Window

Subreports at run-time

Printed From: Crystal Reports Book
Category: Crystal Reports for Visual Studio 2005 and Newer
Forum Name: Data Connectivity
Forum Discription: How to connect to data sources and export reports
URL: http://www.crystalreportsbook.com/forum/forum_posts.asp?TID=16305
Printed Date: 18 May 2024 at 5:50pm


Topic: Subreports at run-time
Posted By: GrexD
Subject: Subreports at run-time
Date Posted: 27 Apr 2012 at 12:31pm
I'm programming in Visual Studio 2010/VB.Net and reporting off of SQL Server 2005. I have more than a dozen reports written and all work well until I add in subreports.

My method for report design is to create reports at design-time based off of a SQL Server view. I then paste the SQL Statement in to a table with tokens in it for fields I want the user to be able to filter on at run-time. For instance, I may have tokens like <START_DATE> and <END_DATE> in the SQL. At run-time the user will give me two dates and I will update the SQL and then set that SQL to the report at run-time. The new SQL statement and the view are identical, except for the dates in the where clause.

On the form that displays the report I have over-loaded the New() method of the form to pass in a report name with full path, and the newly modified SQL statement. I then use code like below to set up the report.

        Dim Connection As New OleDbConnection(ConnectionString)

        Dim DA As New OleDbDataAdapter(sReportSQL, Connection)
        Dim DS As New DataSet

        DA.Fill(DS)

        Dim strReportPath As String = sReportName

        If Not IO.File.Exists(strReportPath) Then
            MsgBox("Unable to locate report file:" & vbCrLf & strReportPath)
        End If

        Dim cr As New ReportDocument

        cr.Load(strReportPath)
        cr.SetDataSource(DS.Tables(0))

        CrystalReportViewer1.ShowRefreshButton = False
        CrystalReportViewer1.ShowCloseButton = False
        CrystalReportViewer1.ShowGroupTreeButton = False

        CrystalReportViewer1.ReportSource = cr

        cr.Refresh()

This works fine for a report without a subreport. When I add a subreport I can not figure out how to update the subreport with a new dataset. What happens is that on any computer other than my design box, the user is prompted for a user name and password for the database. Even if I come over and enter in the sa user name and password, or any valid username and password, the report will not run and you are repeatedly prompted for username and password.

How do I access subreports and run-time?

Greg

-------------
Greg



Print Page | Close Window