<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    Web Chart

    項目中有報表圖形化的需求, 于是開始在網上找第三方chart控件。因時間緊迫,在CSDN中搜了幾輪后大至確定了幾個候選:

          一、Office帶的OWC控件;二、ComponentOne;三、Web Chart。


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


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


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


    一、折線圖

      

    //引用命名空間
    using WebChart;

    //定義一個顏色數組,供循環時為不同的記錄填充不同的顏色
    private string[] myColor = new string[]
    {
        
    "Tomato",//西紅柿
        "Black",
        
    "Gold",
        
    "Blue",
        
    "Green",
        
    "Orange",
        
    "Pink",//粉紅
        "Violet",//紫羅蘭
        "Orchid",//淡紫色
        "Lime",//亮綠
        "Tan",//茶色
        "Red",
        
    "Navy"//橘紅
    };

    //用靜態方式示例了畫出一條兩個點的最簡單折線.實際項目據此做循環而以.
    private void doIt()
    {
        
    //創建折線對象
        LineChart myChart = new LineChart();
        
    //為折線填充顏色
        myChart.Line.Color = Color.FromName(myColor[0]);
        myChart.Fill.Color 
    = Color.FromName(myColor[0]);
        myChart.LineMarker 
    = new DiamondLineMarker(8, Color.FromName(myColor[0]), Color.FromName(myColor[0]));
        
    //圖例說明
        myChart.Legend = "折線一";
        
    //添加第一個點,參數一為x座標上的名稱,參數二為y座標上的值
        myChart.Data.Add(new ChartPoint(""float.Parse("100")));
        
    //添加第二個點
        myChart.Data.Add(new ChartPoint(""float.Parse("200")));
        
    //chart為控件ID
        this.chart.Charts.Add(myChart);
        
    this.chart.RedrawChart();
    }

    二、柱狀圖


    //顏色數組
    private string[] myColor = new string[]
    {
        
    "Fuchsia",
        
    "Black",
        
    "Gold",
        
    "Blue",
        
    "HotPink",
        
    "Orange",
        
    "Peru",
        
    "DodgerBlue",
        
    "Lime",
        
    "Tan",
        
    "Red",
        
    "GreenYellow",
        
    "DarkGreen",
        
    "DimGray",
        
    "Orchid"
    };

    //調用該方法生成柱狀圖
    private void bindchart()
    {
        
    //獲取一個DataTable,具體函數略...
        DataTable dt = this.getdt();
        
    if (dt != null)
        {
            
    if (dt.Rows.Count > 0)
            {
                
    //遍歷DataTable為每條記錄生成一個柱狀
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    
    //創建對象
                    ColumnChart mychart = new ColumnChart();
                    
    //設置柱子寬度
                    mychart.MaxColumnWidth = 48;
                    
    //顏色
                    mychart.Fill.Color = Color.FromName(this.myColor[i]);
                    
    //在柱子上顯示數量
                    mychart.DataLabels.Visible = true;
                    
    //數量的字體
                    mychart.DataLabels.Font = new Font("Verdana"14);
                    
    //添加
                    mychart.Data.Add(new ChartPoint(""float.Parse(dt.Rows[i]["num"].ToString())));
                    
    //備注
                    mychart.Legend = dt.Rows[i]["name"].ToString();
                    
    this.chart.Charts.Add(mychart);
                }
                
    //輔助設置
                
    //背景色
                chart.Background.Color = Color.FromArgb(165016);
                chart.YAxisFont.ForeColor 
    = Color.FromArgb(165016);
                chart.XAxisFont.ForeColor 
    = Color.FromArgb(165016);
                
    //內部線條
                chart.Border.Color = Color.FromArgb(200200200);
                
    //邊框樣式
                chart.BorderStyle = BorderStyle.None;
                
    //y最大值
                double max = double.Parse(dt.Compute("MAX(num)","").ToString());
                
    //遞增值
                int intv = 2;

                
    //數量小于16的情況
                if (max < 16)
                {
                    max 
    = 16;
                }
                
    //大于16的情況
                else
                {
                    intv 
    = int.Parse(Math.Ceiling(max/8).ToString());
                    max 
    += intv;
                }

                
    //設置Y軸終點值
                chart.YCustomEnd = int.Parse(max.ToString());
                
    //y遞增值
                chart.YValuesInterval = intv;

                
    //生成
                this.chart.RedrawChart();
            }
        }
    }

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

    posted on 2012-08-18 17:02 ** 閱讀(141) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學習

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码av免费一区二区三区| 亚洲日韩精品无码专区| 夜夜爽妓女8888视频免费观看| 手机看黄av免费网址| 久久久久亚洲AV无码麻豆| 久久久99精品免费观看| 亚洲色欲久久久综合网东京热| 国产国产人免费人成成免视频| 亚洲精品国产电影| 成人免费观看男女羞羞视频| 亚洲狠狠爱综合影院婷婷| 一区二区免费在线观看| 免费无遮挡无码视频在线观看| 日韩特黄特色大片免费视频| 亚洲国产AV无码一区二区三区| 成年人免费视频观看| 无码亚洲成a人在线观看| 男人的天堂亚洲一区二区三区 | 亚洲大尺度无码专区尤物| a级成人免费毛片完整版| 亚洲AV日韩精品久久久久久久| 99久久免费精品高清特色大片| 亚洲精品视频久久| 免费观看黄网站在线播放| 亚洲国产成人久久综合| 亚洲成A人片在线观看无码3D | 国产啪精品视频网站免费尤物| 久久久久亚洲精品美女| 国产精品久久免费| 亚洲欧洲无码AV不卡在线| 亚洲精品在线视频| 三级黄色在线免费观看| 亚洲视频网站在线观看| 在线A级毛片无码免费真人| 成人福利在线观看免费视频| 亚洲av日韩av无码| 日韩成人免费视频播放| A毛片毛片看免费| 亚洲宅男天堂a在线| 免费人成视频x8x8入口| 久久久久国色AV免费观看|