可这个能力。
例子
this.凭证打印料件1.SetDataSource(this.PrintDataSet)

解决方案 »

  1.   

    report1 rep=new report1();
    rep.SetDataSource(ds.table[0]);
    rep.refresh();
    this.crystalreportview1.reportsource=rep;
      

  2.   

    rep.SetDataSource(ds);
    参数 ds 可以是数据库中并不存在的记录表吗?
    因为中间层提供的ds,是对某些表处理后的到的(比如,把某张表列记录转为行等运算,记录集中的字段,在数据库中并不存在对应的表)
    最后,rep是否需要登录数据库?
    谢谢!!
      

  3.   

    比如:
    数据库中有张成绩表  
    驾驶员姓名  考试科目  成绩
    A             科目1    80
    A             科目2    85
    A             科目3    90经过中间层处理后,提供的数据集ds内容与格式如下:
    驾驶员姓名   科目1   科目2   科目3
    A              80     85       90可否直接设置水晶报表的数据源为 ds,然后直接阅览?
      

  4.   

    可以直接将Dataset的内容送给水井报表的啊。完全没问题!
      

  5.   

    我这里有一段 小代码是从数据库检索,让后将数据传个报表。
    根据时间检索数据:不通过数据向导做连接,先建立与数据库的连接,
      先设置连接字符串:public stratic string strconn = “ Provider=MSDAORA.1;Password=automap;User ID="";Data Source=""”;
     建立连接: OleDbConnection myConn = new OleDbConnection(strconn);
     建立查询时间和连接SQL语句:
      string startTime = dataTimePicher_start.Text;
      string endTime = dataTimePicher_end.Text;
      string myString = "select count(id) from sfj_zxjj where zbh = 01 and ljywbs = 408 and jjsj >to_date ('"+starttime+"','YYYY-MM-DD') and jjsj < to_date('"+endtime+"','YYYY-MM-DD')";
    OleDbCommand myCommand = new OleDbCommand(myString,myConn);
    OleDbDataAdapter myAdapter = new OleDbDataAdapter(myCommand);
    计算结果:string count = myCommand. ExecuteScalar().ToString();
    MessageBox.Show(count)将值传递给报表中的某个字段:TextObject 字段名= this.crystalReport_cktjb1.ReportDefinition.ReportObjects["字段名"] as TextObject;
    Dlxj.Text = count;
    你看对你有没有用!
    具体其他的,你可以看帮助!
      

  6.   

    呵呵,westseason(西城时代) ,不好意思,能否亮些代码。 
    ivt(零下一度(.net版)) 提供的代码好像报错。
      

  7.   

    xjaifly(tiantian),你的代码是不是相当于向水晶报表传递一个变量值,记录集该怎么传递,并且要动态绑定报表字段。
      谢谢大家的帮助,我也该自己试试看了。
      

  8.   

    本问题已经解决,具体解决的办法是:
    把 DataSet 中的内容导出为 xml 文件,水晶报表中的数据源可以设置为导出的 xml 文件。
    希望此办法对大家有帮助,也谢谢大家的热心帮助,再次谢谢!