void CustomizePieTotalLabel(string componentName, MultiDimensionalData data, CustomizePieTotalLabelEventArgs e) { PieTotalSettings settings = PieTotalSettings.FromJson(dashboardControl.Dashboard.Items[componentName].CustomProperties[customPropertyName]); string resultText = string.Empty; if (!string.IsNullOrEmpty(settings.Prefix)) { resultText += settings.Prefix + Environment.NewLine; } MeasureDescriptor measure = data.GetMeasures().First(); if (!string.IsNullOrEmpty(settings.MeasureId) || data.GetMeasures().Where(m => m.ID == settings.MeasureId).Any()) { measure = data.GetMeasures().FirstOrDefault(m => m.ID == settings.MeasureId); } if (measure != null) { AxisPoint axisPoint = e.Series.Tag as AxisPoint; resultText += data.GetSlice(axisPoint).GetValue(measure).DisplayText; } if (!string.IsNullOrEmpty(settings.Postfix)) { resultText += Environment.NewLine + settings.Postfix; } e.Text = resultText; }
private void dashboardViewer1_DashboardItemElementCustomColor(object sender, DashboardItemElementCustomColorEventArgs e) { MultiDimensionalData data = e.Data; AxisPointTuple currentElement = e.TargetElement; if (e.DashboardItemName == "chartDashboardItem1") { string country = currentElement.GetAxisPoint(DashboardDataAxisNames.ChartSeriesAxis).Value.ToString(); decimal value = (decimal)(data.GetSlice(currentElement)).GetValue(e.Measures[0]).Value; if (country == "UK" && value > 50000 || country == "USA" && value > 100000) { e.Color = Color.DarkGreen; } else { e.Color = Color.DarkRed; } } if (e.DashboardItemName == "pieDashboardItem1") { decimal value = (decimal)(data.GetSlice(currentElement)).GetValue(data.GetMeasures()[0]).Value; if (value < 100000) { e.Color = Color.Orange; } } }
private static string GetOid(DashboardItemMouseActionEventArgs e) { MultiDimensionalData data = e.Data.GetSlice(e.GetAxisPoint()); MeasureDescriptor descriptor = data.GetMeasures().SingleOrDefault(item => item.DataMember == "Oid"); MeasureValue measureValue = data.GetValue(descriptor); return(measureValue.Value.ToString()); }
private void DashboardViewer1_CustomizeDashboardItemCaption(object sender, CustomizeDashboardItemCaptionEventArgs e) { DashboardViewer viewer = (DashboardViewer)sender; if (e.DashboardItemName == "pieDashboardItem1") { DashboardToolbarItem infoButton = new DashboardToolbarItem(); MultiDimensionalData mData = viewer.GetItemData(e.DashboardItemName); var orderCount = mData.GetValue(mData.GetMeasures().Where(m => m.DataMember == "OrderID").First()).Value ?? 0; e.FilterText += string.Format("{0:N0} distinct orders are displayed", orderCount); } }
public static void CustomExport(CustomExportWebEventArgs e) { Dictionary <string, XRControl> controls = e.GetPrintableControls(); foreach (var control in controls) { string componentName = control.Key; XRChart chartControl = control.Value as XRChart; ChartDashboardItem chartItem = e.GetDashboardItem(componentName) as ChartDashboardItem; if (chartControl != null && chartItem != null) { string constantLinesJSON = chartItem.CustomProperties["ConstantLineSettings"]; if (constantLinesJSON != null) { XYDiagram diagram = chartControl.Diagram as XYDiagram; if (diagram != null) { List <CustomConstantLine> customConstantLines = JsonConvert.DeserializeObject <List <CustomConstantLine> >(constantLinesJSON); customConstantLines.ForEach(customConstantLine => { ConstantLine line = new ConstantLine(); line.Visible = true; line.ShowInLegend = false; line.Color = ColorTranslator.FromHtml(customConstantLine.color); line.Title.Text = customConstantLine.labelText; line.LineStyle.DashStyle = DashStyle.Dash; line.LineStyle.Thickness = 2; if (customConstantLine.isBound) { MultiDimensionalData data = e.GetItemData(componentName); MeasureDescriptor measure = data.GetMeasures().FirstOrDefault(m => m.ID == customConstantLine.measureId); if (measure != null) { line.AxisValue = data.GetValue(measure).Value; } } else { line.AxisValue = customConstantLine.value; } if (diagram.SecondaryAxesY.Count > 0) { diagram.SecondaryAxesY[0].ConstantLines.Add(line); } }); } } } } }
// Converts data from a dashboard data model to the Gantt chart data model. ObservableCollection <GanttTask> ConfigureGanttTasks(MultiDimensionalData data) { DimensionDescriptorCollection dimensions = data.GetDimensions(DashboardDataAxisNames.DefaultAxis); MeasureDescriptorCollection measures = data.GetMeasures(); ReadOnlyCollection <AxisPoint> gridRows = data.GetAxisPoints(DashboardDataAxisNames.DefaultAxis); ObservableCollection <GanttTask> tasks = new ObservableCollection <GanttTask>(); List <string> keys = new List <string>(); keys.Add("root"); foreach (AxisPoint row in gridRows) { string parentKey = "root"; foreach (DimensionDescriptor dimension in dimensions.Cast <DimensionDescriptor>()) { string currentKey = parentKey + "|" + row.GetDimensionValue(dimension).DisplayText; if (keys.Contains(currentKey)) { GanttTask currentTask = tasks.Where(t => t.Id == keys.IndexOf(currentKey)).First(); DateTime start = (DateTime)data.GetSlice(row).GetValue(measures[0]).Value; DateTime finish = (DateTime)data.GetSlice(row).GetValue(measures[1]).Value; currentTask.Start = new DateTime(Math.Min(currentTask.Start.Ticks, start.Ticks)); currentTask.Finish = new DateTime(Math.Max(currentTask.Finish.Ticks, finish.Ticks)); } else { keys.Add(currentKey); data.GetSlice(row).GetValue(measures[0]); tasks.Add(new GanttTask() { Id = keys.IndexOf(currentKey), ParentId = keys.IndexOf(parentKey), Name = row.GetDimensionValue(dimension).DisplayText, Start = (DateTime)data.GetSlice(row).GetValue(measures[0]).Value, Finish = (DateTime)data.GetSlice(row).GetValue(measures[1]).Value }); } parentKey = currentKey; } } return(tasks); }
private static object GetMesureValue(MultiDimensionalData mData, AxisPoint point, GridMeasureColumn mCol) { return(mData.GetSlice(point).GetValue(mData.GetMeasures().OfType <MeasureDescriptor>().First(d => d.DataMember == mCol.Measure.DataMember)).Value); }