コード例 #1
0
        public SingleChartModel GetData()
        {
            const string defaultChartAttributes = @"numberprefix='$' legendPadding='25' chartRightMargin='-6' bgcolor='FFFFFF' baseFontSize='9' showalternatehgridcolor='0' showplotborder='0' divlinecolor='CCCCCC' showvalues='1' showcanvasborder='0' canvasbordercolor='CCCCCC' canvasborderthickness='1' yaxismaxvalue='30000' captionpadding='30' linethickness='3' sshowanchors='0' yaxisvaluespadding='15' showlegend='1' legendPosition='BOTTOM' use3dlighting='0' showshadow='0' legendshadow='0' legendborderalpha='0' showborder='0'";

            Chart = new Pie2D(defaultChartAttributes)
            {
                Set = new List <Set>()
            };
            Chart.Attributes.Add("pieRadius", "80%");
            Chart.Attributes.Add("Caption", "Selected market - Top " + TopCountValue + " Companies");
            Chart.Attributes.Add("SubCaption", PeriodString + " - " + MeasureValue);
            Input.Rows.RemoveAt(0);
            AddStyles(Chart);
            var palettecolors = "";

            for (int i = 0; i < Input.Rows.Count; i++)
            {
                palettecolors += _colorSource.GetNextColor() + ",";
                //if (Input.Rows[i].Values[1].ToUpper() == "RECKITT BENCKISER")
                //{
                //    palettecolors += "#de2588" + ",";
                //}
                //else
                //{
                //    palettecolors += _colorSource.GetNextColor() + ",";
                //}
            }
            Chart.Attributes.Add("palettecolors", palettecolors);
            AddSet(Chart);

            var model = new SingleChartModel();

            model.Chart = Chart.RenderWithScript("100%", "430");
            return(model);
        }
コード例 #2
0
ファイル: ColorfulDivCellFactory.cs プロジェクト: radtek/Omi
        protected override NodeBase CreateInternal(object data)
        {
            var values = data as List <string>;

            var complexNode = new ComplexNode("td");

            //complexNode.ChildNodes.Add(new SimpleNode("span", values != null ? Convert.ToString(RecordCount) : "") { Classes = new List<string>() { "rank-div" } });
            string colorValue = "";

            if (values[1].ToUpper().Contains("TOTAL"))
            {
                colorValue = ColorListDataSource.ColorOfTotal.Replace("#", "");
            }
            else if (UncheckedItem != null && UncheckedItem.Contains(values[1]))
            {
                colorValue = "";
                if (RecordCount != 0)
                {
                    complexNode.ChildNodes.Add(new SimpleNode("span", values != null ? Convert.ToString(RecordCount) : "")
                    {
                        Classes = new List <string>()
                        {
                            "rank-div"
                        }
                    });
                }
            }
            else
            {
                colorValue = _colorSource.GetNextColor();
                if (RecordCount != 0)
                {
                    complexNode.ChildNodes.Add(new SimpleNode("span", values != null ? Convert.ToString(RecordCount) : "")
                    {
                        Classes = new List <string>()
                        {
                            "rank-div"
                        }
                    });
                }
            }

            complexNode.ChildNodes.Add(new SimpleNode("span", string.Empty)
            {
                Classes = new List <string>()
                {
                    "color-div"
                },
                Styles = new Dictionary <string, string>()
                {
                    { "background-color", "#" + colorValue }
                }
            });

            RecordCount++;

            return(complexNode);
        }
