也是第一次接触报表这个东西。现在在我理解,报表无非就是两个内容,格式和数据。

  格式没有多少了解,就记录了,以后再续。数据的绑定和结果的显示是怎么实现的呢?

今天的主角就是rdlc这个文件和ReportViewer这个控件。先说ReportViewer,在客户端程序中它就是用来绑定数据源和显示最终的报表的。

报表文件(.rdlc)也要绑定到这个数据集,并且选择好字段。最后将报表文件(.rdlc)添加到ReportViewer控件中就完事。

一个傻瓜式例子:

    

创建新的 Windows 窗体应用程序项目

  1. 在“文件”菜单上,指向“新建”,然后选择“项目”。

  2. 在“新建项目”对话框中的“已安装的模板”窗格中,选择“Visual C#”,然后选择“Windows 窗体应用程序”模板。根据 Visual Studio 中的启动设置,“C#”节点可能会显示在“其他语言”下。

  3. 键入项目的名称“BusinessObject”,并单击“确定”。

创建要用作数据源的业务对象

  1. 从“项目”菜单中选择“添加新项”。

  2. 在“添加新项”对话框中,选择“类”,键入文件名“BusinessObjects.cs”,然后单击“添加”。

    新文件将添加到项目并且在 Visual Studio 中自动打开。

  3. 将 BusinessObjects.cs 的默认代码替换为以下代码:

     
    using System;
    using System.Collections.Generic; // Define the Business Object "Product" with two public properties
    // of simple datatypes.
    public class Product {
    private string m_name;
    private int m_price; public Product(string name, int price) {
    m_name = name;
    m_price = price;
    } public string Name {
    get {
    return m_name;
    }
    } public int Price {
    get {
    return m_price;
    }
    }
    } // Define Business Object "Merchant" that provides a
    // GetProducts method that returns a collection of
    // Product objects. public class Merchant {
    private List<Product> m_products; public Merchant() {
    m_products = new List<Product>();
    m_products.Add(new Product("Pen", 25));
    m_products.Add(new Product("Pencil", 30));
    m_products.Add(new Product("Notebook", 15));
    } public List<Product> GetProducts() {
    return m_products;
    }
    }
  4. 从“项目”菜单中,选择“生成解决方案”。这将为对象创建一个程序集,您稍后会将此程序集用作报表的数据源。

使用报表向导向项目添加报表

  1. 从“项目”菜单中选择“添加新项”。

  2. 在“添加新项”对话框中,选择“报表向导”。为报表键入名称,并单击“添加”。

    这将启动报表向导中的数据源配置向导。

  3. 在“选择数据源类型”页上,选择“对象”,并单击“下一步”。

  4. 在“选择数据对象”页中的“BusinessObject”下,展开类的层次结构,直到在列表中看到“产品”。选择“产品”,再单击“完成”。

    现在已返回到“报表向导”。请注意,新数据源对象已添加到“解决方案资源管理器”中的项目中。

  5. 在“数据集属性”页中的“数据源”框中,确认选中“全局”。

  6. 在“可用数据集”框中,确认选中“产品”。

  7. 单击“下一步”。

  8. 在“排列字段”页中,执行以下操作:

    1. 将“名称”从“可用字段”拖到“行组”框。

    2. 将“价格”从“可用字段”拖到“值”框。

  9. 单击两次“下一步”,然后单击“完成”。

    这将创建 .rdlc 文件并在报表设计器中将其打开。所创建的 tablix 会立即显示在设计图面中。

  10. 保存 .rdlc 文件。

向报表中添加 ReportViewer 控件

  1. 在解决方案资源管理器的“设计”视图中打开该 Windows 窗体。默认情况下,窗体名称为“Form1.cs”。

  2. 在“报表”组中,将“ReportViewer”图标从“工具箱”拖到窗体上。

  3. 在 ReportViewer 控件中,通过单击右上角的智能标记标志符号打开智能标记面板。

  4. 在“选择报表”列表中,选择刚才设计的报表。默认情况下,名称为 Report1.rdlc。请注意,将为报表中使用的每个对象数据源相应自动创建名为 ProductBindingSource 的 BindingSource 对象。

  5. 在打开的智能标记面板中,选择“在父容器中停靠”。

为 BindingSource 对象提供数据源实例

  1. 在解决方案资源管理器中,右键单击“Form1.cs”,然后选择“查看代码”。

  2. 在“Form1.cs”的分部类定义中,在构造函数前添加以下代码作为第一行。

     
     
    // Instantiate the Merchant class.
    private Merchant m_merchant = new Merchant();
  3. 在“Form1_Load()”方法中,在 RefreshReport 前添加下列代码作为第一行:

     
     
    // Bind the Product collection to the DataSource.
    this.ProductBindingSource.DataSource = m_merchant.GetProducts();

