博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs ReportViewer 报表控件
阅读量:6243 次
发布时间:2019-06-22

本文共 2030 字,大约阅读时间需要 6 分钟。

引用:

ReportViewer是vs自带控件。今天在此说明下他的用法,主要是感觉网上资料有点少。晒一点希望对大家有所帮助。

其实他的使用步骤十分简单:

1 托入相应的控件(ReportViewer,和 *.rdlc类型的文件)

2 关联数据

3 加上ajax

 

 

1.托入相应的控件

对应拖入2个控件后, rdlc中用拖拉设置报表的布局,并设置数据源。

在rdlc中的设置中 有足够多的图表类型选择

 

并且可在图中圆圈处拖入字段,表示系列或者轴内容

 

2关联数据

数据源拖入后,用一下方式可查看.rdlc文件。事实上他把布局的所有细节转化为xml来表示。

所有如果你想要自定义数据源也成为可能

 

 

关于自定义数据源

首先你需要在.rdlc中设置好报表的外形。然后你可以在页面后台指定数据源。

View Code
protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack) {                         DataClasses1DataContext _dc = new DataClasses1DataContext();            var _data = _dc.zwgxx22(DateTime.Parse("2012-1-1"), DateTime.Parse("2012-8-23"));            DataTable dt = new DataTable("dataset");            dt.Columns.Add("MaxUpSpeed",typeof(int));  //列 务必带上数据类型 否则无法显示报表内容,并和rdlc上的数据源完全相同            dt.Columns.Add("MaxDownSpeed", typeof(int));            dt.Columns.Add("MinUpSpeed", typeof(int));            dt.Columns.Add("MinDownSpeed", typeof(int));            dt.Columns.Add("AvgUpSpeed", typeof(int));            dt.Columns.Add("Datetime", typeof(DateTime));            dt.Columns.Add("AvgDownSpeed", typeof(int));            foreach (var item in _data)            {                            dt.Rows.Add(new object[] {                         item .AvgDownSpeed,item.MaxDownSpeed,item.MinDownSpeed,                        item.MinUpSpeed,item.AvgUpSpeed,item.Datetime,item.MaxUpSpeed});            }            ReportDataSource _rpdata = new ReportDataSource("DataSet2", dt);              this.ReportViewer1.LocalReport.DataSources.Clear();//清理原来数据源            this.ReportViewer1.LocalReport.DataSources.Add(_rpdata);//绑定新数据源            ReportViewer1.LocalReport.Refresh();//刷新                        }                   }

注意点:

如果是自定义数据源,在.rdlc中设置的数据源元素需要和后台设置层次对应,即在.rdlc的xml表示中DataSource和dataSet必须对应自定义数据源datatable中的 ReportDataSource _rpdata = new ReportDataSource([DataSource], dt);和 DataTable dt = new DataTable([dataSet]);

如果不是自定义数据源,只要拖拉就能完成报表的显示:

3 ajax

完成以上操作后需要在reportviewer外头套一个scriptManager  和updatepanel(必须)。因为他需要用脚本包装和回发

 

 

希望对大家有所帮助吧

转载地址:http://ansia.baihongyu.com/

你可能感兴趣的文章
关于“类型初始值设定项引发异常”
查看>>
MySql 小表驱动大表
查看>>
Redis 数据结构的底层实现 (一) RealObject,embstr,sds,ziplist,quicklist
查看>>
SQL语句注入的问题
查看>>
jQueryEasyUI Messager基本使用
查看>>
【C语言学习趣事】_33_关于C语言和C++语言中的取余数(求模)的计算_有符号和无符号数的相互转换问题...
查看>>
Tensorboard教程:显示计算图中节点信息
查看>>
java 线程基本概念 可见性 同步
查看>>
Java:JUnit包
查看>>
unity_快捷键
查看>>
洛谷P3358 最长k可重区间集问题(费用流)
查看>>
洛谷P1251 餐巾计划问题(费用流)
查看>>
Beta冲刺(2/5)(麻瓜制造者)
查看>>
vs2012编码的UI测试使用教程
查看>>
android 在非UI线程更新UI仍然成功原因深入剖析
查看>>
清北NOIP训练营集训笔记——图论
查看>>
oracle ORA-00060死锁查询、表空间扩容
查看>>
转载自https://github.com/jsfront/src/blob/master/css.md
查看>>
MySQL索引优化分析(上)
查看>>
jquery $().each,$.each的区别
查看>>