查询的那一部分我已经做好了,绑定的是datagridview控件...想把查询出来的结果生成一个报表,应该怎么弄呢?我只会新建一个窗体拉个crystalReportViewer控件把表中的所有数据生成报表

解决方案 »

  1.   

    习惯输出给EXCEL报表,报表可以先做成模板,就可以使用EXCEL的很多图表功能,很方便吧
      

  2.   

    我转贴别人的吧,自己写的没带,呵呵!
    最重要的是用那种方式做水晶报表,下面的用推式方法写的,把查询出来的结果重新绑定给数据集就可以了.string strConnString = @"Data Source=Q-LUOLISHUANG/SQLEXPRESS;Initial Catalog=myDatabase;User Id=sa;Password=luols;";  
    SqlConnection conn = new SqlConnection(strConnString);  
      
    //这里为了和数据集里的列名保持一致,特别用as取了别名  
    //务必保持一致!!  
    string strSQL = "select c1 as Col1,c2 as Col2,c3 as Col3 from myTable"; //原始数据传给报表,让报表去处理  
    SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);  
    DataSet1 myDataSet = new DataSet1();  
    da.Fill(myDataSet.DataTable2); //把查询到的数据“塞”到数据集  
      
    CrystalReport1 myReport = new CrystalReport1();  
    myReport.SetDataSource(myDataSet);  
    crystalReportViewer1.ReportSource = myReport;  
      

  3.   

    谢谢啦~~~一开始报错还以为又是错的~~才发现自己没有引进命名空间~~哈哈~~梦游了..我改成了这样了..现在把它引用到别处去~~不行再回来问你....SqlConnection conn = lianjie.CyCon();
       string strSQL = "select ID as Col1,jine as Col2,riqi as Col3 from detail3"; //原始数据传给报表,让报表去处理   
      SqlDataAdapter sda = new SqlDataAdapter(strSQL, conn);
       DataSet ds = new DataSet(); //实例化DataSet对象
       sda.Fill(ds); //使用SqlDataAdapter对象的Fill方法填充DataSet   bb myReport = new bb();
       myReport.SetDataSource(ds);
       crystalReportViewer1.ReportSource = myReport;   
      

  4.   

    你没把查询得到的数据源重新绑定一下例子中的DataSet ds吗,当然打印出来的结果又是你第一次绑定datagirdview的结查啦,一般你都要做个查询按钮之类的控件,把你需要查询出来的,例如上面我贴的代码中string strSQL = "select c1 as Col1,c2 as Col2,c3 as Col3 from myTable";这一句改成你查询结果的语句就行了。
      

  5.   

    已经换了查询结果语句试过了,绑定也绑定了,也传递给报表引擎了,还是不行,是不是报表等的其他问题啊,要不加QQ聊聊?我503959718SqlConnection conn = lianjie.CyCon();
                string strSQL = "select 编号=ID,日期=riqi,金额=jine,事件=shijian from detail3 where riqi like '%" + textBox1.Text + "%' and jine like '%" + textBox2.Text + "%' and shijian like'%" + textBox3.Text.Trim() + "%' and shouzhi like'%" + comboBox1.Text.Trim() + "%'and yonghu ='" + Names + "'"; //原始数据传给报表,让报表去处理   
                SqlDataAdapter sda = new SqlDataAdapter(strSQL, conn);
                DataSet ds = new DataSet(); //实例化DataSet对象
                sda.Fill(ds); //使用SqlDataAdapter对象的Fill方法填充DataSet            bb myReport = new bb();
                myReport.SetDataSource(ds);
                crystalReportViewer1.ReportSource = myReport;  
      

  6.   

    我看走眼了,呵呵!
    bb myReport = new bb(); //这一句是什么呀? 应试是这样
    CrystalReport1 myReport = new CrystalReport1();    myReport.SetDataSource(ds);
      crystalReportViewer1.ReportSource = myReport;
      

  7.   

    bb myReport = new bb(); //这一句是什么呀? 
    bb是我的报表名称,我猜也是我水晶报表直连数据库的问题,能告诉我一声应该怎么建这个报表吗?
      

  8.   

    水晶报表是用推式做的,参考阿泰教程吧!
    http://topic.csdn.net/u/20090626/18/0e7d0af0-2555-479d-9cb5-84175787f2cd.html
      

  9.   

        string reportPath = Server.MapPath("crystalreport1.rpt");这句没看懂~~~我做的是windows窗体程序~~~
      

  10.   

    string reportPath = Server.MapPath("crystalreport1.rpt");
    指向报表文件存放路径而矣!