OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口。

接着找到了ComponentOne的Web chart做出的各种效果图,效果极佳。我一下子被迷住了,决定就是它,于是马不停蹄的下了最新版100多M的安装文件,又花一上午找了个可以用的注册码,再找了篇教程,OK万事俱备,兴匆匆的开始写代码。需求不复杂,在一个页面上画出多条折线图即可,根据以往经验,这种大型商业共享软件在官方站点上看两个Example顶多一小时绝对能搞定的。但结果让我非常的恼火,官方的Example简单的它偏不提供,弄些什么AJAX的,一大堆实现辅助效果的代码,你要找的核心的那三四行打死也找不到,好像就怕你一下子把它的Example看明白了。历来讨厌这种软件。于是卸载、删除......等全部弄完,一天过去了。

还好,后来找到了Web Chart。代码超简洁,效果也还不错,写些简单的ASP.NET报表控件示例供大家参考:

ASP.NET报表控件一、折线图

  1. //引用命名空间
  2. using WebChart;
  3. //定义一个颜色数组,供循环时为不同的记录填充不同的颜色
  4. private string[] myColor = new string[]
  5. {
  6. "Tomato",//西红柿
  7. "Black",
  8. "Gold",
  9. "Blue",
  10. "Green",
  11. "Orange",
  12. "Pink",//粉红
  13. "Violet",//紫罗兰
  14. "Orchid",//淡紫色
  15. "Lime",//亮绿
  16. "Tan",//茶色
  17. "Red",
  18. "Navy"//橘红
  19. };
  20. //用静态方式示例了画出一条两个点的最简单折线.实际项目据此做循环而以.
  21. private void doIt()
  22. {
  23. //创建折线对象
  24. LineChart myChart = new LineChart();
  25. //为折线填充颜色
  26. myChart.Line.Color = Color.FromName(myColor[0]);
  27. myChart.Fill.Color = Color.FromName(myColor[0]);
  28. myChart.LineMarker = new DiamondLineMarker(8, Color.FromName(myColor[0]), Color.FromName(myColor[0]));
  29. //图例说明
  30. myChart.Legend = "折线一";
  31. //添加第一个点,参数一为x座标上的名称,参数二为y座标上的值
  32. myChart.Data.Add(new ChartPoint("一", float.Parse("100")));
  33. //添加第二个点
  34. myChart.Data.Add(new ChartPoint("二", float.Parse("200")));
  35. //chart为控件ID
  36. this.chart.Charts.Add(myChart);
  37. this.chart.RedrawChart();
  38. }

ASP.NET报表控件二、柱状图

  1. //颜色数组
  2. private string[] myColor = new string[]
  3. {
  4. "Fuchsia",
  5. "Black",
  6. "Gold",
  7. "Blue",
  8. "HotPink",
  9. "Orange",
  10. "Peru",
  11. "DodgerBlue",
  12. "Lime",
  13. "Tan",
  14. "Red",
  15. "GreenYellow",
  16. "DarkGreen",
  17. "DimGray",
  18. "Orchid"
  19. };
  20. //调用该方法生成柱状图
  21. private void bindchart()
  22. {
  23. //获取一个DataTable,具体函数略...
  24. DataTable dt = this.getdt();
  25. if (dt != null)
  26. {
  27. if (dt.Rows.Count > 0)
  28. {
  29. //遍历DataTable为每条记录生成一个柱状
  30. for (int i = 0; i < dt.Rows.Count; i++)
  31. {
  32. //创建对象
  33. ColumnChart mychart = new ColumnChart();
  34. //设置柱子宽度
  35. mychart.MaxColumnWidth = 48;
  36. //颜色
  37. mychart.Fill.Color = Color.FromName(this.myColor[i]);
  38. //在柱子上显示数量
  39. mychart.DataLabels.Visible = true;
  40. //数量的字体
  41. mychart.DataLabels.Font = new Font("Verdana", 14);
  42. //添加
  43. mychart.Data.Add(new ChartPoint("", float.Parse(dt.Rows[i]["num"].ToString())));
  44. //备注
  45. mychart.Legend = dt.Rows[i]["name"].ToString();
  46. this.chart.Charts.Add(mychart);
  47. }
  48. //辅助设置
  49. //背景色
  50. chart.Background.Color = Color.FromArgb(165, 0, 16);
  51. chart.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16);
  52. chart.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16);
  53. //内部线条
  54. chart.Border.Color = Color.FromArgb(200, 200, 200);
  55. //边框样式
  56. chart.BorderStyle = BorderStyle.None;
  57. //y最大值
  58. double max = double.Parse(dt.Compute("MAX(num)","").ToString());
  59. //递增值
  60. int intv = 2;
  61. //数量小于16的情况
  62. if (max < 16)
  63. {
  64. max = 16;
  65. }
  66. //大于16的情况
  67. else
  68. {
  69. intintv = int.Parse(Math.Ceiling(max/8).ToString());
  70. max += intv;
  71. }
  72. //设置Y轴终点值
  73. chart.YCustomEnd = int.Parse(max.ToString());
  74. //y递增值
  75. chart.YValuesInterval = intv;
  76. //生成
  77. this.chart.RedrawChart();
  78. }
  79. }
  80. }

