【问题标题】:Passing parameters from another form to form with ReportViewer使用 ReportViewer 将参数从另一个表单传递到表单
【发布时间】:2014-01-28 06:25:18
【问题描述】:

您好,我在 Form2 中有 ReportViewer,在 Form1button_click 事件中有一些 textboxes 在 Form1 我打开 form2 并传递这些字符串:

 string klient_name = txt_name.Text;
        string klient_address2 = txt_adress2.Text;
        string klient_address = txt_adress.Text;
        voucher_sestava a = new voucher_sestava();
        a.k_name = klient_name;
        a.k_address2 = klient_address2;
        a.k_address = klient_address;
        a.Show();

Form2 我得到以下代码:

public string k_name { get; set; }
    public string k_address2 { get; set; }
    public string k_address { get; set; }

private void form2_Load(object sender, EventArgs e)
    {


        ReportParameter p1 = new ReportParameter("name",k_name);
        ReportParameter p2 = new ReportParameter("address",k_address);
        ReportParameter p3 = new ReportParameter("address2", k_address2);


        this.firmaTableAdapter.Fill(this.dataset_voucher.firma);
        this.reportViewer1.ServerReport.SetParameters(new ReportParameter[] { p1, p2, p3 }); 
        this.reportViewer1.RefreshReport();

    }

当我尝试在 reportviewer 的文本框中写 Expression 时,如下所示:

=Parameters!name.Value 

我收到以下错误:

文本框“Textbox14”的值表达式指的是 不存在的报告参数“名称”。姓名中的字母 参数必须使用正确的大小写。

有人可以帮我解决这个问题吗?非常感谢。

【问题讨论】:

  • ReportViewer 没有任何TextBox 供您编写任何表达式。事实上,这是Local Report 或其他支持设计时间的报告的设计表面。

标签: c# winforms reportviewer


【解决方案1】:

真正的问题是我没有在Report.rdlc 文件中创建Report Parameters

可以通过转到Report Data - 右键单击​​Parameters - Add Parameters来完成。

填写参数名,必须与解析的相同:

p3 = new ReportParameter("address", textBox1.Text);

如果需要,您可以允许 null valueblank value。 (我在这种情况下使用了`

最终的代码应该是这样的:

ReportParameter[] parameter = new ReportParameter[3]; // 3 indicates number of total parameters passed
parameter[0] = new ReportParameter("rp_name", textBox1.Text);
parameter[1] = new ReportParameter("rp_surname", textBox3.Text);
parameter[2] = new ReportParameter("rp_address",textBox2.Text;

this.reportViewer1.LocalReport.EnableExternalImages = true;
this.reportViewer1.LocalReport.SetParameters(parameter);
this.reportViewer1.RefreshReport();

【讨论】:

    【解决方案2】:

    参数区分大小写。将 Textbox14 的值更改为正确大小写。上或下。

    【讨论】:

    • 它对答案有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    相关资源
    最近更新 更多