靠谱朗驰娱乐体育

浅谈ASP.NET报表控件

转帖|其它|编辑:郝浩|2010-08-30 13:46:29.000|阅读 1230 次

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

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  项目中有报表图形化的需求, 于是开始在网上找第三方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报表控件一、折线图

  1.//引用命名空间

  2.using WebChart;

  3.

  4.//定义一个颜色数组,供循环时为不同的记录填充不同的颜色

  5.private string[] myColor = new string[]

  6.{

  7.    "Tomato",//西红柿

  8.    "Black",

  9.    "Gold",

  10.    "Blue",

  11.    "Green",

  12.    "Orange",

  13.    "Pink",//粉红

  14.    "Violet",//紫罗兰

  15.    "Orchid",//淡紫色

  16.    "Lime",//亮绿

  17.    "Tan",//茶色

  18.    "Red",

  19.    "Navy"//橘红

  20.};

  21.

  22.//用静态方式示例了画出一条两个点的最简单折线.实际项目据此做循环而以.

  23.private void doIt()

  24.{

  25.    //创建折线对象

  26.    LineChart myChart = new LineChart();

  27.    //为折线填充颜色

  28.    myChart.Line.Color = Color.FromName(myColor[0]);

  29.    myChart.Fill.Color = Color.FromName(myColor[0]);

  30.    myChart.LineMarker = new DiamondLineMarker(8, Color.FromName(myColor[0]), Color.FromName(myColor[0]));

  31.    //图例说明

  32.    myChart.Legend = "折线一";

  33.    //添加第一个点,参数一为x座标上的名称,参数二为y座标上的值

  34.    myChart.Data.Add(new ChartPoint("一", float.Parse("100")));

  35.    //添加第二个点

  36.    myChart.Data.Add(new ChartPoint("二", float.Parse("200")));

  37.    //chart为控件ID

  38.    this.chart.Charts.Add(myChart);

  39.    this.chart.RedrawChart();

  40.}

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

  41.//颜色数组

  42.private string[] myColor = new string[]

  43.{

  44.    "Fuchsia",

  45.    "Black",

  46.    "Gold",

  47.    "Blue",

  48.    "HotPink",

  49.    "Orange",

  50.    "Peru",

  51.    "DodgerBlue",

  52.    "Lime",

  53.    "Tan",

  54.    "Red",

  55.    "GreenYellow",

  56.    "DarkGreen",

  57.    "DimGray",

  58.    "Orchid"

  59.};

  60.

  61.//调用该方法生成柱状图

  62.private void bindchart()

  63.{

  64.    //获取一个DataTable,具体函数略...

  65.    DataTable dt = this.getdt();

  66.    if (dt != null)

  67.    {

  68.        if (dt.Rows.Count > 0)

  69.        {

  70. ;           //遍历DataTable为每条记录生成一个柱状

  71.    &nbsp;       for (int i = 0; i < dt.Rows.Count; i++)

  72.&nbsp;           {

  73.            &nbsp;   //创建对象

  74.      &nbsp;      &nbsp;  ColumnChart mychart = new ColumnChart();

  75.      ;          //设置柱子宽度

  76.&nbsp;               mychart.MaxColumnWidth = 48;

  77.       &nbsp;        //颜色

  78.    &nbsp;         &nbsp; mychart.Fill.Color = Color.FromName(this.myColor[i]);

  79.         &nbsp;   &nbsp;  //在柱子上显示数量

  80.        &nbsp;       mychart.DataLabels.Visible = true;

  81.                //数量的字体

  82.            &nbsp;   mychart.DataLabels.Font = new Font("Verdana", 14);

  83. &nbsp;              //添加

  84.                mychart.Data.Add(new ChartPoint(&quot;", float.Parse(dt.Rows[i]["num"].ToString())));

  85.         &nbsp;      //备注

  86.            ;    mychart.Legend = dt.Rows[i]["name"].ToString();

  87.    &nbsp;           this.chart.Charts.Add(mychart);

  88. &nbsp;          }

  89.            //辅助设置

  90.         ;   //背景色

  91.            chart.Background.Color = Color.FromArgb(165, 0, 16);

  92.            chart.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16);

  93.            chart.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16);

  94.            //内部线条

  95.       ;     chart.Border.Color = Color.FromArgb(200, 200, 200);

  96.    &nbsp;       //边框样式

  97.         &nbsp;  chart.BorderStyle = BorderStyle.None;

  98.        &nbsp;   //y最大值

  99.            double max = double.Parse(dt.Compute("MAX(num)","").ToString());

  100.  &nbsp;   ;      //递增值

  101.   &nbsp;        int intv = 2;

  102.

  103. ;           //数量小于16的情况

  104.          &nbsp; if (max < 16)

  105.         &nbsp;  {

  106.        &nbsp;       max = 16;

  107.            }

  108.         &nbsp;  //大于16的情况

  109.         &nbsp;  else

  110.    &nbsp;  ;     {

  111.                intintv = int.Parse(Math.Ceiling(max/8).ToString());

  112.       &nbsp; &nbsp;      max += intv;

  113.            }

  114.

  115.   &nbsp;        //设置Y轴终点值

  116.        &nbsp;   chart.YCustomEnd = int.Parse(max.ToString());

  117.   &nbsp;        //y递增值

  118. &nbsp;          chart.YValuesInterval = intv;

  119.

  120.  &nbsp;&nbsp;        //生成

  121.   ;         this.chart.RedrawChart();

  122.      &nbsp; }

  123.    }

  124.}

 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ldacury.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP
PM娱乐城知名最大推荐(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 腾曜集团权威足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 真人权威半岛网址(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 利记十大真人网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 朗驰娱乐最火足球网站(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 知名朗驰娱乐足球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 线上十大盛凯国际推荐(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 朗驰娱乐线上足球大全(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新)