运行此应用程序

  • 按“F5”运行应用程序并查看报表

  

rdlc报表的更多相关文章

  1. 关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出”

    问题:关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出” 办法:在容纳ReportViewer的窗体后台代码中,添加如下代码即可 protected override ...

  2. rdlc报表DEMO

    rdlc报表demo  .net 4.0  vs2013 文本框,图像控件,checkbox样式的打印 下载链接

  3. rdlc报表大小设置

    参考:http://stackoverflow.com/questions/427730/how-to-limit-rdlc-report-for-one-page-in-a-pdf 主要设置为:报表 ...

  4. 基于MVC4+EasyUI的Web开发框架经验总结(15)--在MVC项目中使用RDLC报表

    RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用RDLC也是一个比较方便操作,如可以参考文章<DevExpress的XtraReport和微软RDL ...

  5. DevExpress的XtraReport和微软RDLC报表的使用和对比

    我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在W ...

  6. 会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载

    在上篇<会员管理系统的设计和开发(1)>介绍了关于会员系统的一些总体设计思路和要点,经过一段时间开发,软件终于完成并发布.在这期间,碰到了不少技术难点,并积累了不少开发心得和经验,本篇继续 ...

  7. C#制作RDLC报表

    报表以前我只做过水晶报表,但是最近发现家里的VS上面居然没有水晶报表,发现水晶报表现在貌似已经不能完全免费的使用了,为了保险起见,就用了VS自带的RDLC报表,用完感觉其实也是够用的嘛~ 建立一RDL ...

  8. 打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机

    如果一台电脑同时连接多个打印机,而且每个打印机使用的纸张大小各不相同(比如:票据打印钱用的小票专用张,办公打印机用的是A4标准纸),在处理打印类的需求时,如果不用代码干预,用户必须每次打印时,都必须在 ...

  9. C# WinForm RDLC报表不预览直接连续打印

    用微软的RDLC报表直接打印不预览 直接上代码. //打印清单 System.Data.DataTable dt = print_QD(dr); ReportViewer rvDoc = new Re ...

  10. RDLC报表 在WinForm里运行出现 未能加载文件或程序集microsoft.reportviewer.winforms

    做一下记录顺便帮助一下遇到问题的朋友. 做RDLC报表在WinForm运行,在VS里面调试引用了“Microsoft.ReportViewer.Common.dll”和“Microsoft.Repor ...

随机推荐

  1. mysql主从配置(清晰的思路)

    mysql主从配置.鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本 ...

  2. XAMPP下的composer的安装

    很多开源软件,都需要通过composer来安装,Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 声明关系 比方说,你正在创建一个项目, ...

  3. bzoj2597

    非常好的网络流题目 首先这里用到了求补集的思想,我们可以先求不满足的三元对的情况 设A-->B代表A赢B 由于最后所有胜负关系都确定,一定是一个完全图,所以任意一个不合法的三元对,单独取出来一定 ...

  4. 在Xcode中使用Clang Format

    Xcode中的Re-Indent,顾名思义,只是一个调整缩进的功能,完全依赖它来进行代码格式化显然不够用.我们使用了一个叫做ClangFormat-Xcode的插件,配合Re-Indent一起来做代码 ...

  5. 4G来临 IT业转型之路当在不远

    摘 要:4G商用未启,品牌营销争夺已经展开.目前,除了中国移动推出全新4G品牌“andM”之外,中国电信和中国联通均选择继续沿用3G的品牌. 4G商用未启,品牌营销争夺已经展开.12月10日,中国电信 ...

  6. 2 hive的使用 + hive的常用语法

    本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...

  7. php中传值与传引用的区别。什么时候传值什么时候传引用?

    值传递:   函数范围内对值的任何改变在函数外部都会被忽略; 引用传递: 函数范围内对值的任何改变在函数外部也能反映出这些修改: 优缺点:按值传递时,php必须复制值.特别是对于大型的字符串和对象来说 ...

  8. Centos6.5 nginx+nginx-rtmp配置流媒体服务器

    之前使用命令方式安装nginx并配置了反向代理,由于想做一个视频直播的小项目,查了流媒体服务器的方案,发现nginx有相关模块,于是开始搞起. nginx-rtmp模块需要在nginx编译时,以模块方 ...

  9. in_array严格模式和普通模式的区别

    貌似是因为test转整型变0  0和0 匹配能成功 返回真 启用严格模式发现没有这个问题

  10. SQL ID自增列从1开始重新排序 分类: SQL Server 2014-05-19 14:46 652人阅读 评论(0) 收藏

    数据库中把ID自增长重置成1: 一般做法:(太麻烦) 复制表数据->删除原表.新建一张表->粘贴: 新方法: 数据库中:新建查询->复制.粘贴一下代码->修改表名,执行即可(先 ...