コード例 #3
0
        private List <DataSet> AddTrendLineDataSet()
        {
            var dataSets = new List <DataSet>();
            var count    = _input.Rows.Count;

            if (count > 11)
            {
                count = 16;
            }
            for (int i = 1; i < _input.Rows.Count; i++)
            {
                if (string.IsNullOrEmpty(_uncheckedItems) || !_uncheckedItems.Contains(_input.Rows[i].Values[1]))
                {
                    var dataSet = new DataSet("renderas='Line' parentYAxis='P'");
                    dataSet.Attributes.Add("seriesName", _input.Rows[i].Values[1]);
                    //dataSet.Attributes.Add("color", colorList[i % 15]);
                    dataSet.Set = new List <Set>();

                    for (int j = 3; j < _input.Columns.Count; j++)
                    {
                        var set1 = new Set();
                        set1.Attributes.Add("value", _input.Rows[i].Values[j]);
                        dataSet.Set.Add(set1);
                    }
                    if (_input.Rows[i].Values[1].ToUpper().Contains("RECKITT BENCKISER"))
                    {
                        dataSet.Attributes.Add("color", "#de2588");
                        dataSet.Attributes.Add("anchorBgColor", "#de2588");
                    }
                    else
                    {
                        string color = _colorList.GetNextColor();
                        dataSet.Attributes.Add("color", "#" + color);
                        dataSet.Attributes.Add("anchorBgColor", "#" + color);
                    }
                    dataSets.Add(dataSet);
                }
            }
            return(dataSets);
        }
コード例 #4
0
ファイル: MSCombinationChart.cs プロジェクト: radtek/Omi
        public string GetChart()
        {
            chart = new MSCombiDY2D(defaultAttributes)
            {
                Dataset = new List <DataSet>(),
            };
            if (KPI.ToUpper() == "SALES")
            {
                chart.Attributes.Add("pyAxisName", "In " + UnitValue + " 000");
                chart.Attributes.Add("sYAXisName", "In %");
            }

            chart.ControlId = "interactiveTrendChart";

            if (KPI.ToUpper() == "SALES PERFORMANCE VS COMPETITORS")
            {
                chart.Attributes.Add("pyAxisName", "");
                chart.Attributes.Add("sYAXisName", "In " + UnitValue + " 000");
            }

            AddStyles();

            if (RevertAxis && KPI.ToUpper() == "SALES PERFORMANCE VS COMPETITORS")
            {
                foreach (Row t in Input.Rows.Skip(1))
                {
                    var category = new Category();
                    category.Attributes.Add("label", t.Values[1]);
                    chart.Categories.Category.Add(category);
                }

                foreach (var col in Input.Columns.Skip(3))
                {
                    var dataSet = new DataSet("renderas='Line'");
                    if (PeriodType == "MAT" || PeriodType == "YTD")
                    {
                        dataSet.Attributes.Add("seriesName", PeriodType + " " + col.Name.Split('_').ToArray()[0]);
                    }
                    else
                    {
                        dataSet.Attributes.Add("seriesName", col.Name.Split('_').ToArray()[0]);
                    }
                    dataSet.Attributes.Add("parentyaxis", "S");
                    dataSet.Set = new List <Set>();
                    string color = _colorList.GetNextColor();
                    dataSet.Attributes.Add("color", "#" + color);
                    dataSet.Attributes.Add("anchorBgColor", "#" + color);

                    foreach (var row in Input.Rows.Skip(1))
                    {
                        var set1 = new Set();
                        set1.Attributes.Add("value", row[col.Position] == "--" ? "0" : row[col.Position]);
                        dataSet.Set.Add(set1);
                    }
                    chart.Dataset.Add(dataSet);
                }
            }
            else
            {
                foreach (var col in KPI.ToUpper() == "SALES" ? Input.Columns.Skip(2) : Input.Columns.Skip(3))
                {
                    var category = new Category();
                    if (PeriodType == "MAT" || PeriodType == "YTD")
                    {
                        category.Attributes.Add("label", PeriodType + " " + col.Name.Split('_').ToArray()[0]);
                    }
                    else
                    {
                        category.Attributes.Add("label", col.Name.Split('_').ToArray()[0]);
                    }
                    chart.Categories.Category.Add(category);
                }
                if (!UncheckedItems.Contains(Input.Rows[0].Values[1]))
                {
                    chart.Dataset.Add(AddFirstDataSet());
                }

                for (var i = 1; i < Input.Rows.Count; i++)
                {
                    if (!UncheckedItems.Contains(Input.Rows[i].Values[1]))
                    {
                        chart.Dataset.Add(AddTrendLineDataSet(Input.Rows[i]));
                    }
                }
            }

            return(chart.RenderWithScript("98%", "360", isForceHtmlRender: true));
        }
