asp.net页面统计报表的实现

原创 2007年09月22日 18:30:00
 

HTML Tags and JavaScript tutorial



asp.net页面统计报表的实现





原来一直用DataGrid来表达数据库中的数据,发现如果用报表来显示的话效果更明显
方法一:是用.NET框架下的GDI+
GDI+提供了一系列的Bitmap, Graphics, Brushes, Pens来绘制图
.cs
using Sytem.Drawing.Image;
   const int width = 600, height = 400;
   Bitmap myPalette = new Bitmap( width, height );
   Graphics myGraphics = Graphics.FromImage( myPalette );
   myGraphics.FillRectangle( new SolidBrush( Color.White ), 0, 0, width, height );
   //设定显示数据
   string [] DataName = { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
   int [] Data = { 100, 20, 50, 60, 240, 20 };
   //设定显示颜色
   Color [] myColors = { Color.Blue, Color.Red, Color.Yellow, Color.Purple, Color.Orange, Color.Brown
        };
   //绘制柱面图
   for( int i=0; i<DataName.Length; i++ )
   {
    //填充柱面图
    myGraphics.FillRectangle( new SolidBrush( myColors[i] ), (i*40)+30, 300-Data[i], 20, Data[i] );
    //绘制柱面图边界
    myGraphics.DrawRectangle( new Pen(Color.Black), (i*40)+30, 300-Data[i], 20, Data[i] );
    //绘制柱面图上放数据
    myGraphics.DrawString( Data[i].ToString(), new Font( "宋体", 9 ), Brushes.Black, new PointF( (i*40)+30, 300-Data[i]-20 ) ); //300-Data[i]-20 )
    //绘制柱面图下表
    myGraphics.DrawString( DataName[i], new Font( "宋体", 9 ), Brushes.Black, new PointF( (i*40)+30, 320 ) ); //320
   }
   //输出图
   myPalette.Save( Response.OutputStream, ImageFormat.Jpeg );
   //清除所有绘图对象
   myGraphics.Dispose();
   myPalette.Dispose();
效果图:
 
方法二:是用Microsoft Office Web Components
Microsoft Office Web Components是用于向Web页面添加电子表格,图标等数据处理功能的ActiveX,使用时不需要考虑画图方面的细节。在使用OWC时,系统中必须安装OFFICE,版本在2000及以上。
.cs
在引用中添加Microsoft Office Web Components 11.0,注意office 2000为9.0版本。
   string [] DataName = { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
   int [] Data = { 100, 20, 50, 60, 200, 20 };
   string strDataName = "";
   string strData = "";
   for( int i=0; i<Data.Length; i++ )
   {
    strDataName += DataName[i] + "/t";
    strData += Data[i].ToString() + "/t";
   }
   
   //创建chartSpace对象来放置图表
   OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();
   //使用chartSpace对象的add方法来创建图表,参数表示所创建图表的索引
   OWC11.ChChart objChart = objCSpace.Charts.Add( 0 );
   //制定图表的类型
   objChart.Type = OWC11.ChartChartTypeEnum.chChartTypePie;
   
   //指定图表是否需要图例
   objChart.HasLegend = true;
   //给定标题
   objChart.HasTitle = true;
   objChart.Title.Caption = "上半年月收入";
   objChart.SeriesCollection.Add( 0 );
   //给定series的名字
   objChart.SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimSeriesNames, (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, "图例1");
  
   //给定分类
   objChart.SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimCategories, (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, strDataName);
   //给定值
   objChart.SeriesCollection[0].SetData(OWC11.ChartDimensionsEnum.chDimValues, (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, strData );
   objCSpace.ExportPicture( Server.MapPath("") + @"/tmpFile.gif", "GIF", 400, 300 );
   //Bitmap myPalette = new Bitmap( Server.MapPath("") + @"/tmpFile.gif", true );
   //myPalette.Save( Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif );
   string strImageTag = "<img src='" + Server.MapPath("") + @"/tmpFile.gif" + "'/>";
   ChartPlaceHolder.Controls.Add( new LiteralControl( strImageTag ) );
效果图:
OWC显示柱面图的效果也非常的好看,只需要在上面的程序中修改很小的一部分
1 类型:
//制定图表的类型
   objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeColumnClustered;
2 设置x , y 的坐标:
//指定图表是否需要图例
   objChart.HasLegend = true;
   //给定标题
   objChart.HasTitle = true;
   objChart.Title.Caption = "上半年月收入";
   //给定x,y轴的图示说明
   objChart.Axes[0].HasTitle = true;
   objChart.Axes[0].Title.Caption = "Y: 数量";
   objChart.Axes[1].HasTitle = true;
   objChart.Axes[1].Title.Caption = "X: 月份";
用他们来显示数据库中的数据,一门了然,非常的清晰。客户也一定会非常的满意,当然,色彩的搭配也相当的重要咯。。。。。。


ASP.NET—015:ASP.NET中无刷新页面实现

前面也说过在asp.net中前后前交互的问题。使用了ajax.js的方法:$.post和$.ajax。http://blog.csdn.net/yysyangyangyangshan/article/...
  • yysyangyangyangshan
  • yysyangyangyangshan
  • 2014年09月30日 00:18
  • 7141

ASP.NET之AdRotator实现淘宝浏览页面的商品随机推荐功能

现在随便上个网都可以看到淘宝、京东等各大电商平台的双十一购物狂欢宣传,从2009年开始淘宝愣是把11.11这一天打造成了全民购物狂欢节。阿里巴巴的上市更是激发了阿里人的斗志,据说他们今年的目标是100...
  • u010858791
  • u010858791
  • 2014年10月31日 23:50
  • 1629

Asp.net中如何实现后台控制前台的跳转

背景:在做订餐系统的修改密码功能的时候,有这样一个需求,就是要在修改完成密码之后,需要跳转到登陆界面进行验证重新登陆,于是就有了今天的博客。 一、触发的方式         对于一般的触发的...
  • tr1912
  • tr1912
  • 2016年09月04日 13:26
  • 1203

net嵌入页面的几种方法

转自:http://blog.csdn.net/qin_zhangyongheng/article/details/38359919 一.应用框架技术  ---- 要在宿主页面中嵌...
  • threadroc
  • threadroc
  • 2016年08月28日 11:09
  • 863

Asp.Net底层解析(一)——常规ASPX页面的实现机制

前言:对于像ASP.NET这样的Web开发框架,我想绝大多数程序员都是像我一样,先学会怎么用,接下来在做项目的过程中逐渐积累“怎样用对”的经验,积累到一定量之后就会开始思考“为什么要这样写”、“怎样写...
  • mlcactus
  • mlcactus
  • 2013年02月01日 23:20
  • 2629

ASP.NET中局部刷新的实现

由于项目中需要用到局部刷新功能,所以在网上搜索学习了下,顺便就整理下写个博客。ASP.NET中的局部刷新 复制去Google翻译翻译结果...
  • u010568463
  • u010568463
  • 2015年04月07日 16:59
  • 4003

ASP.NET刷新页面的六种方法

第一:  private void Button1_Click( object sender, System.EventArgs e )    {       Response.Redirect...
  • txx9010
  • txx9010
  • 2013年08月08日 10:11
  • 1930

asp.net从零开始---002--前端页面布局

前端就是给人看的界面,后台人员不仅要知道后台代码的编写,更要知道前端的布局。有时候要比前端人员知道的还要多,因为有可能前端人员是个21天精通ps的大师级人物。这时候你可以自己写前端。1.CSS CSS...
  • lw_zhaoritian
  • lw_zhaoritian
  • 2016年08月03日 12:49
  • 3300

asp.net-页面跳转的方法及实例

实例如下: .aspx代码如下: 页面转向 通过静态的超链接转向: 我要自学网 ...
  • yayun0516
  • yayun0516
  • 2014年12月01日 11:22
  • 2182

教你轻松构建asp.net网站框架

一般的网站框架与下面的页面大致相同,分为4部分:如下图所标识的,1、2、4部分基本保持不变,主要变的只有第三部分,通过点击2部分的菜单,来使相应的页面显示在第3部分,而且2部分和3部分的内容都是灵活可...
  • wang379275614
  • wang379275614
  • 2014年03月06日 17:55
  • 5648
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net页面统计报表的实现
举报原因:
原因补充:

(最多只允许输入30个字)