<noscript id="eassg"><table id="eassg"></table></noscript>
  • <strike id="eassg"><s id="eassg"></s></strike>
  • <ul id="eassg"></ul>
    注冊|登錄

    聯系電話:024-31891684  13390130939
    沈陽軟件公司--沈陽軟件定制

    沈陽軟件開發_沈陽軟件公司_沈陽軟件定制/軟件/最新技術

    Latest technology最新技術

    建立RadControls圖表方法

    瀏覽量:4296

    #region 圖表方法

    /// <summary>
    /// 創建圖表數據集
    /// </summary>
    public static DataSet CreateChartDataSet()
    {
    DataSet dsChart = new DataSet();
    // 添加基本表
    DataTable dtChartBase = new DataTable("ChartBase");
    dtChartBase.Columns.Add("Title", typeof(string));
    dtChartBase.Columns.Add("Show3D", typeof(bool)).DefaultValue = false;
    dtChartBase.Columns.Add("ShowLegend", typeof(bool)).DefaultValue = false;
    dtChartBase.Columns.Add("ChartType", typeof(string));
    dtChartBase.Columns.Add("Width", typeof(string));
    dtChartBase.Columns.Add("Height", typeof(string));
    dsChart.Tables.Add(dtChartBase);
    // 添加軸表
    DataTable dtChartAxis = new DataTable("ChartAxis");
    dtChartAxis.Columns.Add("XTitle", typeof(string));
    dtChartAxis.Columns.Add("YTitle", typeof(string));
    dtChartAxis.Columns.Add("XStartFromZero", typeof(bool)).DefaultValue = false;
    dtChartAxis.Columns.Add("YStartFromZero", typeof(bool)).DefaultValue = false;
    dtChartAxis.Columns.Add("XValueType", typeof(ChartValueTypes)).DefaultValue = ChartValueTypes.Double;
    dtChartAxis.Columns.Add("YValueType", typeof(ChartValueTypes)).DefaultValue = ChartValueTypes.Double;
    dtChartAxis.Columns.Add("XFormat", typeof(string)).DefaultValue = "N2";
    dtChartAxis.Columns.Add("YFormat", typeof(string)).DefaultValue = "N2";
    dtChartAxis.Columns.Add("XAngle", typeof(int)).DefaultValue = 30;
    dtChartAxis.Columns.Add("YAngle", typeof(int)).DefaultValue = 30;
    dsChart.Tables.Add(dtChartAxis);
    // 添加數據表
    DataTable dtSeriesData = new DataTable("SeriesData");
    dtSeriesData.Columns.Add("Series", typeof(string));
    dtSeriesData.Columns.Add("XValue", typeof(string));
    dtSeriesData.Columns.Add("YValue", typeof(string));
    dsChart.Tables.Add(dtSeriesData);

    // 添加明細表
    DataTable dtSeriesDetail = new DataTable("SeriesDetail");
    dtSeriesDetail.Columns.Add("Series", typeof(string));
    dtSeriesDetail.Columns.Add("ChartType", typeof(string));
    dtSeriesDetail.Columns.Add("ShowLabelAsValue", typeof(bool)).DefaultValue = false;
    dsChart.Tables.Add(dtSeriesDetail);

    dsChart.RemotingFormat = System.Data.SerializationFormat.Binary;
    return dsChart;
    }
    /// <summary>
    /// 顯示圖表
    /// </summary>
    /// <param name="chart">圖表</param>
    /// <param name="ds">數據集</param>
    public static void ShowChart(Dundas.Charting.WebControl.Chart chart, DataSet ds)
    {
    if (ds == null)
    {
    chart.ImageUrl = string.Empty;
    return;
    }

    DataTable dtChartBase = ds.Tables["ChartBase"];
    DataTable dtChartAxis = ds.Tables["ChartAxis"];
    DataTable dtSeriesData = ds.Tables["SeriesData"];
    DataTable dtSeriesDetail = ds.Tables["SeriesDetail"];
    Font fontTitle = new Font("Trebuchet MS", 10.5f, FontStyle.Bold, GraphicsUnit.Pixel);
    Font fontLegend = new Font("Trebuchet MS", 10.5f, FontStyle.Regular, GraphicsUnit.Pixel);

    // 添加圖表標題
    chart.Titles.Clear();
    Dundas.Charting.WebControl.Title title = new Title("Title1");
    title.Text = dtChartBase.Rows[0]["Title"].ToString();
    title.Font = fontTitle;
    chart.Titles.Add(title);
    // 是否顯示三維圖表
    bool bShow3D = Convert.ToBoolean(dtChartBase.Rows[0]["Show3D"]);
    // 設置三維風格
    chart.ChartAreas["Default"].Area3DStyle.Enable3D = bShow3D;
    // 是否顯示圖例
    bool bShowLegend = Convert.ToBoolean(dtChartBase.Rows[0]["ShowLegend"]);
    if (bShowLegend)
    {
    chart.Legends.Clear();
    Dundas.Charting.WebControl.Legend legend = new Legend("Default");
    legend.AutoFitText = false;
    legend.BackColor = System.Drawing.Color.Transparent;
    legend.Enabled = true;
    legend.Font = fontLegend;
    chart.Legends.Add(legend);
    }
    else
    {
    chart.Legends.Clear();
    }
    string strDefaultChartType = dtChartBase.Rows[0]["ChartType"].ToString();
    if (dtChartBase.Rows[0]["Width"] != DBNull.Value)
    {
    chart.Width = new Unit(dtChartBase.Rows[0]["Width"].ToString());
    }
    if (dtChartBase.Rows[0]["Height"] != DBNull.Value)
    {
    chart.Height = new Unit(dtChartBase.Rows[0]["Height"].ToString());
    }
    // 添加橫軸、縱軸標題
    chart.ChartAreas["Default"].AxisX.Title = dtChartAxis.Rows[0]["XTitle"].ToString();
    chart.ChartAreas["Default"].AxisY.Title = dtChartAxis.Rows[0]["YTitle"].ToString();
    chart.ChartAreas["Default"].AxisX.TitleFont = fontTitle;
    chart.ChartAreas["Default"].AxisY.TitleFont = fontTitle;
    // 設置橫軸、縱軸是否從0開始
    chart.ChartAreas["Default"].AxisX.StartFromZero = Convert.ToBoolean(dtChartAxis.Rows[0]["XStartFromZero"]);
    chart.ChartAreas["Default"].AxisY.StartFromZero = Convert.ToBoolean(dtChartAxis.Rows[0]["YStartFromZero"]);
    // 獲取橫軸、縱軸數據類型
    ChartValueTypes xValueType = (ChartValueTypes)Convert.ToInt32(dtChartAxis.Rows[0]["XValueType"]);
    ChartValueTypes yValueType = (ChartValueTypes)Convert.ToInt32(dtChartAxis.Rows[0]["YValueType"]);
    string xFormat = dtChartAxis.Rows[0]["XFormat"].ToString();
    string yFormat = dtChartAxis.Rows[0]["YFormat"].ToString();
    chart.ChartAreas["Default"].Area3DStyle.XAngle = Convert.ToInt32(dtChartAxis.Rows[0]["XAngle"]);
    chart.ChartAreas["Default"].Area3DStyle.YAngle = Convert.ToInt32(dtChartAxis.Rows[0]["YAngle"]);

    // DISTINCT字段數組
    string[] myColumnNames = { "Series" };
    // 準備填充的序列
    DataTable dtSeriesList = dtSeriesData.DefaultView.ToTable(true, myColumnNames);
    // 填充數據
    chart.Series.Clear();
    foreach (DataRow dr1 in dtSeriesList.Rows)
    {
    string strSeries = dr1["Series"].ToString();
    Series series = new Series(strSeries);
    // 組織序列數據
    DataTable dtSeries = dtSeriesData.Clone();
    dtSeries.Columns.Remove("Series");
    foreach (DataRow dr2 in dtSeriesData.Select("Series='" + strSeries + "'"))
    {
    dtSeries.ImportRow(dr2);
    }

    // 設置序列類型
    DataRow[] drRows = dtSeriesDetail.Select("Series='" + strSeries + "'");
    if (drRows.Length > 0)
    {
    string strChartType = drRows[0]["ChartType"].ToString();
    if (!string.IsNullOrEmpty(strChartType))
    {
    series.Type = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), strChartType, true);
    }
    else if (!string.IsNullOrEmpty(strDefaultChartType))
    {
    series.Type = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), strDefaultChartType, true);
    }
    // 設置序列標簽
    series.ShowLabelAsValue = Convert.ToBoolean(drRows[0]["ShowLabelAsValue"]);
    }
    else if (!string.IsNullOrEmpty(strDefaultChartType))
    {
    series.Type = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), strDefaultChartType, true);
    }

    switch (series.Type)
    {
    case SeriesChartType.Area://面積圖
    break;
    case SeriesChartType.Bar://條形圖
    break;
    case SeriesChartType.BoxPlot://盒形圖
    break;
    case SeriesChartType.Bubble://泡泡圖
    break;
    case SeriesChartType.CandleStick:
    break;
    case SeriesChartType.Column://柱狀圖
    series["DrawingStyle"] = "Default";
    series["PointWidth"] = "1.0";
    break;
    case SeriesChartType.Doughnut://圓環圖
    series["PieLabelStyle"] = "Inside";
    series["PieDrawingStyle"] = "SoftEdge";
    series["DoughnutRadius"] = "60";
    break;
    case SeriesChartType.ErrorBar:
    break;
    case SeriesChartType.FastLine:
    break;
    case SeriesChartType.FastPoint:
    break;
    case SeriesChartType.Funnel:
    break;
    case SeriesChartType.Gantt:
    break;
    case SeriesChartType.Kagi:
    break;
    case SeriesChartType.Line://折線圖
    break;
    case SeriesChartType.Pie://餅形圖
    series["PieLabelStyle"] = "Inside";
    series["PieDrawingStyle"] = "SoftEdge";
    break;
    case SeriesChartType.Point://散點圖
    break;
    case SeriesChartType.PointAndFigure:
    break;
    case SeriesChartType.Polar:
    break;
    case SeriesChartType.Pyramid:
    break;
    case SeriesChartType.Radar://雷達圖
    break;
    case SeriesChartType.Range:
    break;
    case SeriesChartType.RangeColumn:
    break;
    case SeriesChartType.Renko:
    break;
    case SeriesChartType.Rose:
    break;
    case SeriesChartType.Spline://曲線圖
    break;
    case SeriesChartType.SplineArea:
    break;
    case SeriesChartType.SplineRange:
    break;
    case SeriesChartType.StackedArea:
    break;
    case SeriesChartType.StackedArea100:
    break;
    case SeriesChartType.StackedBar:
    break;
    case SeriesChartType.StackedBar100:
    break;
    case SeriesChartType.StackedColumn:
    break;
    case SeriesChartType.StackedColumn100:
    break;
    case SeriesChartType.StackedRose:
    break;
    case SeriesChartType.StepLine:
    break;
    case SeriesChartType.Stock:
    break;
    case SeriesChartType.ThreeLineBreak:
    break;
    default:
    break;
    }
    series.Points.DataBind(dtSeries.DefaultView, "XValue", "YValue", string.Empty);
    series.XValueType = xValueType;
    series.YValueType = yValueType;
    chart.ChartAreas["Default"].AxisX.LabelStyle.Format = xFormat;
    chart.ChartAreas["Default"].AxisX.LabelStyle.Format = yFormat;
    if (yValueType == ChartValueTypes.Double || yValueType == ChartValueTypes.Single)
    {
    if (yFormat.Length >= 2)
    {
    series.LabelFormat = "{0:F" + yFormat.Substring(1, yFormat.Length - 1) + "}";
    }
    }
    // 設置三維風格
    if (bShow3D)
    {
    series.BorderWidth = 1;
    chart.ChartAreas["Default"].Area3DStyle.RightAngleAxes = true;
    chart.ChartAreas["Default"].Area3DStyle.Clustered = true;
    }
    else
    {
    series.BorderWidth = 3;
    }
    // 添加序列
    chart.Series.Add(series);
    }
    }
    /// <summary>
    /// 另存為 Excel
    /// </summary>
    /// <param name="title">標題</param>
    /// <param name="dt">數據表</param>
    /// <param name="imageDir">圖片絕對路徑</param>
    /// <param name="imageWidth">圖片寬度</param>
    /// <param name="imageHeight">圖片高度</param>
    public static void SaveAsExcel(string title, DataTable dt, string imageDir, int imageWidth, int imageHeight)
    {
    string down = Path.GetDirectoryName(imageDir) + @"\" + title + ".xls";
    string dir = Path.GetDirectoryName(down);
    if (!Directory.Exists(dir))
    {
    Directory.CreateDirectory(dir);
    }
    ExportToExcel dte = new ExportToExcel(down);

    dte.DataTableToExcelSheet(dt, "A1");
    int count = dt.Rows.Count + 2;
    dte.InsertPicture("A" + count, imageDir, imageWidth, imageHeight);
    dte.SaveFile();
    dte.DownloadFile();
    }
    /// <summary>
    /// 獲取導出路徑
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public static string AppSettingItemValue(string name)
    {
    Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
    KeyValueConfigurationElement item = config.AppSettings.Settings[name];
    return item.Value;
    }
     

    沈陽團購網|營口網站制作|沈陽軟件公司|軟件定制|網站建設|加盟易勢|提交問題

    亚洲精品无码永久在线观看男男| 久久久久久久99精品国产片| 国产九九久久99精品影院| 国产在线精品香蕉麻豆| 99re在线这里只有精品| 久九九久福利精品视频视频| 538prom精品视频我们不只是| 国产成人1024精品免费| 日韩精品无码免费视频| 国产日韩一区二区三区在线播放| 国产成人精品午夜二三区| 成人亚洲国产精品久久| 国产精品国产亚洲区艳妇糸列短篇 | d动漫精品专区久久| 日韩精品国产丝袜| 国产愉拍精品手机| 亚洲国产成人精品无码区二本 | 91麻豆国产精品91久久久| 国产精品久久久久天天影视| 91麻豆精品一二三区在线| 91精品国产免费久久国语麻豆| 久久99精品国产自在现线小黄鸭| 久久99精品久久久久久久久久| 老子午夜精品无码| 亚洲AV无码精品蜜桃| 国产精品成人观看视频免费| 国产精品嫩草影院人体模特| 97久久超碰成人精品网站| 精品国产日韩久久亚洲| 亚洲精品欧美综合四区| 国产成人无码精品久久久小说| 韩国精品一区视频在线播放 | 宅男在线国产精品无码| 99re久久精品国产首页2020| 国语自产偷拍精品视频偷拍| 中文字幕无码精品三级在线电影| 亚洲日韩精品射精日| 免费91麻豆精品国产自产在线观看| 九九热在线精品视频| 久久精品国产亚洲AV网站| 一本久久a久久精品综合夜夜|