在做一个水晶报表的项目,原来是从数据库里读取一个DataSet然后填充,现在想用对象来填充不知如何实现。
static List<Depart> depart = new List<Depart>();想把这个depart对象作为数据源,请问怎么实现呢。
另外:数据表里的数据是从depart 里插入的,一个depart对象对应一条记录。

解决方案 »

  1.   

    水晶报表有两种模式 一种是推模式 另一种是拉模式 楼主说的应该是推模式吧
    推模式灵活 可以自定义要查询的记录  private void Form1_Load(object sender, EventArgs e)
            {
                
                ZyDataSet zset = new ZyDataSet();
                this.everyDayOneYearTableAdapter1.Fill(zset.EveryDayOneYear);
                ZyCrystalReport report = new ZyCrystalReport();
                report.SetDataSource(zset);            this.crystalReportViewer1.ReportSource = report;
                
            }        private void 自定义查询ToolStripMenuItem_Click(object sender, EventArgs e)
            {            ZyDataSet zset = new ZyDataSet();            ZyCrystalReport report = new ZyCrystalReport();            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=master");            SqlCommand comm = conn.CreateCommand();
                comm.CommandText = "select * from EveryDayOneYear where id>100";            //为了填充DataSet
                SqlDataAdapter adp = new SqlDataAdapter();
                adp.SelectCommand = comm;
                adp.Fill(zset.EveryDayOneYear);            report.SetDataSource(zset);
                this.crystalReportViewer1.ReportSource = report;        }        private void 在类中更改ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                ZyDataSet zset = new ZyDataSet();
                this.everyDayOneYearTableAdapter1.selectcommand.CommandText = "select * from EveryDayOneYear where id<20";
                this.everyDayOneYearTableAdapter1.Fill(zset.EveryDayOneYear);            ZyCrystalReport report = new ZyCrystalReport();
                report.SetDataSource(zset);
                this.crystalReportViewer1.ReportSource = report;        }但愿对你有用
      

  2.   

    我不想用数据库,是直接生成list对象,里面有很多条对象记录,动态绑定到报表里,不知道该怎样做。数据库的我会绑定,但是数据库比较不省资源,打开连接有点多,就是要换成这个