RDLC报表总结
这2天纠结的报表基本上已近完成大部分功能。现在总结一下自己近期的学习成果
首先制作微软RDLC报表由以下三部分构成:1.制作自己的DateSet集合(就是报表的数据集);2.制作自己的报表文件.rdlc文件,用于画做报表样式,里面有微软自带的导出和打印功能,其实就为了少做这2个功能做少部分报表完全还不如自己生成报表灵活。制作显示报表的前台页面aspx文件,基本上就是插入一个ReportViewer然后关联上面的.rdlc文件,注意别忘了更新数据源和插入ScriptManager.
下图是我这是这几天来做的,但基本都是建立这3个文件,网上可以找很多教程可以学习,
这些是我主要参考的网站
http://www.cnblogs.com/JamesLi2015/archive/2010/01/30/1660086.html
http://www.cnblogs.com/lauyee/archive/2010/07/26/1783694.html
http://wenku.baidu.com/view/364f5048c850ad02de8041f5.html
http://www.cnblogs.com/lauyee/archive/2010/07/18/1780124.html
好吧,开始做了,前面都很简单:怎么做一个DataSet,怎么绘制自己的RDLC,这些东西查查什么是数据集,什么是表头,行组,列祖就可以。还有报表里面的参数也可以传入。用LocalReport.SetParameters()方法。
难点发生在要动态构造一个DataSet,网上刚开始给了好多方法,但是自己老是不成功,后来总结出2点
1. 参照的数据集名称错误,假如你的RDLC参照数据集DateSet1,在自动定义新的数据集时候
ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", ds.Tables[0]));,
必须把名字标记成DateSet1,否则会无法识别。还有新的数据集字段必须和原有字段名称一致。
2. 这个最悲剧,竟然是自己的的SQL语句写错了,汗颜不说了...
看看源代码和最后运行图示
- protected void Button1_Click(object sender, EventArgs e)
- {
- //先引用源报表并修改参数
- ReportParameter rp = new ReportParameter("content", "库房");
- this.ReportViewer1.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory + "Report4.rdlc";
- this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
- string connstring = "Data Source=192.168.1.111;Initial Catalog=SameWayAgile_4_14;Integrated Security=True";
- System.Data.SqlClient.SqlConnection conn1 = new System.Data.SqlClient.SqlConnection(connstring);
- System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand(
- "SELECT GoodsName AS 商品名称, ABCTypeName AS ABC类, MiddleTypeName AS 中类, GoodsTypeName AS 大类, TotalValue AS 金额, ActualQuantity AS 数量 FROM Part_GoodsView", conn1);
- System.Data.SqlClient.SqlDataAdapter ada1 = new System.Data.SqlClient.SqlDataAdapter(command1);
- DataSet ds = new DataSet();
- try
- {
- conn1.Open();
- ada1.Fill(ds);
- ds.DataSetName = "DataSet1";
- }
- catch (Exception ex)
- {
- string ss = ex.Message;
- }
- finally
- {
- conn1.Close();
- command1.Dispose();
- conn1.Dispose();
- }
- if (ds.Tables[0] != null)
- {
- ReportViewer1.LocalReport.DataSources.Clear();
- ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", ds.Tables[0]));
- }
- ReportViewer1.LocalReport.Refresh();
- }
今天做了一个变态的报表,刚开始觉得不能实现,后来了解报表文件特性还是可以实现的,就是矩阵里面嵌套矩阵。哈哈
好了插图
- 上一篇:技术型领导
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 ...
随机推荐
- 二分图最大匹配(匈牙利算法) POJ 3020 Antenna Placement
题目传送门 /* 题意:*的点占据后能顺带占据四个方向的一个*,问最少要占据多少个 匈牙利算法:按坐标奇偶性把*分为两个集合,那么除了匹配的其中一方是顺带占据外,其他都要占据 */ #include ...
- T - Posterized(贪心思维)
Description Professor Ibrahim has prepared the final homework for his algorithm’s class. He asked hi ...
- Android 性能优化(27)*zipalign让apk数据对齐,运行更快。
1.zipalign 简介 zipalign is an archive alignment tool that provides important optimization to Android ...
- 392 Is Subsequence 判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列.你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=10 ...
- ASP.NET控件之RadioButtonList
“RadioButtonList”控件表示一个封装了一组单选按钮控件的列表控件. 可以使用两种类型的 ASP.NET 控件将单选按钮添加到网页上:各个“RadioButton”控件或一个“RadioB ...
- Hadoop的数据采集框架
问题导读: Hadoop数据采集框架都有哪些? Hadoop数据采集框架异同及适用场景? Hadoop提供了一个高度容错的分布式存储系统,帮助我们实现集中式的数据分析和数据共享.在日常应用中我们比如要 ...
- 151. [USACO Dec07] 建造路径
★★ 输入文件:roads.in 输出文件:roads.out 简单对比 时间限制:1 s 内存限制:128 MB 译 by CmYkRgB123 描述 Farmer John 刚刚得 ...
- Code Kata:大整数四则运算—除法 javascript实现
除法不可用手工算法来计算,其基本思想是反复做减法,看从被除数里面最多能减去多少个除数,商就是多少. 除法函数: 如果前者绝对值小于后者直接返回零 做减法时,不需要一个一个减,可以以除数*10^n为基数 ...
- Elasticsearch--搜索
目录 基本知识 查询结果返回设置:版本值.得分限制.定制返回字段 搜索类型 搜索执行偏好 基本查询 过滤器类型 高亮 控制高亮的片段 验证查询 数据排序 查询重写 基本知识 查询结果返回设置:版本值. ...
- C# 调用Mysql 带参数存储过程
使用C#调用Mysql 带参数的存储过程: 1.创建带参数的存储过程:USP_Temp_Test 2.两个参数:IN 参数为 P_XML , OUT 参数为 P_ErrorOut 3.C#代码调用该存 ...