知方号

知方号

微软ReportViewer报表的制作(简单8步)

微软ReportViewer报表的制作(简单8步)

关于微软ReportViewer的教程,网上有很多,但很多都是VS2010版本以下,与在VS2010版本上做起来好像有点不太一样,而且讲得也不是太清楚,我参考其中一些教程,总结了一下,对在vs2010编译器下,创建web应用程序并添加微软自带的报表(ReportViewer),然后绑定数据库中数据的过程步骤作了一些记录。

下面为具体步骤,可分8步(这里所有的文件命名都是默认的,数据库字段字自己设定)。 

步骤1:在Default.aspx文件中添加两个控件:ScriptManager和ReportViewer。 

步骤2:添加报表需用的数据集(.xsd文件)。       右键项目名称 -〉添加 -〉新建项 -〉在 数据 模板中选择 数据集 点击 添加,页面会转到 DataSet1.xsd 页面中。 

步骤3:为报表量身定做数据结构。      在DataSet1.xsd 页面的空白处右键 -〉添加数据表 ,再在数据表的空白处右键 -〉添加列。重复添加报表需要的列,添加列的同时可以在属性框中修改该列的数据类型。报表可能需要用到多个数据表,没关系,这里先将需要的字段全部添加进来,不限制一张表的数量。如下图:

 

步骤4:添加报表文件(.rdlc文件)。右键项目名称 -〉添加 -〉新建项 -〉在 Reporting 模板中选择 报表 点击 添加,页面会转到Report1.rdlc设计页面中。

步骤5:绑定数据集和设计报表样式。在Report1.rdlc设计页面中,会有一个空报表,在工具箱中拖一个 表 控件到空报表中,这时会弹出 数据集属性窗口 在数据源下拉框下选择 DataSet1 点 确定 完成对rdlc和dataset的绑定。现在我们看到一张两行三列的表,第一行为表头部分第二行为数据部分。我们可以通过右键报表对表样式进行编辑,如插入/删除行列,合并等操作,也可以在报表中添加子报表,报表花样凡多,这里不赘述。设计完样式后,须在报表的数据部分绑定数据集中相应的字段(点击文本框右上角小标记即可选择)。我简单做了一下效果如下图([f1]-[f6]为绑定好的字段名):

 

步骤6:为报表添加参数。在报表数据视图中右键参数节点,选择添加参数,会弹出一个报表参数属性窗口,我这里默认参数名称和类型,点击确定完成添加(如没有找到报表数据视图可在视图菜单下选择报表视图)。在报表中任意一个文本框上,右键-〉表达式,会弹出表达式窗口,在类别下选择参数选项,双击参数值,可为该文本框绑定参数值。(参数值必不可少,原因不明。。。)。添加参数后报表如下图所示:

 

步骤7:绑定reportviewer和rdlc。点击reportviewer控件右上角的小三角,绑定Report1.rdlc。绑定后,在Default.aspx文件的源下面会多一个Datasource节点。

步骤8:在Default.aspx页面中添加一个Button按钮,用于确定加载报表(注,加载报表的事件不就交给page_load事件)。在Default.aspx.cs文件中添加3个命名空间,using System.Data.SqlClient;using System.Data;using Microsoft.Reporting.WebForms;。再完善Button1事件,以我的数据库为例,代码如下:

protected void Button1_Click(object sender, EventArgs e) { SqlConnection myConn = new SqlConnection(@"Data Source=PYL-PCSQLEXPRESS;Initial Catalog=MyDB;User ID=giser;Password=giser"); string cmdStr = "SELECT f0 as f1,f1 as f2,f2 as f3,f4,f5,f6 from myTable1,myTable2 where myTable1.f1=myTable2.f4"; SqlDataAdapter myda = new SqlDataAdapter(cmdStr, myConn); DataSet myds = new DataSet(); myConn.Open(); myda.Fill(myds); myConn.Close(); //ReportParameter可以对报表的某个文本框赋值,右建报表的文本框,单击“表达式”在“参数栏”里双击参数即可为该文本框设定值 ReportParameter rptParaA = new ReportParameter("ReportParameter1", "测试报表参数"); ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA }); //注:"DataSet1"与前台aspx文件的DataSources的Name属性一致 ReportDataSource rds = new ReportDataSource("DataSet1", myds.Tables[0]); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.DataSources.Add(rds); ReportViewer1.LocalReport.Refresh(); }

最后按ctrl + F5调试,运行结果如下图:

 

报表制作完毕!

PS:添加一个表的时候,默认是表头只有一行,但有些报表的表头可能有多行,上面这个报表表头就有两行,如果要再添加一行表头,则必须右键表头行添加,而不能右键数据行添加。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。