【问题标题】:how to pass combo box value as a parameter to crystal report in c#如何将组合框值作为参数传递给c#中的水晶报表
【发布时间】:2014-12-06 00:29:23
【问题描述】:

我将组合框值作为参数传递给水晶报表,但是当我运行我的应用程序时,它会询问我的值,如下所示。如何避免/跳过此提示对话框并直接将值从组合框传递到水晶报表?

这是我的代码:

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;
        }

【问题讨论】:

标签: c# combobox crystal-reports


【解决方案1】:

尝试替换

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的代码

【讨论】:

  • 我在 Windows 窗体中工作。 rpt.ParameterFields 没有 Item 字段。
  • 试试rpt.SetParameterValue(0, comboBox1.Text)
  • 给出同样的提示。
猜你喜欢
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多