水晶报表不同winform之间的传值

来源:互联网 发布:av 神作 知乎 编辑:程序博客网 时间:2024/05/17 01:25

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

原创粉丝点击