[英]Passing parameters from another form to form with ReportViewer
您好,我在Form2
安装了ReportViewer
,在Form1
获得了一些textboxes
在Form1
中的button_click
事件中,我打开了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”的“值”表达式引用了不存在的报表参数“名称”。 参数名称中的字母必须使用正确的大小写。
有人可以帮我解决这个问题吗? 非常感谢。
真正的问题是我尚未在Report.rdlc
文件中创建Report Parameters
。
可以通过转到Report Data
-右键单击“ Parameters
-“ Add Parameters
。
填写参数名称,该名称必须与解析的名称相同:
p3 = new ReportParameter(“ address”,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();
参数区分大小写。 更改Textbox14的值以更正大小写。 上或下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.