高手,我用的是vs2008的自带的水晶报表
报表里面设置了离散值的参数"客户姓名",并勾选了允许多个值的复选框
代码如下
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();//--离散值
ParameterRangeValue rangeVal = new ParameterRangeValue();//--区域值
// 假设第一个参数是具有多个值的离散参数。
// 设置参数字段的名称,它必须和报表中的参数相符。
paramField.ParameterFieldName = "客户姓名";
// 设置第一个离散值并将其传递给该参数。
discreteVal.Value = "Jeason";
paramField.CurrentValues.Add(discreteVal);
//// 设置第二个离散值并将其传递给该参数。
discreteVal = new ParameterDiscreteValue();
discreteVal.Value = "Hank";
paramField.CurrentValues.Add(discreteVal); // 将该参数添加到参数字段集合。
paramFields.Add(paramField);
CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
//CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);
CrystalReportSource1.DataBind();
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportViewer1.DataBind();
但结果是只显示"Jeason",一个值,显示"Hank",求解
报表里面设置了离散值的参数"客户姓名",并勾选了允许多个值的复选框
代码如下
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();//--离散值
ParameterRangeValue rangeVal = new ParameterRangeValue();//--区域值
// 假设第一个参数是具有多个值的离散参数。
// 设置参数字段的名称,它必须和报表中的参数相符。
paramField.ParameterFieldName = "客户姓名";
// 设置第一个离散值并将其传递给该参数。
discreteVal.Value = "Jeason";
paramField.CurrentValues.Add(discreteVal);
//// 设置第二个离散值并将其传递给该参数。
discreteVal = new ParameterDiscreteValue();
discreteVal.Value = "Hank";
paramField.CurrentValues.Add(discreteVal); // 将该参数添加到参数字段集合。
paramFields.Add(paramField);
CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
//CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);
CrystalReportSource1.DataBind();
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportViewer1.DataBind();
但结果是只显示"Jeason",一个值,显示"Hank",求解
paramFields.Add(paramField);只追加了一次??
在
//// 设置第二个离散值并将其传递给该参数。的前面追加一句paramFields.Add(paramField);试试。