有人说我写东西比较啰嗦,呵呵,这次简单点。
先建个水晶报表工程
创建完后,先把报表界面关了,新建个dataset
在里面创建个表,mytable
根据需要定义几个字段
然后设计报表,选数据源
报表如下
在窗体里写上代码
1 private void Form1_Load(object sender, EventArgs e)
2 {
3 //填充dataset,这里就可以承接任何接口,数据库,数组啥得都行
4 DataSet1 ds1 =new DataSet1();
5 ds1.mytable.AddmytableRow("a1","a2","a3","a4","a5",1,1,1,1,1);
6 ds1.mytable.AddmytableRow("b1","b2","b3","b4","b5",1,1,1,1,1);
7 ds1.mytable.AddmytableRow("c1","c2","c3","c4","c5",1,1,1,1,1);
8 ds1.mytable.AddmytableRow("d1","d2","d3","d4","d5",1,1,1,1,1);
9 ds1.mytable.AddmytableRow("e1","e2","e3","e4","e5",1,1,1,1,1);
10
11 CrystalReport1 cr1 =new CrystalReport1();
12 cr1.SetDataSource (ds1);
13 crystalReportViewer1.ReportSource = cr1;
14 }
2 {
3 //填充dataset,这里就可以承接任何接口,数据库,数组啥得都行
4 DataSet1 ds1 =new DataSet1();
5 ds1.mytable.AddmytableRow("a1","a2","a3","a4","a5",1,1,1,1,1);
6 ds1.mytable.AddmytableRow("b1","b2","b3","b4","b5",1,1,1,1,1);
7 ds1.mytable.AddmytableRow("c1","c2","c3","c4","c5",1,1,1,1,1);
8 ds1.mytable.AddmytableRow("d1","d2","d3","d4","d5",1,1,1,1,1);
9 ds1.mytable.AddmytableRow("e1","e2","e3","e4","e5",1,1,1,1,1);
10
11 CrystalReport1 cr1 =new CrystalReport1();
12 cr1.SetDataSource (ds1);
13 crystalReportViewer1.ReportSource = cr1;
14 }
这就完成了~~
PS1
可以配合 http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html 实现更灵活的效果
PS220080917: 补充一下一个基础的数据库读取,替换文中的自填充ds段:
SqlConnection conn = new SqlConnection("server=xxx.;Uid=sa;Pwd=;database=test");
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select a1,b1,c1,d1,e1 from test", conn);
DataSet ds = new DataSet();
da.Fill(ds1, "mytable"); //特别注意此处的表名,需与设计时的表名一致
conn.Close();