zoukankan      html  css  js  c++  java
  • silverlight 生产图表(动态图表类型,Y轴数量) .xaml.cs文件

     silverlight 页面后台方法 .xaml.cs文件

    public void CreateChart(Grid oGrid, ObservableCollection<ListItem> lBaseOilBar)
            {
                foreach (ListItem li in lBaseOilBar)
                {
                    //图表大小,框线
                    Chart chart = new MyCharts();
                    chart.Width = 800;
                    chart.Height = 600;
                    chart.ScrollingEnabled = false;
                    //图表标题
                    Title title = new Title();
                    string sTitle = li.Title;
                    title.Text = sTitle;
                    chart.Titles.Add(title);
                    //Y轴数据单位
                    Axis axisY = new Axis();
                    string sYUint = li.YUint;
                    axisY.Title = sYUint;
                    chart.AxesY.Add(axisY);

                    title.MouseLeftButtonDown += new MouseButtonEventHandler(title_MouseLeftButtonDown);
                    //X轴数据
                    string[] sXLabel = li.XAXIS.ToArray();
                    string sTableName = "";
                    #region 点击是否触发事件,钻取数据图表赋值一个物理表名
                    bool ifGetSig = false;
                    switch (li.ChartName)
                    {
                        case "Stock":
                            sTableName = "StockSingleOildom";
                            ifGetSig = true;
                            break;
                        case "Drill_JC":
                            sTableName = "Drill_JCSingleOildom";
                            ifGetSig = true;
                            break;
                        case "EXTRACTIONOIL":
                            sTableName = "EXTRACTIONOILSingleOildom";
                            ifGetSig = true;
                            break;
                        case "Drill_MACHINE":
                            sTableName = "Drill_MACHINESingleOildom";
                            ifGetSig = true;
                            break;
                        case "PROVEDRILL":
                            sTableName = "PROVEDRILLSingleOildom";
                            ifGetSig = true;
                            break;

                    }
                    #endregion
                    #region 图表柱状个数,循环加载数据
                    ColorSet cs = new ColorSet();
                    cs.Id = "colorset1";
                    //foreach (YAXIS oYAXIS in li.YAXISs)
                    for (int j = 0; j < li.YAXISs.Count(); j++)
                    {
                        YAXIS oYAXIS = (YAXIS)li.YAXISs[j];
                        string sYTitle = "";
                        sYTitle = oYAXIS.Name;
                        double[] dYValue = null;
                        dYValue = oYAXIS.YValue.ToArray();
                        DataSeries dataSeries = new DataSeries();
                        dataSeries.LegendText = sYTitle;
                        #region 设置柱状图的颜色 待开发
                        //ColorSet cs = new ColorSet();
                        //string strColor = oYAXIS.Color;
                        //////Colors oColors = new Colors();
                        //cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1
                        //cs.Brushes.Add(new SolidColorBrush(Colors.Green));
                        //cs.Brushes.Add(new SolidColorBrush(Colors.Red));
                        //cs.Brushes.Add(new SolidColorBrush(Colors.Blue));
                        ////cs.Brushes.Add(new SolidColorBrush(Colors.Yellow));
                        ////cs.Brushes.Add(new SolidColorBrush(Colors.Orange));
                        //chart.ColorSets.Add(cs);
                        //chart.ColorSet = "colorset1";  // 设置 Chart 使用自定义的颜色集合 colorset1
                        string strColor = oYAXIS.Color;
                        switch (strColor)
                        {
                            case "Red":
                                cs.Brushes.Add(new SolidColorBrush(Colors.Red));
                                break;
                            case "Yellow":
                                cs.Brushes.Add(new SolidColorBrush(Colors.Yellow));
                                break;
                            case "Orange":
                                cs.Brushes.Add(new SolidColorBrush(Colors.Orange));
                                break;
                            case "Green":
                                cs.Brushes.Add(new SolidColorBrush(Colors.Green));
                                break;
                            case "Blue":
                                cs.Brushes.Add(new SolidColorBrush(Colors.Blue));
                                break;
                            default:
                                break;
                        }
                        #endregion
                        #region 图表类型(柱状,饼状……)
                        string sChartType = li.ChartType;
                        RenderAs oRenderAs = new RenderAs();
                        switch (sChartType)
                        {
                            case "Column":
                                oRenderAs = RenderAs.Column;
                                break;
                            case "Pie":
                                oRenderAs = RenderAs.Pie;
                                break;
                            case "Line":
                                oRenderAs = RenderAs.Line;
                                break;
                        }
                        dataSeries.RenderAs = oRenderAs;
                        #endregion
                        #region 构造数据
                        DataPoint dp;
                        if (sXLabel != null)
                        {
                            for (int i = 0; i < sXLabel.Length; i++)
                            {
                                dp = new DataPoint();
                                dp.AxisXLabel = sXLabel[i];
                                dp.YValue = dYValue[i];
                                if (ifGetSig)
                                {
                                    dp.Tag = sTableName;
                                    dp.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
                                }
                                //饼状图去除值为0的oildom
                                if (dataSeries.RenderAs == RenderAs.Pie & dp.YValue == 0)
                                {
                                  
                                }
                                else
                                {
                                    dataSeries.DataPoints.Add(dp);
                                }
                            }
                        }
                        #endregion
                        chart.Series.Add(dataSeries);
                    }
                    // 设置 Chart 使用自定义的颜色集合 colorset1
                    if (cs.Brushes.Count > 0)
                    {
                        chart.ColorSets.Clear();
                        chart.ColorSets.Add(cs);
                        chart.ColorSet = "colorset1";
                    }
                    #endregion
                    oGrid.Children.Add(chart);
                }
            }

  • 相关阅读:
    使用Xtrabackup 备份mysql数据库
    Myeclipse总结
    intellij idea问题及技巧
    Tomcat相关配置
    Spark常用算子总结
    前端开发经验
    最近用到的SQL语句
    subline text使用心得
    天龙八部谁是主角?(MR词频统计)
    elasticsearch CURL命令
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/3627524.html
Copyright © 2011-2022 走看看