在报表文件中定义Paramter Fields的字段,然后通过以下的方式将参数传递进报表:
1、定义参数,参数的名称要和报表文件中相同
CrystalDecisions.Shared.ParameterFields paraFields = new CrystalDecisions.Shared.ParameterFields();
CrystalDecisions.Shared.ParameterField paraField = new CrystalDecisions.Shared.ParameterField();
CrystalDecisions.Shared.ParameterDiscreteValue paraValue = new CrystalDecisions.Shared.ParameterDiscreteValue();
paraField.Name = "TermString";
paraValue.Value = this.TermString;
paraField.CurrentValues.Add(paraValue);
paraFields.Add(paraField);
2、传入参数
crystalReportViewer1.ParameterFieldInfo = paraFields;
// 声明将参数传递给
// 查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue rangeVal = new ParameterRangeValue ();
// 第一个参数是具有多个值的离散参数。
// 设置参数字段的名称,它必须
// 和报表中的参数相符。
paramField.ParameterFieldName = "p1";
// 设置第一个离散值并将其传递给该参数。
discreteVal.Value = "dongliang";
paramField.CurrentValues.Add (discreteVal);
// 设置第二个离散值并将其传递给该参数。
// discreteVal 变量被设置为新值,这样,以前的设置
// 就不会被覆盖。
discreteVal = new ParameterDiscreteValue ();
discreteVal.Value = "DONGLIANG";
paramField.CurrentValues.Add (discreteVal);
// 将该参数添加到参数字段集合。
paramFields.Add (paramField);
// 第二个参数为区域值。paramField 变量
// 被设置为新值,这样,以前的设置就不会被覆盖。
paramField = new ParameterField ();
// 设置参数字段的名称,它必须
// 和报表中的参数相符。
paramField.ParameterFieldName = "p2";
// 设置范围的开始值和结束值并将该范围传递给
// 该参数。
rangeVal.StartValue = 42;
rangeVal.EndValue = 72;
paramField.CurrentValues.Add (rangeVal);
// 将第二个参数添加到参数字段集合。
paramFields.Add (paramField);
// 将参数字段集合放入查看器控件。
CrystalReportViewer1.ParameterFieldInfo = paramFields;
rpt = new CrystalReport1();
CrystalReportViewer1.ReportSource = rpt;
// 查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue rangeVal = new ParameterRangeValue ();
// 第一个参数是具有多个值的离散参数。
// 设置参数字段的名称,它必须
// 和报表中的参数相符。
paramField.ParameterFieldName = "p1";
// 设置第一个离散值并将其传递给该参数。
discreteVal.Value = "dongliang";
paramField.CurrentValues.Add (discreteVal);
// 设置第二个离散值并将其传递给该参数。
// discreteVal 变量被设置为新值,这样,以前的设置
// 就不会被覆盖。
discreteVal = new ParameterDiscreteValue ();
discreteVal.Value = "DONGLIANG";
paramField.CurrentValues.Add (discreteVal);
// 将该参数添加到参数字段集合。
paramFields.Add (paramField);
// 第二个参数为区域值。paramField 变量
// 被设置为新值,这样,以前的设置就不会被覆盖。
paramField = new ParameterField ();
// 设置参数字段的名称,它必须
// 和报表中的参数相符。
paramField.ParameterFieldName = "p2";
// 设置范围的开始值和结束值并将该范围传递给
// 该参数。
rangeVal.StartValue = 42;
rangeVal.EndValue = 72;
paramField.CurrentValues.Add (rangeVal);
// 将第二个参数添加到参数字段集合。
paramFields.Add (paramField);
// 将参数字段集合放入查看器控件。
CrystalReportViewer1.ParameterFieldInfo = paramFields;
rpt = new CrystalReport1();
CrystalReportViewer1.ReportSource = rpt;