C#.net使用DotNetCharting控件生成报表统计图
在做项目时要对数据进行统计分析,所以必须生成一些报表统计图(如柱形图、饼图、曲线图等),网上强烈推荐了使用DotNetCharting控件来实现,于是自己对DotNetCharting控件进行了简单的学习,下面先简单介绍一下DotNetCharting控件及其使用。
DotNetCharting是一个非常棒的.NET图表控件,对中文支持非常好,而且操作方便,开发快速,既有for webform 也有for winform的,而且.net1.1和2.0都有支持。它的官方地址是http://www.dotnetcharting.com/
本站也提供了DotNetCharting破解版本下载: http://files.cnblogs.com/dreamof/dotnetcharting.rar
强烈推荐一下DotNetCharting的demo地址:
这个是所有的 DEMO 演示 http://www.dotnetcharting.com/demo.aspx
这个是 Online Documentation http://www.dotnetcharting.com/documentation/v4_4/webframe.html 里面会有详细的说明和用法。
DotNetCharting的简单使用方法:
1.把/bin/dotnetCHARTING.dll添加到工具箱,并且添加引用;
2.把控件拖到你的网页上,然后添加引用using dotnetCHARTING;就可以用了;
3.接下来是自己写的对DotNetCharting操作的封装类,以便于在程序里调用。
- ShowData.cs
- using System;
- using System.Data;
- using System.Text;
- using dotnetCHARTING;
- namespace FLX.ComplexQuery
- {
- /**//// <summary>
- /// 彭建军
- /// 根据数据动态生成图形(柱形图、饼图、曲线图)
- /// 2008-06-19
- /// </summary>
- public class ShowData
- {
- 属性#region 属性
- private string _phaysicalimagepath;//图片存放路径
- private string _title; //图片标题
- private string _xtitle;//图片x座标名称
- private string _ytitle;//图片y座标名称
- private string _seriesname;//图例名称
- private int _picwidth;//图片宽度
- private int _pichight;//图片高度
- private DataTable _dt;//图片数据源
- /**//// <summary>
- /// 图片存放路径
- /// </summary>
- public string PhaysicalImagePath
- {
- set{_phaysicalimagepath=value;}
- get{return _phaysicalimagepath;}
- }
- /**//// <summary>
- /// 图片标题
- /// </summary>
- public string Title
- {
- set{_title=value;}
- get{return _title;}
- }
- /**//// <summary>
- /// 图片标题
- /// </summary>
- public string XTitle
- {
- set{_xtitle=value;}
- get{return _xtitle;}
- }
- /**//// <summary>
- /// 图片标题
- /// </summary>
- public string YTitle
- {
- set{_ytitle=value;}
- get{return _ytitle;}
- }
- /**//// <summary>
- /// 图例名称
- /// </summary>
- public string SeriesName
- {
- set{_seriesname=value;}
- get{return _seriesname;}
- }
- /**//// <summary>
- /// 图片宽度
- /// </summary>
- public int PicWidth
- {
- set{_picwidth=value;}
- get{return _picwidth;}
- }
- /**//// <summary>
- /// 图片高度
- /// </summary>
- public int PicHight
- {
- set{_pichight=value;}
- get{return _pichight;}
- }
- /**//// <summary>
- /// 图片数据源
- /// </summary>
- public DataTable DataSource
- {
- set{_dt=value; }
- get{return _dt;}
- }
- #endregion
- 构造函数#region 构造函数
- public ShowData()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
- public ShowData(string PhaysicalImagePath,string Title,string XTitle,string YTitle,string SeriesName)
- {
- _phaysicalimagepath=PhaysicalImagePath;
- _title=Title;
- _xtitle=XTitle;
- _ytitle=YTitle;
- _seriesname=SeriesName;
- }
- #endregion
- 输出柱形图#region 输出柱形图
- /**//// <summary>
- /// 柱形图
- /// </summary>
- /// <returns></returns>
- public void CreateColumn(dotnetCHARTING.Chart chart)
- {
- chart.Title=this._title;
- chart.XAxis.Label.Text=this._xtitle;
- chart.YAxis.Label.Text=this._ytitle;
- chart.TempDirectory =this._phaysicalimagepath;
- chart.Width = this._picwidth;
- chart.Height = this._pichight;
- chart.Type = ChartType.Combo ;
- chart.Series.Type =SeriesType.Cylinder;
- chart.Series.Name = this._seriesname;
- chart.Series.Data = this._dt;
- chart.SeriesCollection.Add();
- chart.DefaultSeries.DefaultElement.ShowValue = true;
- chart.ShadingEffect = true;
- chart.Use3D = false;
- chart.Series.DefaultElement.ShowValue =true;
- }
- #endregion
- 输出饼图#region 输出饼图
- /**//// <summary>
- /// 饼图
- /// </summary>
- /// <returns></returns>
- public void CreatePie(dotnetCHARTING.Chart chart)
- {
- chart.Title=this._title;
- chart.TempDirectory =this._phaysicalimagepath;
- chart.Width = this._picwidth;
- chart.Height = this._pichight;
- chart.Type = ChartType.Pie;
- chart.Series.Type =SeriesType.Cylinder;
- chart.Series.Name = this._seriesname;
- chart.ShadingEffect = true;
- chart.Use3D = false;
- chart.DefaultSeries.DefaultElement.Transparency = 20;
- chart.DefaultSeries.DefaultElement.ShowValue = true;
- chart.PieLabelMode = PieLabelMode.Outside;
- chart.SeriesCollection.Add(getArrayData());
- chart.Series.DefaultElement.ShowValue = true;
- }
- private SeriesCollection getArrayData()
- {
- SeriesCollection SC = new SeriesCollection();
- DataTable dt = this._dt;
- for(int i=0; i < dt.Rows.Count; i++)
- {
- Series s = new Series();
- s.Name = dt.Rows[i][0].ToString();
- Element e = new Element();
- // 每元素的名称
- e.Name = dt.Rows[i][0].ToString();
- // 每元素的大小数值
- e.YValue=Convert.ToInt32(dt.Rows[i][1].ToString());
- s.Elements.Add(e);
- SC.Add(s);
- }
- return SC;
- }
- #endregion
- 输出曲线图#region 输出曲线图
- /**//// <summary>
- /// 曲线图
- /// </summary>
- /// <returns></returns>
- public void CreateLine(dotnetCHARTING.Chart chart)
- {
- chart.Title=this._title;
- chart.XAxis.Label.Text=this._xtitle;
- chart.YAxis.Label.Text=this._ytitle;
- chart.TempDirectory =this._phaysicalimagepath;
- chart.Width = this._picwidth;
- chart.Height = this._pichight;
- chart.Type = ChartType.Combo ;
- chart.Series.Type =SeriesType.Line;
- chart.Series.Name = this._seriesname;
- chart.Series.Data = this._dt;
- chart.SeriesCollection.Add();
- chart.DefaultSeries.DefaultElement.ShowValue = true;
- chart.ShadingEffect = true;
- chart.Use3D = false;
- chart.Series.DefaultElement.ShowValue =true;
- }
- #endregion
- 调用说明及范例#region 调用说明及范例
- // 在要显示统计图的页面代码直接调用,方法类似如下:
- //
- // ShowData show=new ShowData();
- // show.Title ="2008年各月消费情况统计";
- // show.XTitle ="月份";
- // show.YTitle ="金额(万元)";
- // show.PicHight =300;
- // show.PicWidth =600;
- // show.SeriesName ="具体详情";
- // show.PhaysicalImagePath ="ChartImages";
- // show.DataSource =this.GetDataSource();
- // show.CreateColumn(this.Chart1);
- #endregion
- }
- }
效果图展示:
补充:
帖子发了一天,没人回答我多维统计图的实现方式,只好自己去dotnetcharting的官方网站下载了最新的dotnetcharting控件,在 dotnetcharting控件的使用说明文档中详细地介绍了各种多维统计图的实现方式。现把说明文档贴出来供大家下载
dotnetcharting使用说明文档
追加补充新内容:
1、解决“每运行一次DotNetCharting页面,就会生成一个图片,这样图片不是越来越多吗?请问怎样自动删除DotNetCharting生成的图片呢”的问题,参照asp.net删除文件夹里的所有文件 。
2、解决“(1)生成的图片带超链接导向官网,如何处理呀?(2)我使用这个控件后,图形可以显示出来。但是发现一个小问题。就是在图形的左上方和图形的下面都隐含了超链接,鼠标移动到这两个区域后,点击都会链接到http://www.dotnetcharting.com/。很奇怪,这是和破解有管吗?”等类似的问题,参照DotnetCharting控件各版本破解方法 。
C#.net使用DotNetCharting控件生成报表统计图的更多相关文章
- .net使用DotNetCharting控件生成报表统计图总结
最近在做项目时要对数据进行统计分析,所以必须生成一些报表统计图(如柱形图.饼图.曲线图等),网上强烈推荐了使用DotNetCharting控件来实现,于是自己对DotNetCharting控件进行了简 ...
- 双缓冲绘图和窗口控件的绘制——ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 .
双缓冲绘图和窗口控件的绘制 ---ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 cheungmine 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后 ...
- 由Asp.Net客户端控件生成的服务器端控件
由Asp.Net客户端控件生成的服务器端控件(也就是给客户端控件添加 runnat="server"),这样的控件既能在js中通过id命.类名获取到,也能在服务器端根据id获取到
- 告别.NET生成报表统计图的烦恼
告别.NET生成报表统计图的烦恼 标签: 报表.netstatistics图形数据库文档 2009-10-09 12:00 635人阅读 评论(0) 收藏 举报 分类: .net程序设计(C#)(2 ...
- SSRS报表服务随笔(rdl报表服务)-报表数据:使用第三方控件生成条形码
因为工作需要,需要将订单号显示成条形码,比如数据库存储的20190106A,我需要把这个转换为Code128来显示出来 在国内我没有找到这方面的教程,最后还是一个人自己摸索出来的 在这里我是使用的是B ...
- UniGui中使用Grid++Report报表控件子报表获取数据的方法
Grid++Report是为优秀的报表控件,子报表是其重要功能之一,但Grid++Report提供的网页报表示范主要是以页面为主的,UniGui在Delphi中以快速编写web管理软件著称,但由于资料 ...
- ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
在最新发布的ActiveReports 9报表控件中添加了多项新功能,以帮助你在更短的时间里创建外观绚丽.功能强大的报表系统,本文将重点介绍新增文档目录控件(TOC),通过拖拽操作便可添加报表目录. ...
- ZedGraph控件生成饼图、拆线图和柱状图例程
这几天做了个自己觉得还蛮NB的功能,在GRID中选中一块数据,然后右键菜单即可生成三种图形,还可以互相切换,对了,饼图还添加了鼠标点击分离的处理,大致如图: 用的控件就是ZedGraph,我把它继承封 ...
- 葡萄城公布新版ActiveReports 9报表控件和报表server
2014年11月10日---葡萄城宣布正式公布ActiveReports9,包含了三种报表模型:RDL报表.页面报表.区域报表.对于ActiveReports中的这个最新版本号中,我们专注于提高产品的 ...
随机推荐
- sas通过IMPORT过程读取外部文件数据
SAS通过IMPORT过程读取外部文件数据 使用IMPORT过程导入带分隔符的文件外,Microsoft Access数据库文件.Miscrosft Excel工作簿. dBase文件.JMP文件.S ...
- 使用注解配置Spring
使用注解配置Spring 1.为主配置文件引入新的命名空间(约束) 2.开启使用注解代理配置文件 3.在类中使用注解完成配置 将对象注册到容器 修改对象的作用范围 值类型注入 引用类型注入 注意: 初 ...
- c语言模拟c++的继承和多态
//C++中的继承与多态 struct A { virtual void fun() //C++中的多态:通过虚函数实现 { cout << "A:fun()" < ...
- C++ MFC棋牌类小游戏day4
根据昨天的计划,今天开始做下面的内容. 1.鼠标点击事件 2.点击坐标进行处理.(坐标转换) 3.判断选中的位置是否有效. 4.确定选中的棋子,设置棋子的状态和棋子所在坐标的状态. 5.判断移动是否有 ...
- hdmi中深度色彩像素打包
4个色彩像素包模式:24- 30- 36- 48- 不同模式下tmds时钟与与像素的比是位宽与24的比值 . 24 bit mode: TMDS clock = 1.0 x pixel clock ( ...
- SpringMVC+JQuery实现头像编辑器
一.简单说明 本头像编辑器主要实现了图片的上传.显示(不溢出父窗口).旋转.裁剪功能! 图片的上传用到的是异步上传,页面不进行刷新,原理是通过JQuery的异步提交+SpringMVC的上传 上传完毕 ...
- Codeforces Round #486 (Div. 3) E. Divisibility by 25
Codeforces Round #486 (Div. 3) E. Divisibility by 25 题目连接: http://codeforces.com/group/T0ITBvoeEx/co ...
- freeRTOS与裸机程序相比有什么区别??
FreeRTOS命名及变量规则 初学FreeRTOS的用户对其变量和函数的命名比较迷惑, FreeRTOS的核心源代码遵从MISRA编码标准指南,关于MISRA编码标准,可以查看文章https: ...
- Floyd多源最短路
可以对每一个顶点使用Dijkstra算法求多源最短路. 这里我们来介绍另一种解法:Floyd Floyd算法的主要思想是迭代.每次迭代会朝着答案更近一步. 首先定义一个二维数组Dk[i][j](k初始 ...
- Akka-Cluster(1)- Cluster Singleton 单例节点
关于cluster-singleton我在前面的博文已经介绍过,在这篇我想回顾一下它的作用和使用方法.首先,cluster-singleton就是集群某个节点上的一个actor.任何时间在集群内保证只 ...