浅谈ASP.NET报表控件
2010-08-30 09:41
232 查看
项目中有报表图形化的需求, 于是开始在网上找第三方chart控件。因时间紧迫,大至确定了几个候选:一、Office带的OWC控件;二、ComponentOne;三、Web Chart。本文将讲解ASP.NET报表控件。
OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口。
接着找到了ComponentOne的Web chart做出的各种效果图,效果极佳。我一下子被迷住了,决定就是它,于是马不停蹄的下了最新版100多M的安装文件,又花一上午找了个可以用的注册码,再找了篇教程,OK万事俱备,兴匆匆的开始写代码。需求不复杂,在一个页面上画出多条折线图即可,根据以往经验,这种大型商业共享软件在官方站点上看两个Example顶多一小时绝对能搞定的。但结果让我非常的恼火,官方的Example简单的它偏不提供,弄些什么AJAX的,一大堆实现辅助效果的代码,你要找的核心的那三四行打死也找不到,好像就怕你一下子把它的Example看明白了。历来讨厌这种软件。于是卸载、删除......等全部弄完,一天过去了。
还好,后来找到了Web Chart。代码超简洁,效果也还不错,写些简单的ASP.NET报表控件示例供大家参考:
ASP.NET报表控件一、折线图
ASP.NET报表控件二、柱状图
Web Chart为免费ASP.NET报表控件,需要的朋友可去官方地址下载:http://www.carlosag.net/Tools/WebChart/Default.aspx,上面还有很多效果和代码示例。
OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口。
接着找到了ComponentOne的Web chart做出的各种效果图,效果极佳。我一下子被迷住了,决定就是它,于是马不停蹄的下了最新版100多M的安装文件,又花一上午找了个可以用的注册码,再找了篇教程,OK万事俱备,兴匆匆的开始写代码。需求不复杂,在一个页面上画出多条折线图即可,根据以往经验,这种大型商业共享软件在官方站点上看两个Example顶多一小时绝对能搞定的。但结果让我非常的恼火,官方的Example简单的它偏不提供,弄些什么AJAX的,一大堆实现辅助效果的代码,你要找的核心的那三四行打死也找不到,好像就怕你一下子把它的Example看明白了。历来讨厌这种软件。于是卸载、删除......等全部弄完,一天过去了。
还好,后来找到了Web Chart。代码超简洁,效果也还不错,写些简单的ASP.NET报表控件示例供大家参考:
ASP.NET报表控件一、折线图
//引用命名空间 using WebChart; //定义一个颜色数组,供循环时为不同的记录填充不同的颜色 private string[] myColor = new string[] { "Tomato",//西红柿 "Black", "Gold", "Blue", "Green", "Orange", "Pink",//粉红 "Violet",//紫罗兰 "Orchid",//淡紫色 "Lime",//亮绿 "Tan",//茶色 "Red", "Navy"//橘红 }; //用静态方式示例了画出一条两个点的最简单折线.实际项目据此做循环而以. private void doIt() { //创建折线对象 LineChart myChart = new LineChart(); //为折线填充颜色 myChart.Line.Color = Color.FromName(myColor[0]); myChart.Fill.Color = Color.FromName(myColor[0]); myChart.LineMarker = new DiamondLineMarker(8, Color.FromName(myColor[0]), Color.FromName(myColor[0])); //图例说明 myChart.Legend = "折线一"; //添加第一个点,参数一为x座标上的名称,参数二为y座标上的值 myChart.Data.Add(new ChartPoint("一", float.Parse("100"))); //添加第二个点 myChart.Data.Add(new ChartPoint("二", float.Parse("200"))); //chart为控件ID this.chart.Charts.Add(myChart); this.chart.RedrawChart(); }
ASP.NET报表控件二、柱状图
//颜色数组 private string[] myColor = new string[] { "Fuchsia", "Black", "Gold", "Blue", "HotPink", "Orange", "Peru", "DodgerBlue", "Lime", "Tan", "Red", "GreenYellow", "DarkGreen", "DimGray", "Orchid" }; //调用该方法生成柱状图 private void bindchart() { //获取一个DataTable,具体函数略... DataTable dt = this.getdt(); if (dt != null) { if (dt.Rows.Count > 0) { //遍历DataTable为每条记录生成一个柱状 for (int i = 0; i < dt.Rows.Count; i++) { //创建对象 ColumnChart mychart = new ColumnChart(); //设置柱子宽度 mychart.MaxColumnWidth = 48; //颜色 mychart.Fill.Color = Color.FromName(this.myColor[i]); //在柱子上显示数量 mychart.DataLabels.Visible = true; //数量的字体 mychart.DataLabels.Font = new Font("Verdana", 14); //添加 mychart.Data.Add(new ChartPoint("", float.Parse(dt.Rows[i]["num"].ToString()))); //备注 mychart.Legend = dt.Rows[i]["name"].ToString(); this.chart.Charts.Add(mychart); } //辅助设置 //背景色 chart.Background.Color = Color.FromArgb(165, 0, 16); chart.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16); chart.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16); //内部线条 chart.Border.Color = Color.FromArgb(200, 200, 200); //边框样式 chart.BorderStyle = BorderStyle.None; //y最大值 double max = double.Parse(dt.Compute("MAX(num)","").ToString()); //递增值 int intv = 2; //数量小于16的情况 if (max < 16) { max = 16; } //大于16的情况 else { intintv = int.Parse(Math.Ceiling(max/8).ToString()); max += intv; } //设置Y轴终点值 chart.YCustomEnd = int.Parse(max.ToString()); //y递增值 chart.YValuesInterval = intv; //生成 this.chart.RedrawChart(); } } }
Web Chart为免费ASP.NET报表控件,需要的朋友可去官方地址下载:http://www.carlosag.net/Tools/WebChart/Default.aspx,上面还有很多效果和代码示例。
相关文章推荐
- 浅谈ASP.NET报表控件
- 浅谈ASP.NET报表控件
- (转)浅谈ASP.NET报表控件
- 浅谈ASP.NET报表控件
- 浅谈ASP.NET报表控件
- 一起谈.NET技术,浅谈ASP.NET 4中构造HTML5视频控件
- ASP.NET的五大数据控件浅谈
- (转载)ASP.NET的五大数据控件浅谈
- asp.net 打印控件之报表
- Asp.NET之浅谈控件
- 步署包含报表控件的Asp.net程序时错误总结
- 浅谈水晶报表在ASP.NET中的一种灵活应用
- ASP.NET的五大数据控件浅谈
- 浅谈ASP.NET 4中构造“.NET研究”HTML5视频控件
- 浅谈水晶报表在ASP.NET中的一种灵活应用
- ASP.NET的五大数据控件(GridView,DataList,Repeater ,DetailsView,FormView)浅谈
- 浅谈水晶报表在ASP.NET中的一种灵活应用
- 浅谈ASP.NET常用数据绑定控件优劣总结
- ASP.NET网站 报表控件版本问题
- ASP.NET的五大数据控件浅谈