<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

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

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


    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。代碼超簡潔,效果也還不錯,寫些簡單的示例供大家參考:


    一、折線圖

      

    //引用命名空間
    using WebChart;

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

    //用靜態(tài)方式示例了畫出一條兩個點的最簡單折線.實際項目據(jù)此做循環(huán)而以.
    private void doIt()
    {
        
    //創(chuàng)建折線對象
        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 = "折線一";
        
    //添加第一個點,參數(shù)一為x座標上的名稱,參數(shù)二為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();
    }

    二、柱狀圖


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

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

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

                
    //設(shè)置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 ** 閱讀(138) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久亚洲欧洲日产国码二区 | 91在线视频免费91| 在线亚洲午夜片AV大片| 四虎国产精品免费视| APP在线免费观看视频| 亚洲人xxx日本人18| av在线亚洲欧洲日产一区二区| 美女内射无套日韩免费播放| 亚洲七久久之综合七久久| 久久久久亚洲精品无码网址| 免费观看无遮挡www的视频| 免费一级做a爰片久久毛片潮| 久久精品国产精品亚洲毛片| 免费一级毛片在线观看| 无码精品一区二区三区免费视频| 亚洲国产aⅴ成人精品无吗| 久久亚洲成a人片| 波多野结衣中文一区二区免费| 精品无码无人网站免费视频| 国产亚洲Av综合人人澡精品| 日产亚洲一区二区三区| 亚洲性日韩精品国产一区二区| 亚洲成人免费电影| 97国免费在线视频| 亚洲av成人片在线观看| 亚洲欧洲日韩国产| 亚洲精品卡2卡3卡4卡5卡区| 免费a级毛片无码av| 日本三级2019在线观看免费| 日本一区午夜艳熟免费| 免费视频成人国产精品网站| 亚洲色大成网站www尤物| 亚洲网红精品大秀在线观看| 亚洲中文字幕无码中文字在线| 情侣视频精品免费的国产| 国产精品免费观看| 99在线免费观看视频| 男女一进一出抽搐免费视频| 曰批免费视频播放在线看片二| 亚洲一区二区三区无码国产| 亚洲天天做日日做天天欢毛片|