Web Chart为免费ASP.NET报表控件,需要的朋友可去官方地址下载:http://www.carlosag.net/Tools/WebChart/Default.aspx,上面还有很多效果和代码示例。

浅谈ASP.NET报表控件的更多相关文章

  1. (转)浅谈ASP.NET报表控件

    项目中有报表图形化的需求, 于是开始在网上找第三方chart控件.因时间紧迫,大至确定了几个候选:一.Office带的OWC控件:二.ComponentOne:三.Web Chart.本文将讲解ASP ...

  2. 浅谈WPF中对控件的位图特效(WPF Bitmap Effects)

    原文:浅谈WPF中对控件的位图特效(WPF Bitmap Effects) -------------------------------------------------------------- ...

  3. 浅谈简单实现file控件的图片预览,裁剪和上传。

    1.图片预览之FileReader对象    FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象指定要读取的文件或数据 ...

  4. 在ASP.NET MVC 中使用ActiveReports报表控件

    随着MVC模式的广泛运用,对Web应用系统的开发带来了巨大的影响,我们好像又回到了原来的ASP时代,视乎这是一种后退而不是一种进步,不过MVC模式给我们带来的影响不仅限于我们所看到的这一点..MVC看 ...

  5. 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  6. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. ActiveReports 报表控件官方中文入门教程 (1)-安装、激活以及产品资源

    本系列文章主要是面向初次接触 ActiveReports 产品的用户,可以帮助您在三天之内轻松的掌握ActiveReports控件的基本使用方法,包括安装.激活.创建报表.绑定数据源以及发布等内容.本 ...

  8. ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布

    本篇文章将阐述首次使用 ActiveReports 报表控件 的方法,包括添加报表文件.绑定数据源以及如何发布报表等内容. ActiveReports 报表控件官方中文入门教程 (1)-安装.激活以及 ...

  9. 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件

    Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...

随机推荐

  1. delphi 2010是动画GIF的支持方法

    下面delphi 2010是动画GIF的支持方法:  1.在窗体上放一个Image1控件.注意:这时设置其Picture属性,加载一幅动画GIF是不会动画显示的.  2.在窗体的FormCreate事 ...

  2. C#导出GridView数据到Excel文件类

    using System; using System.Web; using System.Web.UI; using System.IO; using System.Web.UI.WebControl ...

  3. windows下文件名非法字符

    / \ : * ? " < > | / \如果用作文件名,会产生路径问题.因为绝对路径用 \ ; 相对路径用  / ;

  4. Python pexpect出现错误‘module have no attribute "spawn" 解决办法

    今天我遇到了这个错误,现在将错误总结如下: 1.首先查询一下自己的操作系统,pexpect中的spawn()和run()仅仅运行在POSIX系统上,在WINDOWS下是没有这两个东西的,在官网http ...

  5. hdu 1237 简单计算器

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单计算器 Description 读入一个只包含 +, -, *, / 的非负整数计算表达式, ...

  6. poj 1459 Power Network

    题目连接 http://poj.org/problem?id=1459 Power Network Description A power network consists of nodes (pow ...

  7. Java之蛋疼的file Protocol

    file Protocol Opens a file on a local or network drive. Syntax file:///sDrives[|sFile] Tokens sDrive ...

  8. 【linux命令系列】熟练运用每一个光标移动到最前和最后

    ctrl+e?a和e      ahead 和 end 看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下 ...

  9. flask中文问题

    在使用flask时在模板中使用了中文,运行的时候遇到下面的问题: UnicodeDecodeError UnicodeDecodeError: 'utf8' codec can't decode by ...

  10. linux系统下sd卡的备份与恢复

    linux系统下sd卡的备份与恢复 现在各种的开发板都是从sd卡上面启动的,因此大修改工作之前很有必要备份一下. 备份 在linux系统下用读卡器读取sd卡 用df -h命令看分区的路径 一般都是/d ...