先在form2中定义formstr函数
form1下BUTTON的代码:
public void button1_Click(object sender, EventArgs e)
{
PopupReport frm = new PopupReport();
frm.formstr(textBoxName.Text,textBoxPrincipal.Text );//textBoxName.Text,textBoxPrincipal.Text 是form1中控件的值;
frm.ShowDialog();
}
form2下接收:
public void formstr(string Name, string Principal)
{
string name;
string principal;
name = Name.Trim();//Name.Trim就是textBoxName.Text的值,传给name
principal = Principal.Trim();//Principal.Trim就是textBoxPrincipal.Text 的值 传给principal
//下面是对报表的赋值及绑定操作,form2中有一个crystalReportViewer1控件
CrystalDecisions.CrystalReports.Engine.ReportDocument myReportDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
myReportDoc.Load(System.Windows.Forms.Application.StartupPath+"//报表//"+"CrystalReport3.rpt");//报表路径
CrystalDecisions.Shared.ParameterValues p = new CrystalDecisions.Shared.ParameterValues();
CrystalDecisions.Shared.ParameterDiscreteValue a2 = new CrystalDecisions.Shared.ParameterDiscreteValue();
a2.Value = name;//这里只使用了name的值,
p.Add(a2);
myReportDoc.DataDefinition.ParameterFields["p"].ApplyCurrentValues(p);
this.crystalReportViewer1.ReportSource = myReportDoc;
}