In order for all sub-reports to be able to recognize the parameter, which I am passing to the main report, I had to link all of my sub-reports to the main report using that parameter.
In order to link a sub-report to the main report, the following actions should be performed:
To link a subreport to the data in the primary report
- If you are creating a new subreport or importing an existing report as a subreport, from the Insert menu, click Subreport. Choose or create a report and click the Link tab.
- or -
If you have already placed a subreport in the primary report, but did not create a link at setup, navigate to the Subreport Links dialog box by choosing Subreport Links from the Edit menu.
The Subreport Links dialog box appears.
- Choose the subreport you want to link from the For subreport list (if it is not already selected).
- Select the field you want used as a link field in the primary (containing) report from the Available Fields list.
- Click the > arrow.
The field is added to the "Field(s) to link to" list box, and is now selected as a link field.
- Repeat steps 3 and 4 for each additional link, as desired.
- Use the Field link section (which will only appear if you have selected a link field) to set up the link for each link field:
- Select the field you want linked to the primary report from the "Subreport parameter field to use."
- Select the "Select data in subreport based on field" check box on and select a field from the adjacent drop
-d own list to organize the subreport data based on a specific field (this is the quick equivalent of using the Select Expert). If nothing is specified here, the subreport will adopt the organization of the primary report.
- Click OK.
When you run the report, the program will coordinate the data in the primary report with the data in the subreport.
Below is the code that I used to pass my parameter to the Crystal Report and then display it in PDF format to the end-user:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
GenerateReport(Session("EmpId"))
End Sub
Private Sub GenerateReport(ByVal EmpId As Integer)
Dim theReport As New ReportDocument
theReport.FileName = "C:\myProject\Reports\myReport.rpt"
theReport.SetDatabaseLogon(PCON.APP.UserName, _
PCON.APP.Pass, _
PCON.APP.db_Server, _
PCON.APP.dbName)
'Set the required parameter for Crystal Report
theReport.SetParameterValue("@Id", EmpId)
'Now, present report in PDF format
theReport.ExportToHttpResponse ( _
ExportFormatType.PortableDocFormat, _
Response, _
False, _
"ExportedReport")
End Sub