rdlc报表

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

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

今天的主角就是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 的默认代码替换为以下代码:

    C#

    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”运行应用程序并查看报表

  

时间: 2024-10-21 19:28:25

rdlc报表的相关文章

RDLC报表钻取空白页问题

在修改报表查询条件时,钻取页突然空白了,百思不得其解,之前好好的,研究了一个下午和一个晚上,查资料等等,网上很多资料都是设置报表的 ConsumeConteinerWhitespace = True 以及设置BODY的大小不能大于报表的SIZE,问同事,说是报表参数过多,正准备修改成一个参数,但是在删除参数时,想到之前刚做钻取时,因为参数不对所以显示不出来,设置了允许空和允许NULL,才显示出来数据,一查,有个新增参数果然没设,设了之后立即显示出来了,大意了,这种小问题,特记下来,以后认真对待问

Asp.net中动态控制RDLC报表 自定义RDLC

转载自: http://dlwang2002.cnblogs.com/archive/2006/05/27/410499.html 在asp.net程序中,可以选择使用水晶报表,功能确实强大.但是web版的水晶报表好像存在版权的问题.如果所作报表不是复杂的一塌糊涂的话,可以使用微软自带的Rdlc报表.已经有老兄做出了不少诠释:http://www.cnblogs.com/waxdoll/更多资料可以在这里找到:http://www.gotreportviewer.com/Rdlc优点:1:Rdl

vs 2015 rdlc报表绑定datagridview中的数据

这几天一直想要实现rdlc报表绑定datagridview中的数据,始终在虚拟表向rdlc报表绑定这一步上出错.今天从下午4点到七点四十一直在尝试.最终还是实现了,最然并不知所以然,这个问题还是以后在考虑吧,目前的项目要紧. 首先是  datagridview中的数据传到虚拟表中. for (int i = 0; i < dgvscan.Columns.Count - 1; i++) { dtout.Columns.Add(dgvscan.Columns[i].Name); } //添加行 fo

RDLC报表之动态生成报表

首先,必须感谢和致敬蜡人张前辈: http://waxdoll.cnblogs.com/archive/2006/02/25/337713.html 2.微软GotReportViewer官方的案例: http://www.gotreportviewer.com/(约有20来个,很详细.有时候会上不了) ) 前段时间,做了RDLC报表,主要是三块功能: 1.从DataGrid提取数据,然后创建对应的RDLC报表文件,以利用ReportViewer类的打印排版的功能(其中做了个提取数据的通用函数,

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

原文:DevExpress的XtraReport和微软RDLC报表的使用和对比 我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在Winform开发中经常使用到一些报表,有时候使用XtraReport报表,有时候也使用RDLC报表,因此本篇主要介绍这两种不同类型报表的使用,以及对比它们的差异性,以便我们更好的掌握了解. 1.XtraReport报表的

mvc 在view视图中直接输出rdlc报表文件(Excel、PDF、Word)

给一段代码做参考 public ActionResult RdlcReport(string code) { LocalReport localReport = new LocalReport(); EasyMan.Dtos.ErrorInfo err = new EasyMan.Dtos.ErrorInfo(); err.IsError = false; try { var report = _reportAppService.GetReport(code, 0, false); DataTa

在mvc视图中实现rdlc报表展示

需求:在view视图页面中嵌入rdlc报表,rdlc的xml为动态传入的xml字符串.本项目是基于abp框架 可能出现问题: 1.rdlc报表是由asp.net的服务器控件ReportViewer来支持的,view视图不能直接使用服务器控件 2.ReportViewer需要通过aspx页面来承载,并在服务端事件中完成对控件的xml绑定.datatable绑定 3.由于是基于abp框架的项目,不能在aspx.cs后台页面中直接实例化IxxAppService接口的实现类 想达到的效果如下图: 上部

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

RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用RDLC也是一个比较方便操作,如可以参考文章<DevExpress的XtraReport和微软RDLC报表的使用和对比>或者<会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载>进行了解.但是基于MVC方式,如何构建和展现RDLC报表呢?本文主要介绍如何在基于MVC4+EasyUI的Web开发框架上进行RDLC的集成和使用. 1.RDLC绑定数据源 RDLC的报表设计,是使用

RDLC报表:每页显示N条记录

摘要: 提供一种方案,使分页浏览的报表每页显示固定条数记录,最后一页记录条数不足的,用空行补齐. 示例: 记录共7条,每页显示5条记录: 下载代码(vs2008,需要安装AdventureWorks数据库) 下载代码(vs2008,不需要数据库支持) 下载代码(仅rdlc报表定义文件) 原理: 由于表的分组包含“在起始处分页”和”在结束处分页”的功能,所以我们考虑先将数据分成若干个记录条数为N的组, 再启用“在结束处分页”的功能. 那么,如何分组呢?考虑记录的下标为 0,1,2,3... 的自然

关于Rdlc报表无浏览打印 图片

1.创建一个将图片转化成字节数组的方法 /// <summary> /// 将图片转成字节数组 /// </summary> /// <param name="bitmap">图片</param> /// <returns></returns> private byte[] BitmapToBytes(Bitmap bitmap) { MemoryStream ms = null; try { ms = new M