Working with Parameters with Crystal Reports and ASP.NET 2.0 - Passing the value to Crystal Report Parameter dynamically: source code
(Page 2 of 6 )
In the previous section, we added a parameter named "p_EmployeeID" to the report. Now it is time to access the report (say, get a list of orders) based on the user specified value of Employee ID.
Let us modify the web page so that it looks like the following (Fig 06):

The Source for the above page design is as follows:
<form id="form1" runat="server">
<div>
<asp:Label ID="lblEmployeeID" runat="server" Text="Employee ID:"></asp:Label>
<asp:TextBox ID="txtEmployeeID" runat="server"></asp:TextBox>
<asp:Button ID="btnShow" runat="server" Text="Show" /><br />
<asp:Button ID="btnFirst" runat="server" Text="First Page" />
<asp:Button ID="btnPrevious" runat="server" Text="Previous Page" />
<asp:Button ID="btnNext" runat="server" Text="Next Page" />
<asp:Button ID="btnLast" runat="server" Text="Last Page" /><br />
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" DisplayGroupTree="False" DisplayToolbar="False" EnableDatabaseLogonPrompt="False" EnableParameterPrompt="False" Height="1055px" ReuseParameterValuesOnRefresh="True" Width="789px" />
</div>
</form>
The following is the code for the "Show" button:
Protected Sub btnShow_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShow.Click
Dim ConnInfo As New ConnectionInfo
With ConnInfo
.ServerName = ".sqlexpress"
.DatabaseName = "Northwind"
.UserID = "sa"
.Password = "eXpress2005"
End With
Me.CrystalReportViewer1.ParameterFieldInfo.Clear()
If Me.txtEmployeeID.Text.Trim.Length > 0 Then
Me.CrystalReportViewer1.ReportSource = Server.MapPath("SampleParam1.rpt")
Dim ParamFields As ParameterFields = Me.CrystalReportViewer1.ParameterFieldInfo
Dim p_EmpID As New ParameterField
p_EmpID.Name = "p_EmployeeID"
Dim p_EmpID_Value As New ParameterDiscreteValue
p_EmpID_Value.Value = Me.txtEmployeeID.Text
p_EmpID.CurrentValues.Add(p_EmpID_Value)
ParamFields.Add(p_EmpID)
Else
Me.CrystalReportViewer1.ReportSource = Server.MapPath("SampleRpt01.rpt")
End If
For Each cnInfo As TableLogOnInfo In Me.CrystalReportViewer1.LogOnInfo
cnInfo.ConnectionInfo = ConnInfo
Next
Me.CrystalReportViewer1.RefreshReport()
End Sub
The explanation for the above code is provided in the next section.
Next: Passing the value to Crystal Report Parameter dynamically at run-time: explanation >>
More ASP.NET Articles
More By Jagadish Chaterjee