I have just recently created a WebForm which consists of 2 forms, the first form consists of just a button to redirect to the second form which then opens up the Crystal Report.
All this is working fine and properly but now I would want to insert a Parameter(filtering a range) on the first WebForm so that it would be applied directly onto the crystal report once I open it.
Any ideas of what code I need to include? Any help would be great.
EDIT:
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load(Server.MapPath("CrystalReportCustomerInfo.rpt"));
CrystalReportCustomerinfo.ReportSource = cryRpt;
ParameterFieldDefinitions FirstParameterFieldDefinitions;
ParameterFieldDefinition FirstParameterFieldDefinition;
ParameterValues FirstParameterValues = new ParameterValues();
ParameterDiscreteValue FirstParameterDiscreteValue = new ParameterDiscreteValue();
FirstParameterDiscreteValue.Value = Txt1.Text;
FirstParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
FirstParameterFieldDefinition = FirstParameterFieldDefinitions["FromID"];
FirstParameterValues = FirstParameterFieldDefinition.CurrentValues;
FirstParameterValues.Clear();
FirstParameterValues.Add(FirstParameterDiscreteValue);
ParameterFieldDefinitions SecondParameterFieldDefinitions;
ParameterFieldDefinition SecondParameterFieldDefinition;
ParameterValues SecondParameterValues = new ParameterValues();
ParameterDiscreteValue SecondParameterDiscreteValue = new ParameterDiscreteValue();
SecondParameterDiscreteValue.Value = Txt2.Text;
SecondParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
SecondParameterFieldDefinition = SecondParameterFieldDefinitions["ToID"];
SecondParameterValues = SecondParameterFieldDefinition.CurrentValues;
SecondParameterValues.Clear();
SecondParameterValues.Add(SecondParameterDiscreteValue);
FirstParameterFieldDefinition.ApplyCurrentValues(FirstParameterValues);
SecondParameterFieldDefinition.ApplyCurrentValues(SecondParameterValues);
CrystalReportCustomerinfo.ReportSource = cryRpt;
CrystalReportCustomerinfo.RefreshReport();
}
Try it
private void btnReport_Click(object sender, EventArgs e)
{
ReportDocument rpt = new ReportDocument();
rpt.Load(Server.MapPath("~/CrystalReportCustomerInfo.rpt"));
ParameterFieldDefinitions FirstParameterFieldDefinitions;
ParameterFieldDefinition FirstParameterFieldDefinition;
ParameterValues FirstParameterValues = new ParameterValues();
ParameterDiscreteValue FirstParameterDiscreteValue = new ParameterDiscreteValue();
FirstParameterDiscreteValue.Value = Convert.ToInt32(from.Text);
FirstParameterFieldDefinitions = rpt.DataDefinition.ParameterFields;
FirstParameterFieldDefinition = FirstParameterFieldDefinitions["FromID"];
FirstParameterValues = FirstParameterFieldDefinition.CurrentValues;
FirstParameterValues.Clear();
FirstParameterValues.Add(FirstParameterDiscreteValue);
ParameterFieldDefinitions SecondParameterFieldDefinitions;
ParameterFieldDefinition SecondParameterFieldDefinition;
ParameterValues SecondParameterValues = new ParameterValues();
ParameterDiscreteValue SecondParameterDiscreteValue = new ParameterDiscreteValue();
SecondParameterDiscreteValue.Value = Convert.ToInt32(to.Text); ;
SecondParameterFieldDefinitions = rpt.DataDefinition.ParameterFields;
SecondParameterFieldDefinition = SecondParameterFieldDefinitions["ToID"];
SecondParameterValues = SecondParameterFieldDefinition.CurrentValues;
SecondParameterValues.Clear();
SecondParameterValues.Add(SecondParameterDiscreteValue);
FirstParameterFieldDefinition.ApplyCurrentValues(FirstParameterValues);
SecondParameterFieldDefinition.ApplyCurrentValues(SecondParameterValues);
CrystalReportViewer1.ReportSource = rpt;
}