先设计报表(确定数据结构) 执行sql,将数据集传递给报表

解决方案 »

  1.   

    ????????
       设计报表 是确定怎么显示数据吗?
       sql 在那运行啊?
       怎么把查询结果传递给报表啊 ?
       哥哥  能说的详细点吗
      

  2.   


     To: "设计报表 是确定怎么显示数据吗?" 你在工程里添加一个.rpt文件后,你没有设计格式吗,差不多就是你说的怎么显示数据。 sql 是在程序里运行,用来生成数据集 报表文件的对象实例有一 SetDataSource 方法,可用来将数据集传给报表对象。
     
      

  3.   

    老大 能说的再详细一些吗
         我先加一个空报表(没连数据库) 设计格式 没办法设计字段啊
         在程序里 编写sql语句 
         报表文件的对象实例 是 ReportDocument吗?我看他的SetDataSource(object vlaue)
         具体属性是怎么设置的啊 ?
      

  4.   


     to:"我先加一个空报表(没连数据库) 设计格式 没办法设计字段啊"
    没连数据库也可设计
    你在项目里添加一个架构,然后在架构里确定数据结构比如你的报表文件是 MyRpt.rpt 那么报表文件的对象实例是指下面的Rpt
    MyRpt Rpt = new MyRpt();接着: Rpt.SetDataSource(object vlaue); 
    一般vlaue是你的sql生成的DataTable
    另sql生成的DataTable的结构要与你添加的架构里的数据结构一致...写到这里,累啊~~~
      

  5.   

    好的 辛苦了 你后面说的我基本都明白了 
       就是那个架构不明白 应该是DataSet.xsd 那个吧
       多谢了  
       我找到帮助文件 看先
      

  6.   


     架构不变,可把这个变量传递给sql,
     sql返回的数据集,就是变量查询记录,然后赋给报表
     另架构是.xsd文件.
      

  7.   

    报表的架构是提前确定的,然后向报表提供数据源,比如填充好的dataset
      

  8.   

    多谢各位 尤其是 chNET(有神论者) 
    问题解决了
    简单的说 我在架构dataset上放了两个表s,n 添加两个表的关联
    生成解决方案 在rpt上建立与dataset的数据库联接 设计报表格式
    在程序里写
    OleDbConnection oleConn = new 
    OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mc.mdb");
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter ("SELECT * FROM s WHERE s.ID=0", oleConn);DataSet dataSet = new DataSet ();
    // 连接到数据库、从数据库中获取数据然后断开数据库连接
    dataAdapter.Fill (dataSet,"s");
    dataAdapter = new OleDbDataAdapter ("SELECT * FROM n ", oleConn);
    dataAdapter.Fill (dataSet,"n");
    // 使用“报表引擎”对象模型将填充的数据集//传递给报表
    oRpt.SetDataSource (dataSet);
    // 将带有数据的报表对象绑定到 Windows 窗体 Viewer
    crystalReportViewer1.ReportSource = oRpt;