VS2010 C# ReportViewer控件新手上路心得

环境:Visual Studio 2010, C#;

前言:本来是用VS2010连接Oracle数据库做一个报表功能,数据集设置部分出了些问题还未解决,因此先用本地动态数据为测试用例先熟悉VS自带的ReportViewer控件。新手上路,共同进步。牛蛙可以忽略。

本文主要包含以下内容:

一、ReportViewer使用小例子的完整步骤(新建-设计-编码-调试-结果);

二、ReportViewer使用过程常见问题及关键注意点(仅为本人个人观点);

三、参考资料;

四、心得体会;

===================================================================================================================================

一、ReportViewer使用小例子的演示。

1、新建项目。

新建一个Windows窗口程序项目,命名为“Demo";

扫描二维码关注公众号,回复: 5417774 查看本文章

2、加入ReportViewer控件。

(1)在默认出现的Form1.cs[设计]视图中手动调节下Form1窗体的大小,左侧工具箱-->报表-->双击其中的”ReportViewer";

(图 1)

(2)切换至设计窗口,选择ReportVierwer控件右上角黑色小三角,显示“ReportViewer任务”,选择”在父容器中停靠“;

(图 2)

3、添加数据集。

(1)在”解决方案资源管理器“的本项目”Demo“上右键,-->添加-->新建项...。在”已安装的模板“(左侧)选择”数据“,在对应的右侧栏中选”数据集“,并为其命名为”testDataSet.xsd“。

(图 3)

(2)在自动显示的testDataSet.xsd窗口空白处右键,-->添加-->数据表。

(图 4)

(3)点击表头为其改名为”testDataTable",并在下一行的空白处右键,-->添加-->列。按快捷键“Ctrl + L”,共建四个列,并将列名自定义修改。(及时保存)

(图 5)

4、添加报表。

(1)同添加数据集相似。在项目名称上右键,-->添加-->新建项...。”已安装模板“中选择”Reporting“,相应右侧选择”报表“,在下面名称中改为”testReport.rdlc“。

(图 6)

(2)在新视图的主体部分(黑色方框内部为主体部分,外部为报表部分)空白处右键,-->插入-->表。

(图 7)

(3)会自动弹出”数据集属性“对话框,将”名称“改为”DataSetName"(这个名称很重要,后面代码中要用到,故要记清),“数据源”选择刚新建的“testDataSet",”可用数据集“会自动选择”testDataTable“,"确定”。

(图 8)

(4)在testReport.rdlc[设计]视图下,刚建的“表”只有三列,在任一单元格上右键,-->插入列-->靠右。在第一行的”表头“输入这三列的表头,在第二行的”数据“行,鼠标移动每个单元格上,点击单元格右上角的图标,选择相应的列。

(图 9)

5、绑定报表。

返回”Form1.cs[设计]"视图,如图 2类似,这次点击“选择报表”右侧的下拉条,选择我们新建的报表“demo.testReport.rdlc",全部保存。

(图 10)

6、添加代码。

查看”Form1.cs“的代码,在Form1_Load()方法中添加代码。代码如下(以下只是Form1_Load()方法的代码,不是全部,添加时需要在using下多加一行)。


    using Microsoft.Reporting.WinForms;
    private void Form1_Load(object sender, EventArgs e)
        {
            loadReport();
            this.reportViewer1.RefreshReport();
        }
 
        public void loadReport()
        {
            DataTable dt = new DataTable();
            //定义本地数据表的列,名称应跟之前所建的testDataTable表中列相同。
            dt.Columns.Add("Column1", typeof(string));
            dt.Columns.Add("Column2", typeof(string));
            dt.Columns.Add("Column3", typeof(string));
            dt.Columns.Add("Column4", typeof(string));
 
            //动态生成一些测试用数据
            for (int i = 0; i < 50; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = "Test01-" + i.ToString();
                row[1] = "Test02-" + i.ToString();
                row[2] = "Test03-" + i.ToString();
                row[3] = "Test04-" + i.ToString();
                dt.Rows.Add(row);
            }
 
            //设置本地报表,使程序与之前所建的testReport.rdlc报表文件进行绑定。
            this.reportViewer1.LocalReport.ReportPath = "testReport.rdlc";
            this.reportViewer1.LocalReport.DataSources.Clear();
            this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetName",dt));
        }


7、运行效果。


--------------------- 
作者:城江再歌山 
来源:CSDN 
原文:https://blog.csdn.net/zshuaihua/article/details/25786077 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/wzk456/article/details/83448928