Search code examples
c#crystal-reports

How to Pass multiple parameters from C# to crystal reports


I used this cod for pass a parameter to CR but can't pass multiple parameters!!! how to change this code for pass multiple parameters from C# to crystal reports?

ReportDocument cryRpt1 = new ReportDocument();
cryRpt1.Load("C:\\Users\\BilgiSoft\\Desktop\\RPTLetter1.rpt");

ParameterFieldDefinitions crParameterFieldDefinitions;
ParameterFieldDefinition crParameterFieldDefinition;
ParameterValues crParameterValues = new ParameterValues();
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

crParameterDiscreteValue.Value = comboBox1.Text;
crParameterFieldDefinitions = cryRpt1.DataDefinition.ParameterFields;
crParameterFieldDefinition = crParameterFieldDefinitions["My Parameter"];
crParameterValues = crParameterFieldDefinition.CurrentValues;

crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

crystalReportViewer1.ReportSource = cryRpt1;
crystalReportViewer1.Refresh();

Solution

  • Here is an example:

    ReportDocument cryRpt1 = new ReportDocument();
    cryRpt1.Load("C:\\Users\\BilgiSoft\\Desktop\\RPTLetter1.rpt");
    
    ParameterValues crParameterValues = new ParameterValues();
    //Add first param
    ParameterFieldDefinitions crParameterFieldDefinitions = cryRpt1.DataDefinition.ParameterFields;
    crParameterFieldDefinition = crParameterFieldDefinitions["My Parameter"];
    crParameterValues = crParameterFieldDefinition.CurrentValues;
    ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
    crParameterDiscreteValue.Value = comboBox1.Text;
    crParameterValues.Add(crParameterDiscreteValue);
    
    //add second param
    ParameterFieldDefinitions crParameterFieldDefinitions = cryRpt1.DataDefinition.ParameterFields;
    crParameterFieldDefinition = crParameterFieldDefinitions["My Parameter 2"];
    crParameterValues = crParameterFieldDefinition.CurrentValues;
    ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
    crParameterDiscreteValue.Value = comboBox2.Text;
    crParameterValues.Add(crParameterDiscreteValue);
    
    crystalReportViewer1.ReportSource = cryRpt1;
    crystalReportViewer1.Refresh();