コード例 #5
0
        public string GetChart()
        {
            chart = new BubbleChartData(defaultAttributes);
            var xMax = float.MinValue;
            var xMin = float.MaxValue;
            var yMax = float.MinValue;
            var yMin = float.MaxValue;

            for (int i = 0; i < Input.Rows.Count; i++)
            {
                if (Input.Rows[i].Values[3] != null || Input.Rows[i].Values[5] != null)
                {
                    xMax = GetMax(Input.Rows[i].Values[3] != "--" ? Input.Rows[i].Values[3]:"0", xMax);
                    xMin = GetMin(Input.Rows[i].Values[3] != "--" ? Input.Rows[i].Values[3] : "0", xMin);
                    yMax = GetMax(Input.Rows[i].Values[4] != "--" ? Input.Rows[i].Values[4] : "0", yMax);
                    yMin = GetMin(Input.Rows[i].Values[4] != "--" ? Input.Rows[i].Values[4] : "0", yMin);
                }
            }

            chart.Attributes.Add("xaxisminvalue", (xMin - 15).ToString());
            chart.Attributes.Add("xaxismaxvalue", (xMax + 15).ToString());
            chart.Attributes.Add("yaxisminvalue", (yMin - 50).ToString());
            chart.Attributes.Add("yaxismaxvalue", (yMax + 50).ToString());

            if (PeriodType.ToUpper() == "YTD" || PeriodType.ToUpper() == "MAT")
            {
                string[] headers = Input.Columns[3].Name.Split('_').ToArray();
                chart.Attributes.Add("xaxisname", PeriodType + " " + headers[0]);
                headers = Input.Columns[4].Name.Split('_').ToArray();
                chart.Attributes.Add("yaxisname", PeriodType + " " + headers[0]);
            }
            else
            {
                var monthDict = new Dictionary <string, int>()
                {
                    { "Jan", 1 },
                    { "Feb", 2 },
                    { "Mar", 3 },
                    { "Apr", 4 },
                    { "May", 5 },
                    { "Jun", 6 },
                    { "Jul", 7 },
                    { "Aug", 8 },
                    { "Sep", 9 },
                    { "Oct", 10 },
                    { "Nov", 11 },
                    { "Dec", 12 }
                };

                var qtrDict = new Dictionary <string, int>()
                {
                    { "QTR1", 1 },
                    { "QTR2", 2 },
                    { "QTR3", 3 },
                    { "QTR4", 4 }
                };

                if (PeriodType == "MTH")
                {
                    int year;
                    int.TryParse(EndDate.Split(' ')[1], out year);
                    int prevYear = year - 1;
                    chart.Attributes.Add("xaxisname", "Long-Term (" + EndDate + "-" + EndDate.Split(' ')[0] + " " + prevYear + ")");

                    int monthIndex = monthDict[EndDate.Split(' ')[0]];
                    if (monthIndex > 3)
                    {
                        monthIndex = monthIndex - 3;
                    }
                    else
                    {
                        monthIndex = 12 + (monthIndex - 3);
                    }
                    string oldMonth = monthDict.FirstOrDefault(x => x.Value == monthIndex).Key;
                    chart.Attributes.Add("yaxisname", "Short-Term (" + EndDate + "-" + oldMonth + " " + EndDate.Split(' ')[1] + ")");
                }
                if (PeriodType == "QTR")
                {
                    int year;
                    int.TryParse(EndDate.Split(' ')[2], out year);
                    int prevYear = year - 1;
                    chart.Attributes.Add("xaxisname", "Long-Term (" + EndDate + "-" + EndDate.Split(' ')[0] + " " + EndDate.Split(' ')[1] + " " + prevYear + ")");

                    //int monthIndex = monthDict[EndDate.Split(' ')[1]];
                    int monthIndex = qtrDict[EndDate.Split(' ')[0] + EndDate.Split(' ')[1]];
                    if (monthIndex > 3)
                    {
                        monthIndex = monthIndex - 3;
                    }
                    else
                    {
                        monthIndex = 12 + (monthIndex - 3);
                    }
                    string oldMonth = monthDict.FirstOrDefault(x => x.Value == monthIndex).Key;
                    chart.Attributes.Add("yaxisname", "Short-Term (" + EndDate + "-" + oldMonth + " " + EndDate.Split(' ')[1] + ")");
                }
            }

            var diffBetXInterval = Convert.ToInt16(Math.Floor((xMax - xMin) / 5));

            for (var i = 0; i < xMax; i += diffBetXInterval)
            {
                var category = new Category();
                category.Attributes.Add("label", i.ToString());
                chart.Categories.Category.Add(category);
            }

            var dataset = new DataSet();

            foreach (var row in Input.Rows)
            {
                String.Format("{0:0.00}", row.Values[3] != "--" ? row.Values[3] : "0");
                String.Format("{0:0.00}", row.Values[4] != "--" ? row.Values[4] : "0");
                String.Format("{0:0.00}", row.Values[5] != "--" ? row.Values[5] : "0");
                string toolText = "Series-" + row.Values[1] + ", Sales: " + row.Values[5];

                Set set = new Set()
                {
                    Attributes = new Dictionary <string, string>()
                    {
                        { "x", row.Values[3] },
                        { "y", row.Values[4] },
                        { "z", row.Values[5] },
                        { "name", row.Values[1] },
                        { "color", _colorList.GetNextColor() },
                        { "toolText", toolText }
                    }
                };

                dataset.Add(set);
            }
            chart.Dataset.Add(dataset);

            return(chart.RenderWithScript("98%", "360"));
        }
