日期:2014-05-17  浏览次数:20896 次

form2里水晶报表数据源调用form1里的dataset
form1里已经定义 public DataSet myDS = new DataSet();并且将数值手动赋值,保存到dataset里
myDS.Tables.Add(dt1);//保存到DataSet 
dataGridView1.DataSource = dt1;//绑定数据显示到datagridview中
form1里有个button点击弹出form2,form2里有水晶报表插件,
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        Form1 myDS;
        private void Form2_Load(object sender, EventArgs e)
        {
            
            ReportDocument myreport = new ReportDocument();
            myreport.Load(@"F:\Projects\DateGV\DateGV\CrystalReport1.rpt");
            myreport.SetDataSource(myDS.Tables[0]);//
            crystalReportViewer1.ReportSource = myreport;
        } 
    }  
     myreport.SetDataSource(myDS.Tables[0]);//这一行调试的时候tables提示没有定义,新手,求帮助。

------解决方案--------------------

简单点就去掉Form2中Form1 myDS;
在Form2定义一个公开的属性
public DataTable MyData{get;set}

Load:
   myreport.SetDataSource(MyData);

Form1:
   Form2 f=new Form2();
   f.MyData=myDS.Tables[0];
   f.Show();