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+JQuery+.Ashx实现+百度Echarts 实现动态柱状图数据图形报表的统计

最终效果图如下:

用SQL实现统计报表中的“小计”和“合计”

客户提出需求,针对某一列分组加上小计,合计汇总。网上找了一些有关SQL加合计的语句。都不是很理想。决定自己动手写。 思路有三个: 1.很多用GROUPPING和ROLLUP来实现。   优点实现...

统计报表中嵌入<a>标签,点击实现弹出清单功能

前两天帮着做了下统计报表的清单功能,功能很简单,统计报表的数据都是后台通过对多表联查等产生的,页面上就是一个Table,长的还蛮像回事的。      由于报表这块的前期设计并不全面,没有考虑到后期清单...
  • lfsfxy9
  • lfsfxy9
  • 2013年03月11日 22:57
  • 2069

基于Android MPAndroidChart实现腾讯QQ群数据统计报表核心功能

 基于Android MPAndroidChart实现腾讯QQ群数据统计报表核心功能  腾讯QQ移动客户端(新版)的QQ群有一项功能比较有趣,是关于QQ群的。QQ群新增一项功能开放给具有管理权...

【案例分享】电力设备生产数据的多层分组统计报表实现

用矩表控件可以通过简单的拖拽,来轻松实现多层分组报表,不管有多少个分组和分组小计都能简单解决。...

实现动态统计报表,表头是调用数据库中的字段显示出来的。

最近在项目中有这个需求,因此做了出来,分享给大家。 一、目的:实现动态统计报表,表头是调用数据库中的字段显示出来的。 二、实现效果: 其中:收入类、虚列收入、转移收入、多列收...

asp.net 在线人数统计,页面访问量 Application ,session

asp.net 在线人数统计,页面访问量 Application ,session 1.新建网站,添加几个窗体。webForm1.aspx ,ViewStateForm.aspx 2.在网...
  • zhexcel
  • zhexcel
  • 2012年08月15日 15:49
  • 146

ASP.NET MVC使用Filter实现页面验证与授权

关于ASP.NET MVC的Filter(过滤器的讲解)见:http://www.cnblogs.com/BreatheLee/archive/2012/06/07/2540469.html 关于授...
  • zht666
  • zht666
  • 2013年01月21日 15:54
  • 12202
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net页面统计报表的实现
举报原因:
原因补充:

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