我将combox值作为参数传递给crystal report但是当我运行我的应用程序时它会询问我的值,如下所示。如何避免/跳过此提示对话框并直接将值从组合框传递到水晶报告?
这是我的代码:
private void button2_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(Int16));
dt.Columns.Add("month", typeof(string));
foreach (DataGridViewRow row in dataGridView1.Rows)
{
dt.Rows.Add(row.Cells[0].Value, row.Cells[1].Value);
}
ds.Tables.Add(dt);
ds.WriteXmlSchema("sample.xml");
CrystalReport2 rpt = new CrystalReport2();
rpt.SetParameterValue("name",comboBox1.Text);
rpt.SetDataSource(ds);
crystalReportViewer1.ReportSource = rpt;
}
答案 0 :(得分:2)
尝试替换
rpt.SetParameterValue("name",comboBox1.Text);
与
rpt.ParameterFields.Item["name"].CurrentValues = comboBox1.Text;
rpt.ParameterFields.Item["name"].HasCurrentValue = true;
如果它不起作用,试试这个
var param= new CrystalDecisions.Shared.ParameterValues();
var paramVal = new CrystalDecisions.Shared.ParameterDiscreteValue();
paramVal.Value = comboBox1.Text;
param.Add(paramVal);
rpt.SetParameterValue("name", param)
我已经为您here修改了代码