1

你好,我已经进入ReportViewer了我的,我在 Form1中Form2得到了一些事件,我打开了 form2 并传递了这些字符串:textboxesForm1button_click

 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();

    }

当我尝试这样写Expressionreportviewer的文本框时:

=Parameters!name.Value 

我收到以下错误:

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

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

4

2 回答 2

3

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

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

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

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

如果需要,null value您可以允许。blank 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();
于 2014-01-27T22:25:18.483 回答
-1

参数区分大小写。将 Textbox14 的值更改为正确大小写。无论是上还是下。

于 2013-09-06T08:49:59.070 回答