最近winform上使用ReportViewer做报表,因为之前没弄过,所以遇到了很多问题,现在总结一下。

一、运行环境

.net环境:4.0

开发工具:vs2010

二、开发步骤

第一步,在winform窗体上添加ReportViewer控件作为呈现报表的容器,重新命名为reportViewerTest;

第二步,利用向导添加MyTestReport.rdlc报表文件;

第三步,利用向导添加数据集Test.xsd,数据集用来存放报表需要呈现的数据源的格式,在数据集中添加一个用来测试的Student表;

第四步,设计MyTestReport报表文件,这里方便测试,只添加一个列表来显示student信息。在添加列表的时候需要绑定在上一步添加的student表,报表绑定的数据源信息可以在【报表数据】里查看。【报表数据】可在【视图】中打开。

第五步,在winform页面中为reportViewerTest的属性中指定该报表,或者动态为reportViewerTest指定报表文件,如

reportViewerTest.LocalReport.ReportEmbeddedResource="报表文件";// 包含命名空间和报表文件名称  如 Test.ReportManage.MyTestReport.rdlc

动态创建一个datatable,表结构和数据源文件中的student表相同,如

DataTable studentDt=new DataTable("Student");

studentDt.Columns.Add("ID");
              studentDt.Columns.Add("Name");
              studentDt.Columns.Add("Age");
              studentDt.Columns.Add("Sex");

为studentDt赋值:

studentDt.Rows.Add("10001", "Jack", 12, "男");
               studentDt.Rows.Add("10002", "Lucy", 11, "女");
               studentDt.Rows.Add("10003", "Jason", 15, "男");
               studentDt.Rows.Add("10004", "Lili", 13, "女");

将数据表加入报表:

reportViewerTest.LocalReport.DataSources.Add(new ReportDataSource("Student",studentDt));//注:这里数据源名称要与上面再报表中定义的数据源名称一致。

第六步,刷新报表控件。

reportViewerTest.RefreshReport();

最后,如果报表中有跳转链接,既报表间跳转,需要实现报表控件的Drillthrough事件,报表的相关初始化工作在该事件的方法中实现。

最新文章

  1. HDOJ 1326. Box of Bricks 纯水题
  2. Your stream was neither an OLE2 stream, nor an OOXML stream.问题的解决
  3. Nginx限速遇到的问题
  4. Android的post()方法究竟运行在哪个线程中
  5. Oracle Dataguard之switchover
  6. unity3D里面的点乘和叉乘
  7. FZU 2140 Forever 0.5 (几何构造)
  8. Actions 动作集
  9. hive--UDF、UDAF
  10. iOS 开发中使用到的小技巧汇总
  11. 《Linux内核修炼之道》 系列
  12. Android 传感器开发
  13. 华为云(ECS)-linux服务器中-Ubuntu图形界面安装-解决root登录受限-VNCviwer/Teamviwer远程访问教程
  14. Docker 搜索镜像
  15. 20165309 《网络对抗技术》实验五:MSF基础应用
  16. 怎么编辑PDF,如何给PDF加水印
  17. maven docker 插件集成的几个小坑
  18. java-方法重写和方法重载的区别
  19. springboot实现服务器端消息推送(websocket + sockjs + stomp)
  20. python3 pyodbc简单使用

热门文章

  1. zeplin 登录效果实现
  2. canvas雪花特效-jQuery插件实现
  3. Android 4.4及以后将内容布局延伸到状态栏
  4. Object-C反射读取实体属性和值
  5. Electron 入门文档
  6. Python+selenium之带unittest的脚本分析
  7. 地址栏传值 JS取值方法
  8. 一个SQL server的事务存储
  9. UVA 624 CD(01背包,要记录路径)
  10. 清理winsxs文件夹(系统更新文件)的第三方工具