淺談ASP.NET報表控制項

來源:互聯網
上載者:User
淺談ASP.NET報表控制項作者:管理員 來源:51CTO 瀏覽:360 發布時間:2010-6-19 0:26:07

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();  

ASP.NET報表控制項二、柱狀圖

 
  1. //顏色數組  
  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. //調用該方法產生柱狀圖  
  22. private void bindchart()  
  23. {  
  24.     //擷取一個DataTable,具體函數略...  
  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.                 //建立對象  
  34.                 ColumnChart mychart = new ColumnChart();  
  35.                 //設定柱子寬度  
  36.                 mychart.MaxColumnWidth = 48;  
  37.                 //顏色  
  38.                 mychart.Fill.Color = Color.FromName(this.myColor[i]);  
  39.                 //在柱子上顯示數量  
  40.                 mychart.DataLabels.Visible = true;  
  41.                 //數量的字型  
  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.             //輔助設定  
  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.             //內部線條  
  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.             //數量小於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.             //設定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,上面還有很多效果和程式碼範例。

已有 0 人發表留言,猛擊->>這裡<<-參與討論

ITeye推薦

  • —軟體人才免語言低擔保 赴美帶薪讀研!—

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.