窗体顶端

 

使用RDLC报表(1) -(4) (一篇好文章收藏并与与大家分享) 

使用RDLC报表(1) -(4)

使用RDLC报表()

  

1       建立数据源

启动VS2005新建一个窗体项目,命名为TestProj

 制作水晶报表

在左边的窗体内选择添加新数据源或在菜单上操作添加新数据源

 制作水晶报表

选择后出现对话窗体,选择数据库,进入下一步

 制作水晶报表

本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET,地址:http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html)。

 制作水晶报表

选择数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件设置。

 制作水晶报表

进行下一步,至显示出库文件内的表及视图,然后打开表,并选择其中的Employees,选择完成。

 制作水晶报表

在数据源窗口中显示出所选择表及表内的字段,以备使用。

 制作水晶报表

同时在资源管理器中,也可以看到新增加的数据文件。

 制作水晶报表

2       报表浏览器

在新建的窗体内,放入报表浏览控件:

 制作水晶报表

此报表浏览控件集成了报表查看及打印预览的功能,可直接输出至打印机,也可直接输出至Excel文件或PDF文件,对于喜欢看Excel表格的客户来说,这个报表控件非常不错。关于此报表的来源及台前幕后的各种说法,请自己查询相关的网站。

3       建立报表文件

选中报表浏览器控件后,在控件的右上角会出现一个小三角,点击后,出现一个菜单,选择设计新报表或在解决方案资源管理器中添加一个新的报表文件:

 制作水晶报表

双击报表项内的,则设计空白表内生成一个表格,我们可以在表格内添加数据项。

 制作水晶报表

此报表的设计方式类似于MS以前的VB下报表设计环境。在报表设计器中,我将一份报表分为五个部分,从上至下为:报表标题区、列标题区、数据显示区、合计及页脚。如果将报表的设计形式显示出页眉及页脚,报表的形式会看得更清楚些:

选择页眉及页脚:

 制作水晶报表

显示结果:

 制作水晶报表

现在开始设计报表:

页眉区内放入一个文本框,将内容更改为测试报表,居中,字体放大加粗:

 制作水晶报表

从数据源窗口中选择合适的列,用鼠标拖到报表内的详细信息表格上,数据会自动填入:

 

 制作水晶报表

制作水晶报表

将设计的报表保存后,返回报表浏览窗口,并为报表浏览器选择我们设计的报表:

 制作水晶报表

选中报表文件后,菜单也有所改变:

 制作水晶报表

再为此报表文件指定数据源,选择数据源:

 制作水晶报表

确定,保存文件并运行测试文件。

4       预览

报表生成后预览如下:

 制作水晶报表

是不是很简单?我们也可以对这个简单的报表进行美化,当然,我加上美化的一些功能后,可能效果更差,但此处只是为了演示用法。

Ø         为数据加表格。

在报表设计器中,选择需要加表格框的区域

 制作水晶报表

然后在工具栏中选择边框工具

 制作水晶报表

加什么样的框线根据需要,此处我选择所有框线

 制作水晶报表

看上去比原来的灰线能稍黑一些,在预览时就能看出来了。

Ø         加打印时间显示

加入一个显示打印时间的文本框,在上面按右键,选属性:

 制作水晶报表

文件框属性内,选择后面的表达式生成:

 制作水晶报表

在表达式中选择时间:

 制作水晶报表

不要忘记表达式的前面一定要有一个,如果没有,手工加上一个。为了更符合我们的习惯,前面可以加个说明,如打印时间等,表达式的写法就要稍做改变:还是以开头,后面加上打印时间:,再以连接生成的Now函数即可得到我们想要的样子。

 制作水晶报表

Ø         为行加序号

为了演示,我将序号列加在了表格了最后列

加入一个新的列:

 制作水晶报表

在显示序号的列中输入相关的值:

 制作水晶报表

在此表达式的后面是Nothing,不是null,不要搞错。

 制作水晶报表

三项功能已经完成,预览:

 制作水晶报表

比原来漂亮吗?至少实用了一些。

使用RDLC报表()--使用自定义数据集

<!--[if !supportLists]-->1<!--[endif]-->新建窗体

 制作水晶报表

<!--[if !supportLists]-->2<!--[endif]-->建立数据源

 制作水晶报表

3<!--[endif]-->建立报表

 制作水晶报表

新的数据报表已经生成,下面开始对数据源进行设置。

<!--[if !supportLists]-->4<!--[endif]-->对报表自动生成的数据源进行设置

选择工具栏 à 报表 à 数据源,选中所要修改的数据源后,用重命名对其进行修改,如myds

 制作水晶报表

修改完成后,确定退出此窗口。

选中报表设计器内的表格,显示属性。将表格的数据集名称更改为上面修改的名称。

 制作水晶报表

如果一个报表文件内只有一个数据源,则表格内的数据值可直接写为Fields!字段.Value”的格式,如果包含多个数据源,则要对此字段的取值进行指定,如“=(Fields!字段.value,“数据集名称””

<!--[if !supportLists]-->5<!--[endif]-->手动生成数据源

手动生成的数据集内必须包含报表文件内设计的字段名称,否则会运行出现错误。

生成数据集:

     

  /// <summary>

        /// 报表执行操作

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void button1_Click(object sender, EventArgs e)

        {

            //取得数据集

            string connstring = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";

            System.Data.SqlClient.SqlConnection conn1 = new System.Data.SqlClient.SqlConnection(connstring);

            System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand("select * from customers", conn1);

            System.Data.SqlClient.SqlDataAdapter ada1 = new System.Data.SqlClient.SqlDataAdapter(command1);

            DataSet c_ds = new DataSet();

            try

            {

                conn1.Open();

                ada1.Fill(c_ds);

            }

            finally

            {

                conn1.Close();

                command1.Dispose();

                conn1.Dispose();

            }

 

            //为报表浏览器指定报表文件

            this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.Report1.rdlc";

            //指定数据集,数据集名称后为表,不是DataSet类型的数据集

            this.reportViewer1.LocalReport.DataSources.Clear();

            this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("myds", c_ds.Tables[0]));

            //显示报表

            this.reportViewer1.RefreshReport();

        }

 
View Code

 

运行后的数据显示:

 制作水晶报表

在使用报表向客户展示结果数据时,实时的在报表中显示某些特定的数据是必需的,如:显示的部门、打印的日期等。本文只简单的演示向报表内传入一个字符值。如有其它问题,欢迎讨论。

1、新建一个工程TestReport,一个Form窗体,放入一个TextBox、一个Button按钮,再放入一个ReportViewer控件。
2、在ReportViewer上选择新建一个报表
3、在打开的报表设计器中,选择工具栏的报表中的报表参数,新加一个参数,名称为content,数据类型为string,确定。
4、在报表设计器的页面上放入一个文本框,在文本框上按鼠标右键->属性,在文本框属性窗口中,选择常规选项卡内下部的后面的编辑表达式按钮(就是那个Fx),在此窗口内,左下框内选择参数,在右下框将会出现在上一步中设置的参数,双击此参数,在上面的框内将出现所需要的表达式:=Parameters!content.Value。保存此报表。报表默认名称为Report1.rdlc
5、在Form窗体内双击按钮,编写如下代码:

         

   this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.Report1.rdlc";
            ReportParameter rp = new ReportParameter("content", this.textBox1.Text);
            this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
            this.reportViewer1.RefreshReport();
View Code

相关文章: