1: #region Defining Colors
2: System.Drawing.Color seriesColor = System.Drawing.Color.LightBlue;
3: System.Drawing.Color SeriesColorGreaterThan600 = System.Drawing.Color.Green;
4: #endregion
5:
6: Telerik.Reporting.Chart mychart = new Telerik.Reporting.Chart();
7: mychart.Skin = "Office2007";
8: #region XAxis and YAxis Labels
9: mychart.PlotArea.XAxis.AxisLabel.Visible = true;
10: mychart.PlotArea.YAxis.AxisLabel.Visible = true;
11: mychart.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Month";
12: mychart.PlotArea.YAxis.AxisLabel.TextBlock.Text = "Sales";
13: mychart.PlotArea.XAxis.AxisLabel.Appearance.Position.Auto = true;
14: mychart.PlotArea.YAxis.AxisLabel.Appearance.Position.Auto = true;
15: #endregion
16: ChartSeries series = new ChartSeries();
17: int seriesItemPosition = 0;
18: mychart.ChartTitle.TextBlock.Text = "Product Sale Report";
19: foreach (Product prd in _source.OrderBy(p => p.Date).Where(n => n.ProductName == "Product 1").Select(m => m).ToList<Product>())
20: {
21: ChartSeriesItem seriesItem = new ChartSeriesItem();
22: seriesItem.YValue = prd.sale;
23: seriesItem.XValue = seriesItemPosition++;
24: seriesItem.Appearance.FillStyle.MainColor = (prd.sale > 600) ? SeriesColorGreaterThan600 : seriesColor;
25: // Hide the Graph Values on Series Item
26: seriesItem.Label.TextBlock.Visible = false;
27: series.Items.Add(seriesItem);
28: }
29: #region Custom Legends
30: LabelItem LegenItem = new LabelItem();
31: LegenItem.Marker.Visible = true;
32: LegenItem.Marker.Appearance.Figure = Telerik.Reporting.Charting.Styles.DefaultFigures.Rectangle;
33: LegenItem.Marker.Appearance.FillStyle.MainColor = seriesColor;
34: LegenItem.Marker.Appearance.FillStyle.FillType = Telerik.Reporting.Charting.Styles.FillType.Solid;
35: LegenItem.TextBlock.Text = " Sale < 600";
36:
37: LabelItem LegenItem2 = new LabelItem();
38: LegenItem2.Marker.Visible = true;
39: LegenItem2.Marker.Appearance.Figure = Telerik.Reporting.Charting.Styles.DefaultFigures.Rectangle;
40: LegenItem2.Marker.Appearance.FillStyle.MainColor = SeriesColorGreaterThan600;
41: LegenItem2.Marker.Appearance.FillStyle.FillType = Telerik.Reporting.Charting.Styles.FillType.Solid;
42: LegenItem2.TextBlock.Text = " Sale > 600";
43:
44:
45: mychart.Legend.Items.Add(LegenItem);
46: mychart.Legend.Items.Add(LegenItem2);
47:
48: #region Legend Configuration
49: mychart.Legend.Appearance.Location = Telerik.Reporting.Charting.Styles.LabelLocation.OutsidePlotArea;
50: mychart.Legend.Appearance.Overflow = Telerik.Reporting.Charting.Styles.Overflow.Column;
51: mychart.Legend.Appearance.Position.AlignedPosition = Telerik.Reporting.Charting.Styles.AlignedPositions.Right;
52: #endregion
53: #endregion
54:
55: series.Appearance.FillStyle.MainColor = seriesColor;
56: series.Name = "Product 1";
57: series.Appearance.LegendDisplayMode = ChartSeriesLegendDisplayMode.Nothing;
58: series.Type = ChartSeriesType.Bar;
59: mychart.Series.Add(series);
60:
61: #region Eliminate Gridlines
62: mychart.PlotArea.YAxis.Appearance.MajorGridLines.Visible = false;
63: mychart.PlotArea.YAxis.Appearance.MinorGridLines.Visible = false;
64: #endregion
65:
66: Telerik.Reporting.Drawing.Unit Height = new Telerik.Reporting.Drawing.Unit(8, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm)));
67: Telerik.Reporting.Drawing.Unit Width = new Telerik.Reporting.Drawing.Unit(12, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm)));
68: mychart.PlotArea.XAxis.AutoShrink = false;
69: mychart.Size = new Telerik.Reporting.Drawing.SizeU(Width, Height);
70: mychart.Location = new Telerik.Reporting.Drawing.PointU(new Telerik.Reporting.Drawing.Unit(0.32, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm))), new Telerik.Reporting.Drawing.Unit(0.8, ((Telerik.Reporting.Drawing.UnitType)(Telerik.Reporting.Drawing.UnitType.Cm))));