rdlc报表
也是第一次接触报表这个东西。现在在我理解,报表无非就是两个内容,格式和数据。
格式没有多少了解,就记录了,以后再续。数据的绑定和结果的显示是怎么实现的呢?
今天的主角就是rdlc这个文件和ReportViewer这个控件。先说ReportViewer,在客户端程序中它就是用来绑定数据源和显示最终的报表的。
报表文件(.rdlc)也要绑定到这个数据集,并且选择好字段。最后将报表文件(.rdlc)添加到ReportViewer控件中就完事。
一个傻瓜式例子:
创建新的 Windows 窗体应用程序项目
在“文件”菜单上,指向“新建”,然后选择“项目”。
在“新建项目”对话框中的“已安装的模板”窗格中,选择“Visual C#”,然后选择“Windows 窗体应用程序”模板。根据 Visual Studio 中的启动设置,“C#”节点可能会显示在“其他语言”下。
键入项目的名称“BusinessObject”,并单击“确定”。
创建要用作数据源的业务对象
从“项目”菜单中选择“添加新项”。
在“添加新项”对话框中,选择“类”,键入文件名“BusinessObjects.cs”,然后单击“添加”。
新文件将添加到项目并且在 Visual Studio 中自动打开。
将 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;
- }
- }
- using System;
从“项目”菜单中,选择“生成解决方案”。这将为对象创建一个程序集,您稍后会将此程序集用作报表的数据源。
使用报表向导向项目添加报表
从“项目”菜单中选择“添加新项”。
在“添加新项”对话框中,选择“报表向导”。为报表键入名称,并单击“添加”。
这将启动报表向导中的数据源配置向导。
在“选择数据源类型”页上,选择“对象”,并单击“下一步”。
在“选择数据对象”页中的“BusinessObject”下,展开类的层次结构,直到在列表中看到“产品”。选择“产品”,再单击“完成”。
现在已返回到“报表向导”。请注意,新数据源对象已添加到“解决方案资源管理器”中的项目中。
在“数据集属性”页中的“数据源”框中,确认选中“全局”。
在“可用数据集”框中,确认选中“产品”。
单击“下一步”。
在“排列字段”页中,执行以下操作:
将“名称”从“可用字段”拖到“行组”框。
将“价格”从“可用字段”拖到“值”框。
单击两次“下一步”,然后单击“完成”。
这将创建 .rdlc 文件并在报表设计器中将其打开。所创建的 tablix 会立即显示在设计图面中。
保存 .rdlc 文件。
向报表中添加 ReportViewer 控件
在解决方案资源管理器的“设计”视图中打开该 Windows 窗体。默认情况下,窗体名称为“Form1.cs”。
在“报表”组中,将“ReportViewer”图标从“工具箱”拖到窗体上。
在 ReportViewer 控件中,通过单击右上角的智能标记标志符号打开智能标记面板。
在“选择报表”列表中,选择刚才设计的报表。默认情况下,名称为 Report1.rdlc。请注意,将为报表中使用的每个对象数据源相应自动创建名为 ProductBindingSource 的 BindingSource 对象。
在打开的智能标记面板中,选择“在父容器中停靠”。
为 BindingSource 对象提供数据源实例
在解决方案资源管理器中,右键单击“Form1.cs”,然后选择“查看代码”。
在“Form1.cs”的分部类定义中,在构造函数前添加以下代码作为第一行。
- // Instantiate the Merchant class.
- private Merchant m_merchant = new Merchant();
- // Instantiate the Merchant class.
在“Form1_Load()”方法中,在 RefreshReport 前添加下列代码作为第一行:
- // Bind the Product collection to the DataSource.
- this.ProductBindingSource.DataSource = m_merchant.GetProducts();
- // Bind the Product collection to the DataSource.
运行此应用程序
按“F5”运行应用程序并查看报表
rdlc报表的更多相关文章
- 关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出”
问题:关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出” 办法:在容纳ReportViewer的窗体后台代码中,添加如下代码即可 protected override ...
- rdlc报表DEMO
rdlc报表demo .net 4.0 vs2013 文本框,图像控件,checkbox样式的打印 下载链接
- rdlc报表大小设置
参考:http://stackoverflow.com/questions/427730/how-to-limit-rdlc-report-for-one-page-in-a-pdf 主要设置为:报表 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(15)--在MVC项目中使用RDLC报表
RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用RDLC也是一个比较方便操作,如可以参考文章<DevExpress的XtraReport和微软RDL ...
- DevExpress的XtraReport和微软RDLC报表的使用和对比
我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在W ...
- 会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载
在上篇<会员管理系统的设计和开发(1)>介绍了关于会员系统的一些总体设计思路和要点,经过一段时间开发,软件终于完成并发布.在这期间,碰到了不少技术难点,并积累了不少开发心得和经验,本篇继续 ...
- C#制作RDLC报表
报表以前我只做过水晶报表,但是最近发现家里的VS上面居然没有水晶报表,发现水晶报表现在貌似已经不能完全免费的使用了,为了保险起见,就用了VS自带的RDLC报表,用完感觉其实也是够用的嘛~ 建立一RDL ...
- 打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机
如果一台电脑同时连接多个打印机,而且每个打印机使用的纸张大小各不相同(比如:票据打印钱用的小票专用张,办公打印机用的是A4标准纸),在处理打印类的需求时,如果不用代码干预,用户必须每次打印时,都必须在 ...
- C# WinForm RDLC报表不预览直接连续打印
用微软的RDLC报表直接打印不预览 直接上代码. //打印清单 System.Data.DataTable dt = print_QD(dr); ReportViewer rvDoc = new Re ...
- RDLC报表 在WinForm里运行出现 未能加载文件或程序集microsoft.reportviewer.winforms
做一下记录顺便帮助一下遇到问题的朋友. 做RDLC报表在WinForm运行,在VS里面调试引用了“Microsoft.ReportViewer.Common.dll”和“Microsoft.Repor ...
随机推荐
- Musical Theme
poj1743:http://poj.org/problem?id=1743 题意:题意抽象出来就是给你一个序列,然后找一个长度不少于5的没有重复的等差数列. 题解:每相邻的两个数做差,然后转化成求字 ...
- Spring MVC 解读——View,ViewResolver(转)
上一篇文章(1)(2)分析了Spring是如何调用和执行控制器方法,以及处理返回结果的,现在我们就分析下Spring如何解析返回的结果生成响应的视图. 一.概念理解 View ---View接口表示一 ...
- 详解Linux配置iSCSI方法
iSCSI技术是在2001年初由IBM及Cisco联合制定的技术,在2003年5月微软在 Windows 2003中 开始自己正式支持iSCSI微软此举很大程度上的推动了iSCSI技术的发展.下面为大 ...
- (转载)MySQL关键字ORDER BY的使用
例子: mysql), d_id ), name ), age ), sex ), homeaddr )); // 可以看到首先按照d_id进行升序排列,排列好了之后, // 若d_id字段中有相同的 ...
- C# 日期格式化的中的 正斜杠的问题
Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd" )); //这行代码, 如果你在系统日期格式默认的情况下输出 2013/0 ...
- 关键字 final
package com.zyw.reusableClass; import java.util.Random; /** * Created by zyw on 2016/3/26. * from th ...
- socket编程五种模型
客户端:创建套接字,连接服务器,然后不停的发送和接收数据. 比较容易想到的一种服务器模型就是采用一个主线程,负责监听客户端的连接请求,当接收到某个客户端的连接请求后,创建一个专门用于和该客户端通信的套 ...
- C# 中的协变和逆变
作为一个从接触 Unity 3D 才开始学习 C# 的人,我一直只了解一些最基本.最简单的语言特性.最近看了<C# in Depth>这本书,发现这里面东西还真不少,即使除去和 Windo ...
- xapian搜索系统存储结构解读
Xapian的database是所有用于检索的信息表的集合,以下的表是必需的: posting list table 保存了被每一个term索引的document,实际上保存的应该是document在 ...
- Intersection - POJ 1410(线段与矩形是否相交)
题目大意:给一个线段和一个矩形,判断线段是否和矩形有公共点. 分析:用矩形的四个边当线段判断与所给的线段是否有交点,需要注意的是给的矩形是不标准的,需要自己转换,还需要注意线段有可能在矩形内部. ...