コード例 #6
0
        public string GetChart()
        {
            chart = new MSLineChart(defaultAttributes)
            {
                Dataset = new List <DataSet>()
            };
            if (KPI.ToUpper() == "MARKET SHARE")
            {
                chart.Attributes.Add("yAxisName", "In %");
            }
            if (KPI.ToUpper() == "EVOLUTION INDEX")
            {
                chart.Attributes.Add("yAxisName", "Index in 000");
            }
            chart.ControlId = "interactiveTrendChart";
            AddStyles();

            if (RevertAxis && (KPI.ToUpper() == "EVOLUTION INDEX" || KPI.ToUpper() == "MARKET SHARE"))
            {
                foreach (Row t in Input.Rows)
                {
                    var category = new Category();
                    category.Attributes.Add("label", t.Values[1]);
                    chart.Categories.Category.Add(category);
                }
                foreach (var col in Input.Columns.Skip(3))
                {
                    var dataSet = new DataSet("renderas='Line'");
                    if (PeriodType == "MAT" || PeriodType == "YTD")
                    {
                        dataSet.Attributes.Add("seriesName", PeriodType + " " + col.Name.Split('_').ToArray()[0]);
                    }
                    else
                    {
                        dataSet.Attributes.Add("seriesName", col.Name.Split('_').ToArray()[0]);
                    }
                    dataSet.Attributes.Add("parentyaxis", "S");
                    dataSet.Set = new List <Set>();

                    string color = _colorList.GetNextColor();
                    dataSet.Attributes.Add("color", "#" + color);
                    dataSet.Attributes.Add("anchorBgColor", "#" + color);

                    foreach (var row in Input.Rows)
                    {
                        var set1 = new Set();
                        set1.Attributes.Add("value", row[col.Position] == "--" ? "0" : row[col.Position]);
                        dataSet.Set.Add(set1);
                    }
                    chart.Dataset.Add(dataSet);
                }
            }
            else
            {
                foreach (var col in Input.Columns.Skip(3))
                {
                    var category = new Category();
                    category.Attributes.Add("label", col.Name.Split('_').ToArray()[0]);
                    chart.Categories.Category.Add(category);
                }

                for (int i = 0; i < Input.Rows.Count; i++)
                {
                    if (!UncheckedItems.Contains(Input.Rows[i].Values[1]))
                    {
                        chart.Dataset.Add(AddTrendLineDataSet(Input.Rows[i]));
                    }
                }
            }


            return(chart.RenderWithScript("98%", "360", isForceHtmlRender: true));
        }