自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談ASP.NET報表控件

開發(fā) 后端
項目中有報表圖形化的需求, 于是開始在網(wǎng)上找第三方chart控件。因時間緊迫,大至確定了幾個候選:一、Office帶的OWC控件;二、ComponentOne;三、Web Chart。本文將講解ASP.NET報表控件。

OWC似乎使用者居多,但看見有網(wǎng)友在帖中抱怨OWC在使用時需要許可證書,于是將其排除,我可不想BOSS在看報表時彈出一個“沒有許可證書”的窗口。

接著找到了ComponentOne的Web chart做出的各種效果圖,效果***。我一下子被迷住了,決定就是它,于是馬不停蹄的下了***版100多M的安裝文件,又花一上午找了個可以用的注冊碼,再找了篇教程,OK萬事俱備,興匆匆的開始寫代碼。需求不復(fù)雜,在一個頁面上畫出多條折線圖即可,根據(jù)以往經(jīng)驗,這種大型商業(yè)共享軟件在官方站點上看兩個Example頂多一小時絕對能搞定的。但結(jié)果讓我非常的惱火,官方的Example簡單的它偏不提供,弄些什么AJAX的,一大堆實現(xiàn)輔助效果的代碼,你要找的核心的那三四行打死也找不到,好像就怕你一下子把它的Example看明白了。歷來討厭這種軟件。于是卸載、刪除......等全部弄完,一天過去了。

還好,后來找到了Web Chart。代碼超簡潔,效果也還不錯,寫些簡單的ASP.NET報表控件示例供大家參考:

ASP.NET報表控件一、折線圖

折線圖

  1. //引用命名空間  
  2. using WebChart;  
  3.  
  4. //定義一個顏色數(shù)組,供循環(huán)時為不同的記錄填充不同的顏色  
  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"http://橘紅  
  20. };  
  21.  
  22. //用靜態(tài)方式示例了畫出一條兩個點的最簡單折線.實際項目據(jù)此做循環(huán)而以.  
  23. private void doIt()  
  24. {  
  25.     //創(chuàng)建折線對象  
  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.     //添加***個點,參數(shù)一為x座標(biāo)上的名稱,參數(shù)二為y座標(biāo)上的值  
  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();  

ASP.NET報表控件二、柱狀圖

柱狀圖
  1. //顏色數(shù)組  
  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. //調(diào)用該方法生成柱狀圖  
  22. private void bindchart()  
  23. {  
  24.     //獲取一個DataTable,具體函數(shù)略...  
  25.     DataTable dt = this.getdt();  
  26.     if (dt != null)  
  27.     {  
  28.         if (dt.Rows.Count > 0)  
  29.         {  
  30.             //遍歷DataTable為每條記錄生成一個柱狀  
  31.             for (int i = 0; i < dt.Rows.Count; i++)  
  32.             {  
  33.                 //創(chuàng)建對象  
  34.                 ColumnChart mychart = new ColumnChart();  
  35.                 //設(shè)置柱子寬度  
  36.                 mychart.MaxColumnWidth = 48;  
  37.                 //顏色  
  38.                 mychart.Fill.Color = Color.FromName(this.myColor[i]);  
  39.                 //在柱子上顯示數(shù)量  
  40.                 mychart.DataLabels.Visible = true;  
  41.                 //數(shù)量的字體  
  42.                 mychart.DataLabels.Font = new Font("Verdana", 14);  
  43.                 //添加  
  44.                 mychart.Data.Add(new ChartPoint("", float.Parse(dt.Rows[i]["num"].ToString())));  
  45.                 //備注  
  46.                 mychart.Legend = dt.Rows[i]["name"].ToString();  
  47.                 this.chart.Charts.Add(mychart);  
  48.             }  
  49.             //輔助設(shè)置  
  50.             //背景色  
  51.             chart.Background.Color = Color.FromArgb(165, 0, 16);  
  52.             chart.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16);  
  53.             chart.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16);  
  54.             //內(nèi)部線條  
  55.             chart.Border.Color = Color.FromArgb(200, 200, 200);  
  56.             //邊框樣式  
  57.             chart.BorderStyle = BorderStyle.None;  
  58.             //y***值  
  59.             double max = double.Parse(dt.Compute("MAX(num)","").ToString());  
  60.             //遞增值  
  61.             int intv = 2;  
  62.  
  63.             //數(shù)量小于16的情況  
  64.             if (max < 16)  
  65.             {  
  66.                 max = 16;  
  67.             }  
  68.             //大于16的情況  
  69.             else  
  70.             {  
  71.                 intintv = int.Parse(Math.Ceiling(max/8).ToString());  
  72.                 max += intv;  
  73.             }  
  74.  
  75.             //設(shè)置Y軸終點值  
  76.             chart.YCustomEnd = int.Parse(max.ToString());  
  77.             //y遞增值  
  78.             chart.YValuesInterval = intv;  
  79.  
  80.             //生成  
  81.             this.chart.RedrawChart();  
  82.         }  
  83.     }  

Web Chart為免費ASP.NET報表控件,需要的朋友可去官方地址下載:http://www.carlosag.net/Tools/WebChart/Default.aspx,上面還有很多效果和代碼示例。

【編輯推薦】

  1. ASP.NET環(huán)境下的Shell函數(shù)
  2. 在ASP.NET中向數(shù)據(jù)庫批量插入數(shù)據(jù)
  3. ASP.NET用Post方式向網(wǎng)頁發(fā)送數(shù)據(jù)
  4. ASP.NET 2.0部署WEB應(yīng)用程序淺析
  5. ASP.NET中的HttpWorkerRequest對像
  6. ASP.NET 2.0中的OWC組件前夕
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-08-04 17:18:37

2009-07-24 10:52:42

ASP.NET ISA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-20 15:30:11

ASP.NET應(yīng)用

2009-08-05 15:29:33

ASP.NET For

2009-07-23 15:44:39

ASP.NET MVC

2009-07-28 17:49:30

ASP.NET定期回收

2009-07-20 17:12:17

ASP.NET訪問數(shù)據(jù)

2009-07-28 16:03:23

ASP.NET狀態(tài)服務(wù)

2009-08-10 10:19:47

ASP.NET組件設(shè)計

2009-07-22 13:24:24

ASP.NET MVC

2009-08-03 17:56:25

ASP.NET 數(shù)據(jù)控

2009-07-23 15:24:37

ASP.NET Ima

2011-08-23 10:58:59

2009-07-21 14:16:02

ASP.NET管道優(yōu)化

2009-07-29 09:29:06

ASP.NET水晶報表

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2009-08-19 13:44:00

ASP.NET Lis

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID
點贊
收藏

51CTO技術(shù)棧公眾號