在这里祝兄弟 一路顺风,有一个美好的明天。
生活是生活,工作是工作,无论多不爽,工作总是要进行的,否则连活下去的机会都没有了。(没有工作,就没有钱)
今天第一次使用水晶报表。在网上查了一些,看了飞刀的一些文章。可是自己使用起来不好用,不知道为什么。一直在试。总算是成功了。单位使用的是VS2003和它自代的CR9。为什么不用VS2005,呵呵。。。不知道。
下面是我的方法和相应的代码。我采用的是用.xsd文件做为数据源来处理的。
建立一个.xsd文件。
1,在“解决方案资源管理器” ->选择你的项目右键->添加新文件->选择.xsd文件(数据集)
2,在左边的“服务器资源管理器”中选择相应的表,拉进来就行。
建立一个rpt文件,也就是报表文件
1,在“解决方案资源管理器” ->选择你的项目右键->添加新文件->选择.rpt文件(报表)
2,选择“空白报表”
3,在左边的“字段资源管理器”中选择“数据库字段”,右键,在这里选择你要操作的数库与表。这里不多说了,比较简单,
“添加/删除数据库” - >一般来说,我们的数据库都是OLEDB->选择你的数据库类型,是SQL server还是ORcle或是ACCESS->我用的是SQL server所以这里要添加数据库的信息->选择你要的表
4,在当前数据集中就会出现了。把它们放到“选定表中”。
建立一个.aspx文件
1,在“解决方案资源管理器” ->选择你的项目右键->添加新文件->选择.aspx文件
2,在“工具栏”中拖入一个CrystalReportViewer
在page_load中加入代码
SqlConnection conn
=
new
SqlConnection(
"
server=.;uid=sa;pwd=chen123;database=C_News;
"
);
conn.Open();
SqlCommand cmd = new SqlCommand( "" ,conn);
// cmd.CommandText = "select * from C_Article a left join C_BigClass b on a.BigClass=b.BigClass";
cmd.CommandText = " select * from C_Article " ;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, " DataSet1 " );
//这里要注意,在CR9中必须要加上名字,而且要与表名一样,不然会提示错误。
ds.Tables[ 0 ].TableName = " C_Article " ;
CrystalReport1 oCR = new CrystalReport1();
oCR.SetDataSource(ds);
this .CrystalReportViewer1.ReportSource = oCR;
this .CrystalReportViewer1.DataBind();
conn.Close();
conn.Open();
SqlCommand cmd = new SqlCommand( "" ,conn);
// cmd.CommandText = "select * from C_Article a left join C_BigClass b on a.BigClass=b.BigClass";
cmd.CommandText = " select * from C_Article " ;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, " DataSet1 " );
//这里要注意,在CR9中必须要加上名字,而且要与表名一样,不然会提示错误。
ds.Tables[ 0 ].TableName = " C_Article " ;
CrystalReport1 oCR = new CrystalReport1();
oCR.SetDataSource(ds);
this .CrystalReportViewer1.ReportSource = oCR;
this .CrystalReportViewer1.DataBind();
conn.Close();