VSTO 学习笔记(六)在 Excel 2010中使用RDLC报表
Excel具有强大的图表显示、分析功能,这点毋庸置疑,但是如果将常规MIS系统中的数据以报表的形式在Excel中显示,却并不那么容易。在VSTO中,我们可以借助RDLC报表组件来满足这种需求。
示例代码下载
本系列所有示例代码均在 Visual Studio 2010 Ultimate RTM + Office 2010 Professional Plus Beta x64 下测试通过
注:本次数据库使用的是 SQL Server 2008 R2 x64 RTM
1、在VS2010中,新建一个Excel 2010 Workbook项目:
2、添加引用:
Microsoft.ReportViewer.WinForms
3、创建一个RDLC报表,添加一个报表参数p_Country:
报表的目的很简单,用的Northwind数据库,根据传递的参数,从Customers表中查询数据。
4、创建一个存储过程:
代码
(
@CountryVARCHAR(20))
ASSELECT*FROMdbo.CustomersWHERECountry=@CountryGO5、在项目中添加一个Linq to SQL Class,将Customers表和sp_LinqTest存储过程添加进来:
6、打开Sheet1的设计界面,添加一个ComboBox:
7、初始化数据:
{this.rptExcel.LocalReport.ReportEmbeddedResource="RDLCInExcel.LinqRpt.rdlc";
Excel.Range range=this.Range["B4","J22"];this.Controls.AddControl(this.rptExcel, range,"rptInExcel");
NorthwindDataContext ctx
=newNorthwindDataContext();var result=from cinctx.Customers
select c.Country;foreach(stringlistinresult.Distinct<string>().ToList<string>())
{this.comCountry.Items.Add(list);
}
}
8、构造数据源,传递报表参数:
{
NorthwindDataContext ctx=newNorthwindDataContext();
var datasource=from cinctx.sp_LinqTest(v_strCountry)
orderby c.CustomerID
select c;
ReportParameter rpCountry
=newReportParameter("p_Country", v_strCountry);this.rptExcel.LocalReport.SetParameters(newReportParameter[] { rpCountry });this.rptExcel.LocalReport.DataSources.Add(newReportDataSource("sp_LinqTestResult", datasource.ToList()));this.rptExcel.RefreshReport();}
9、关联事件:
{this.fnDataIni();this.fnBuildDataSource(this.comCountry.Text);
}privatevoidSheet1_Shutdown(objectsender, System.EventArgs e)
{
}#regionVSTO Designer generated code///<summary>///Required method for Designer support - do not modify///the contents of this method with the code editor.///</summary>privatevoidInternalStartup()
{this.comCountry.SelectedIndexChanged+=newSystem.EventHandler(this.comCountry_SelectedIndexChanged);this.Startup+=newSystem.EventHandler(this.Sheet1_Startup);this.Shutdown+=newSystem.EventHandler(this.Sheet1_Shutdown);
}
#endregionprivatevoidcomCountry_SelectedIndexChanged(objectsender, EventArgs e){this.rptExcel.LocalReport.DataSources.Clear();this.fnBuildDataSource(this.comCountry.Text);
}
10、最终运行效果:
11、生产的Excel位于Debug/Release下:
小结:
本次我们在VSTO中做了一个简单的报表,使用了Linq to SQL,当然,如果能用Excel的原生功能做报表效果更好,使用VSTO可以大大简化实现相同功能的方法,使得我们可以用更熟悉的方法来完成一些需求。
VSTO 学习笔记(六)在 Excel 2010中使用RDLC报表相关推荐
- 【VS开发】VSTO 学习笔记(十)Office 2010 Ribbon开发
微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个Ribbon中,便于集中管理.操作.这种Ribbon是高度可定制的,用户可 ...
- VSTO学习笔记(四)从SharePoint 2010中下载文件
原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...
- VSTO学习笔记(二)Excel对象模型
原文:VSTO学习笔记(二)Excel对象模型 上一次主要学习了VSTO的发展历史及其历代版本的新特性,概述了VSTO对开发人员的帮助和效率提升.从这次开始,将从VSTO 4.0开始,逐一探讨VSTO ...
- JS学习笔记六:js中的DOM操作
1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...
- VSTO 学习笔记(十二)自定义公式与Ribbon
原文:VSTO 学习笔记(十二)自定义公式与Ribbon 这几天工作中在开发一个Excel插件,包含自定义公式,根据条件从数据库中查询结果.这次我们来做一个简单的测试,达到类似的目的. 即在Excel ...
- 吴恩达《机器学习》学习笔记六——过拟合与正则化
吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...
- ROS学习笔记六:理解ROS服务和参数
ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...
- opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- excel 中vb组合框_在Excel 2010中修复组合框大小调整
excel 中vb组合框 With Excel data validation, you can create drop down lists on a worksheet. However, the ...
- Python学习笔记六——画小猪佩奇
目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...
最新文章
- 新手熊猫烧香学习笔记
- 【原创】MySQL 返回更新值(RETURNING)
- upload_labs_pass18_条件竞争
- 微信公众号无需二次登录_您无需两次解决问题-您需要一个设计系统
- Windows 2003 NTP 时间服务器设置
- AngularJS中页面传参方法
- 设置163的Centos6更新源
- Appium 夜神 配置
- vim linux python3,VIM:在python-mode中使用python3解释器
- Hadoop YARN学习之核心概念(2)
- C++编程语言中const关键字介绍
- 南天PR系列存折打印机驱动程序
- windows下利用注册表regedit手动删除文件
- 工业物联网盒子python_【工业4.0面面观】之十八:基于AWS的工业物联网应用案例...
- 夜神模拟器BURP抓包设置
- 10种食物让女性养颜排毒又减肥(图)
- Java春招面试复习:JDK 5-15都有哪些经典新特性
- Gitee推送本地文件到仓库并且创建子文件夹(详细)
- 2021贵州江口中学高考成绩查询,2020铜仁江口县中考分数线 江口县高中录取分数线 江口县中考成绩查询_中考_3773考试网...
- 3年收10亿,普陀山悄悄改名重启IPO