大家的打印窗体是怎么做的,例如在Form1中有一个dataGridView其数据来自dataSet,用户需要打印该表格的数据,己建好报表crystalReport1数据源为同一dataSet,这时我们应该怎么做比较好,
1 用crystalReportViewer应该怎么做,要不要新建一winform然后放crystalReportViewer控件上去,这样的话如何共享前一窗体的dataSet来填充crystalReport1
2 如果用PrintPreviewDialog应该怎么调用crystalReport1
这些问题困了我几天,俺是新手望大家多指教?

解决方案 »

  1.   

    我也看了很多列子,但搞不懂都是只有一个form且被crystalReportViewer控件充満,在实际运用中一般是用户在当前窗口中输入条件查找数据然后在点击预览按钮弹出预览窗口即带crystalReportViewer的窗口,我想知道的是当前窗口的所查到数据如何传给预览窗口,即使crystalReport用的是同一数据源(dataSet),只知道我说清楚了没有,我认为这是最常用的
      

  2.   

    你可以使用继承让 被crystalReportViewer控件充満的那个窗体 继承一个带有 搜索条件头的窗体。
      

  3.   

    可以傳遞SQL語句,也可以直接傳遞DATASET.
    至于窗体間傳遞可以去找點資料.
      

  4.   

    SqlCommand com = new SqlCommand("select * from ***",LinkDataBase.myConnection);
    SqlDataAdapter dap = new SqlDataAdapter(com);
    DataSet ds = new  DataSet ();
    dap.Fill(ds);
    CrystalReport4 rpt=new  CrystalReport4 ();
    rpt.SetDataSource(ds.Tables[0]);
    crystalReportViewer1.ReportSource=rpt;