C# 利用ReportViewer生成报表
本文主要是利用微软自带的控件ReportViewer进行报表设计的小例子,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点:
- ReportViewer :位于Microsoft.Reporting.WinForms命名空间, 主要用于报表的显示
- Report:报表,以rdlc结尾的文件,可视化设计报表模板。
- 报表数据:内置字段,参数,图像,数据集(本报表主要使用参数,和数据集)
- ReportParameter:使用名称和值实例化新的报表参数
- ReportDataSource:报表的数据源与DataTable对象联系起来
效果图
如下:

核心代码
相关代码如下:
/// <summary>
/// 设置报表
/// </summary>
private void SetReport()
{
//第一步:清除之前的数据
this.rptView.LocalReport.DataSources.Clear();
//第二步:指定报表路径
this.rptView.LocalReport.ReportPath = "Report2.rdlc";
//第三步:构造新的DataTable
DataTable dt = new DataTable("DataTable1");
dt.Columns.Add("Name");
dt.Columns.Add("Score");
dt.Columns.Add("Id");
dt.Rows.Add(new object[] { "语文", , "Y0001" });
dt.Rows.Add(new object[] { "数学", , "S0001" });
dt.Rows.Add(new object[] { "英文", , "E0001" });
//名称不能写错,和报表中的数据集名称一致
ReportDataSource rdsItem = new ReportDataSource("DataSet1", dt);
//此处可以有多个数据源
this.rptView.LocalReport.DataSources.Add(rdsItem);
//第四步:构造参数
List<ReportParameter> lstParameter = new List<ReportParameter>() {
new ReportParameter("Title",this.txtTitle.Text),
new ReportParameter("Id",this.txtId.Text),
new ReportParameter("Name",this.txtName.Text),
new ReportParameter("Age",this.txtAge.Text),
new ReportParameter("Sex",this.txtSex.Text),
new ReportParameter("Salary",this.txtSalary.Text),
new ReportParameter("Depart",this.txtDepart.Text)
};
this.rptView.LocalReport.SetParameters(lstParameter);
this.rptView.ZoomMode = ZoomMode.Percent;
this.rptView.ZoomPercent = ;
//第五步:刷新报表
this.rptView.RefreshReport();
}
源码下载链接
C# 利用ReportViewer生成报表的更多相关文章
- 利用Swashbuckle生成Web API Help Pages
利用Swashbuckle生成Web API Help Pages 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: ...
- Spring事务管理----声明式:利用TransactionProxyFactoryBean生成事务代理
通常建议采用声明式事务管理.声明式事务管理的优势非常明显:代码中无需关于关注事务逻辑,让spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换 ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
- (喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句
(喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句 在我们RDIFramework.NET代码生成器中,有这样一个应用,就是通过数据库表自动生成表的CREA ...
- (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译
Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...
- JSP利用freemarker生成基于word模板的word文档
利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器 ...
- 利用FFmpeg生成视频缩略图 2.1.6
利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...
- Android 利用Gson生成或解析json
目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...
随机推荐
- DevOps - 参考信息
DevOps DevOps(Development+Operations)强调共同对业务目标负责,以实现用户价值作为唯一的评判标准:保证产品功能及时实现.成功部署和稳定使用: 是一种重视软件开发人员( ...
- Java NIO的工作方式
1.BIO带来的挑战 BIO即阻塞IO,不管是磁盘IO,还是网络IO,数据在写入OutputStream或者从InputStream读取时都有可能发生阻塞,一旦有阻塞,当前线程将会被挂起,即线程进入非 ...
- kibana从入门到精通-Kibana安装
作者其他ELK快速入门系列文章 Elasticsearch从入门到精通 logstash快速入门实战指南 简介 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之 ...
- docker - 容器里安装redis
在docker中安装redis 使用命令行安装redis 下载并解压 wget http://download.redis.io/releases/redis-3.2.6.tar.gz tar -xv ...
- 阿里云CentOS安装配置Python3.7及pip3
一.安装Python3.7 安装依赖包 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqli ...
- Map<String, Object>转Object,Object转 Map<String, Object>
Map转Object import com.alibaba.fastjson.JSON; Map<String, Object> boneAgeOrderMap=boneAgeOrderS ...
- Python 通过 SMTP 发送邮件
Python版本:Python3.5.2 简介 SMTP是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件.HTML 邮件以及带附件的邮件. Python 对 SMTP 支持 ...
- .NET使用ServerManager获取网站物理路径
最近因为工作需要,用wpf做了一个辅助小工具,如下图 为了获取网站的物理路径,我分析了通过ServerManager获取到的变量,也通过百度搜索了很多,但仍然没有找到方法. 后来使用必应,在国外网站找 ...
- c# 创建,加载,修改XML文档
using System.Xml.Linq; static void Main(string[] args) { XDocument xDocument = new XDocument(new XEl ...
- Prism 学习:从配置文件中加载 Module
之前我们已经了解过,如何从指定的目录中来加载 Module(原文),现在我们来看,如何从应用程序的配置文件中来加载 Module.以这种方式来加载 Module 的优点包括:1. 被加载的 Modul ...