如何将多个参数从 C# 传递到 crystal 报告

How to Pass multiple parameters from C# to crystal reports

我用这个cod给CR传一个参数,但是不能传多个参数!!! 如何更改此代码以将多个参数从 C# 传递到 crystal 报告?

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();

这是一个例子:

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();