/// <summary> /// 设置DisplayMember /// </summary> /// <returns></returns> private string GetDisplayMember() { ChartAxisY control = this.ControlHost.Content as ChartAxisY; StringBuilder result = new StringBuilder(); bool bindingDataSource = false; Dictionary <string, string> dictProperty = control.GetPropertyBindValue(); if (!IsPreview && control.ExistProperty("DisplayMember") && !bindingDataSource) { string bindPath = control.DisplayMember; string bindProperty = "DisplayMember"; if (!string.IsNullOrEmpty(bindPath)) { string property = string.Empty; if (dictProperty.ContainsKey(bindProperty)) { if (dictProperty.TryGetValue(bindProperty, out property)) { bindProperty = property; } } result.AppendFormat("'{0}'", bindPath); } } return(result.ToString()); }
//------------------------------------------------------------------------------------------ public void CreateBacklog() { DropDownList ddlbweek = (DropDownList)FindControl("ddlBacklogWeek"); ChartBacklog.Width = Unit.Percentage(100); ChartBacklog.Height = Unit.Pixel(400); ChartBacklog.CssClass = "chart"; ChartBacklog.PrimaryHeader.Text = "IT Tickets Backlog (Week: " + ddlBacklogWeek.SelectedItem.Text + " of " + ddlBacklogYear.SelectedItem.Text + ")"; ChartBacklog.TooltipSettings.AxisMarkers.Enabled = true; ChartBacklog.TooltipSettings.AxisMarkers.Mode = ChartXYMode.Y; ChartBacklog.TooltipSettings.AxisMarkers.Width = new Unit(1); ChartBacklog.TooltipSettings.AxisMarkers.ZIndex = 3; ChartBacklog.Font.Size = 12; ChartBacklog.Font.Bold = true; ChartAxisX axisX = new ChartAxisX(); axisX.CategoricalValuesField = "label"; //axisX.CategoricalValues = label.ToArray(); //axisX.CategoricalValues = monthLabels; ChartBacklog.Axes.Add(axisX); ChartAxisY axisY = new ChartAxisY(); axisY.Title.Text = "Hours"; ChartBacklog.Axes.Add(axisY); List <Backlog> datasource = new List <Backlog>(); ChartBarSeries splineSeriesNew = new ChartBarSeries(); splineSeriesNew.DataFieldY = "BacklogHour"; splineSeriesNew.ID = "BacklogHour"; splineSeriesNew.CollectionAlias = "Backlog"; ChartBacklog.DataSeries.Add(splineSeriesNew); List <double> newData = ScoreCardReports.GetBacklog_Hours(Convert.ToInt32(ddlBacklogWeek.SelectedValue), Convert.ToInt32(ddlBacklogYear.SelectedValue)); List <string> name = ScoreCardReports.GetBacklog_Names(Convert.ToInt32(ddlBacklogWeek.SelectedValue), Convert.ToInt32(ddlBacklogYear.SelectedValue)); if (newData.Count > 0) { for (int i = 0; i < newData.Count; i++) { datasource.Add(new Backlog() { BacklogHour = newData[i], label = name[i] }); } ChartBacklog.DataSource = datasource; //ChartResource.TakeDataSource += ChartResource_TakeDataSource; BacklogPanel.DataBind(); BacklogPanel.Controls.Add(ChartBacklog); } }
//------------------new ticket by it resource --------------------------// public void NewWeeklyByResource() { ChartResource.Width = Unit.Percentage(100); ChartResource.Height = Unit.Pixel(400); ChartResource.CssClass = "chart"; ChartResource.PrimaryHeader.Text = "New IT Tickets (Last 12 Weeks)"; ChartResource.TooltipSettings.AxisMarkers.Enabled = true; ChartResource.TooltipSettings.AxisMarkers.Mode = ChartXYMode.Y; ChartResource.TooltipSettings.AxisMarkers.Width = new Unit(1); ChartResource.TooltipSettings.AxisMarkers.ZIndex = 3; ChartResource.Font.Size = 12; ChartResource.Font.Bold = true; ChartAxisX axisX = new ChartAxisX(); axisX.CategoricalValuesField = "label"; // axisX.CategoricalValues = label.ToArray(); //axisX.CategoricalValues = monthLabels; ChartResource.Axes.Add(axisX); ChartAxisY axisY = new ChartAxisY(); axisY.Title.Text = "# of New Tickets"; ChartResource.Axes.Add(axisY); List <Tickets> datasource = new List <Tickets>(); ChartLineSeries splineSeriesNew = new ChartLineSeries(); splineSeriesNew.DataFieldY = "New"; splineSeriesNew.ID = "New Tickets"; splineSeriesNew.CollectionAlias = ddlResource.SelectedValue; ChartResource.DataSeries.Add(splineSeriesNew); List <int> newData = ScoreCardReports.Get12WeekNewByResource(ddlResource.SelectedValue); List <string> label = ScoreCardReports.Get12WeekLabels(); for (int i = 0; i < newData.Count; i++) { datasource.Add(new Tickets() { New = newData[i], label = label[i] }); } ChartResource.DataSource = datasource; //ChartResource.TakeDataSource += ChartResource_TakeDataSource; NewWeekly.DataBind(); NewWeekly.Controls.Add(ChartResource); }
/// <summary> /// 设置Store /// </summary> /// <returns></returns> private string GetStore() { ChartAxisY control = this.ControlHost.Content as ChartAxisY; StringBuilder result = new StringBuilder(); bool bindingDataSource = false; Dictionary <string, string> dictProperty = control.GetPropertyBindValue(); if (!IsPreview && control.Bindings.Count > 0) { foreach (var item in control.Bindings) { string bindPath = item.Path == null ? "" : item.Path; string bindProperty = item.Property == null ? "" : item.Property; if (bindProperty.ToLower() == "datasource") { string property = string.Empty; if (dictProperty.ContainsKey(bindProperty)) { if (dictProperty.TryGetValue(bindProperty, out property)) { bindProperty = property; } } if (!string.IsNullOrEmpty(bindPath) && !string.IsNullOrEmpty(bindProperty)) { result.AppendFormat("at('rel:{0}', '{1}').direction(1)", "", bindPath); if (bindProperty.ToLower() == "datasource") { bindingDataSource = true; } } } } } if (!IsPreview && control.ExistProperty("DataSource") && !bindingDataSource) { string bindPath = control.DataSource; string bindProperty = "DataSource"; if (!string.IsNullOrEmpty(bindPath)) { string property = string.Empty; if (dictProperty.ContainsKey(bindProperty)) { if (dictProperty.TryGetValue(bindProperty, out property)) { bindProperty = property; } } result.AppendFormat("at('rel:{0}', '{1}').direction(1)", "", bindPath); } } return(result.ToString()); }
public void CreateAgingChart() { ChartAging.Width = Unit.Percentage(100); ChartAging.Height = Unit.Pixel(400); ChartAging.CssClass = "chart"; ChartAging.PrimaryHeader.Text = "IT Tickets: Aging >90 Days (Last 12 Weeks)"; ChartAging.TooltipSettings.AxisMarkers.Enabled = true; ChartAging.TooltipSettings.AxisMarkers.Mode = ChartXYMode.Y; ChartAging.TooltipSettings.AxisMarkers.Width = new Unit(1); ChartAging.TooltipSettings.AxisMarkers.ZIndex = 3; ChartAging.Font.Size = 12; ChartAging.Font.Bold = true; ChartAxisX axisX = new ChartAxisX(); /************************************************************************************************** * //***************************Dynamically Set X-Axis Labels***************************************** * /**************************************************************************************************/ System.Globalization.DateTimeFormatInfo mfi = new System.Globalization.DateTimeFormatInfo(); int selectedYear; int selectedMonth = DateTime.Today.Month - 1; if (selectedMonth < 1) { selectedMonth = 12; } int currentMonth = 0; if (selectedMonth == 12) { selectedYear = DateTime.Today.Year - 1; currentMonth = 1; } else { selectedYear = DateTime.Today.Year - 1; currentMonth = selectedMonth + 1; } double postion = 0.5; string[] monthLabels = new string[12]; int postionModifier = 1; int x = 0; do { monthLabels[x] = "";//mfi.GetMonthName(currentMonth).ToString() + @"-" + selectedYear.ToString(); postion += postionModifier; currentMonth++; if (currentMonth == 13) // Roll over the month { currentMonth = 1; //Jan selectedYear = selectedYear + 1; // Increase the year we are now in the previous year. } //comparisonChart.ChartAreas[0].AxisX.CustomLabels.Add(customLabel); x++; } while (currentMonth != selectedMonth); monthLabels[x] = "";// mfi.GetMonthName(currentMonth).ToString() + @"-" + selectedYear.ToString(); /*******************************************************************************************************/ axisX.CategoricalValuesField = "label"; axisX.AxisType = ChartAxisType.Datetime; //axisX.CategoricalValues = monthLabels; ChartAging.Axes.Add(axisX); ChartAxisY axisY = new ChartAxisY(); axisY.Title.Text = "Age of Tickets"; ChartAging.Axes.Add(axisY); ChartLineSeries splineSeriesAging = new ChartLineSeries(); splineSeriesAging.DataFieldY = "Aging"; splineSeriesAging.CollectionAlias = "Aging Tickets"; ChartAging.DataSeries.Add(splineSeriesAging); ChartAging.TakeDataSource += Chart12MthAging_TakeDataSource; AgingPanel.Controls.Add(ChartAging); }
protected void MonthPanel_SeriesClick(object sender, ChartSeriesClickEventArgs e) { btnRes.Visible = true; MonthPanel.AutoPostBack = false; object clickedITName = e.Name; object clickedSeries = e.Series.ID; String itName = clickedITName.ToString(); String className = clickedSeries.ToString(); MonthPanel.DataSeries.Clear(); mthdrillDownDatasource.Clear(); //drillDownDatasource = new List<Issues>(); MonthPanel.Axes.Clear(); MonthPanel.PrimaryHeader.Text = "Month " + ddlMth.SelectedValue + ": Category Level View"; ChartAxisX axisX = new ChartAxisX(); axisX.CategoricalValuesField = "label"; MonthPanel.Axes.Add(axisX); ChartAxisY axisY = new ChartAxisY(); axisY.Title.Text = "# of Hours "; MonthPanel.Axes.Add(axisY); ChartBarSeries splineSeriesNone = new ChartBarSeries(); splineSeriesNone.DataFieldY = "Unassigned"; splineSeriesNone.ID = "Unassigned"; splineSeriesNone.CollectionAlias = "Unassigned"; MonthPanel.DataSeries.Add(splineSeriesNone); ChartBarSeries splineSeriesHardware = new ChartBarSeries(); splineSeriesHardware.DataFieldY = "Hardware"; splineSeriesHardware.ID = "Hardware"; splineSeriesHardware.CollectionAlias = "Hardware"; MonthPanel.DataSeries.Add(splineSeriesHardware); ChartBarSeries splineSeriesSoftware = new ChartBarSeries(); splineSeriesSoftware.DataFieldY = "Software"; splineSeriesSoftware.ID = "Software"; splineSeriesSoftware.CollectionAlias = "Software"; MonthPanel.DataSeries.Add(splineSeriesSoftware); ChartBarSeries splineSeriesNetwork = new ChartBarSeries(); splineSeriesNetwork.DataFieldY = "Network"; splineSeriesNetwork.CollectionAlias = "Network"; splineSeriesNetwork.ID = "Network"; MonthPanel.DataSeries.Add(splineSeriesNetwork); ChartBarSeries splineSeriesPeople = new ChartBarSeries(); splineSeriesPeople.DataFieldY = "People"; splineSeriesPeople.ID = "People/Accomodation"; splineSeriesPeople.CollectionAlias = "People/Accomodation"; MonthPanel.DataSeries.Add(splineSeriesPeople); ChartBarSeries splineSeriesProcess = new ChartBarSeries(); splineSeriesProcess.DataFieldY = "Process"; splineSeriesProcess.ID = "Process"; splineSeriesProcess.CollectionAlias = "Process"; MonthPanel.DataSeries.Add(splineSeriesProcess); ChartBarSeries splineSeriesDocumentation = new ChartBarSeries(); splineSeriesDocumentation.DataFieldY = "Documentation"; splineSeriesDocumentation.CollectionAlias = "Documentation"; splineSeriesDocumentation.ID = "Documentation"; MonthPanel.DataSeries.Add(splineSeriesDocumentation); mthCategoryLevelDrill(itName, className); WeeklyChart.Axes.Clear(); WeeklyChart.DataSeries.Clear(); CreateWeeklyChart(); TypePanel.DataSeries.Clear(); TypePanel.Axes.Clear(); drillDownDatasource.Clear(); CreateWeeklyIssuesDrillDown(); }
//-------------Monthly Drill Graph ------------------------// public void CreateMonthlyIssuesDrillDown() { MonthPanel.Width = Unit.Percentage(100); MonthPanel.Height = Unit.Pixel(400); MonthPanel.CssClass = "chart"; MonthPanel.PrimaryHeader.Text = "Month " + ddlMth.SelectedValue + ": Class Level View"; MonthPanel.TooltipSettings.AxisMarkers.Enabled = true; MonthPanel.TooltipSettings.AxisMarkers.Mode = ChartXYMode.Y; MonthPanel.TooltipSettings.AxisMarkers.Width = new Unit(2); MonthPanel.TooltipSettings.AxisMarkers.ZIndex = 3; MonthPanel.Font.Size = 12; MonthPanel.Font.Bold = true; ChartAxisX axisX = new ChartAxisX(); axisX.CategoricalValuesField = "label"; MonthPanel.Axes.Add(axisX); ChartAxisY axisY = new ChartAxisY(); axisY.Title.Text = "# of Hours "; MonthPanel.Axes.Add(axisY); ChartBarSeries splineSeriesNone = new ChartBarSeries(); splineSeriesNone.DataFieldY = "Unassigned"; splineSeriesNone.ID = "Unassigned"; splineSeriesNone.CollectionAlias = "Unassigned"; MonthPanel.DataSeries.Add(splineSeriesNone); ChartBarSeries splineSeriesFault = new ChartBarSeries(); splineSeriesFault.DataFieldY = "Fault"; splineSeriesFault.ID = "Fault/Failure"; splineSeriesFault.CollectionAlias = "Fault/Failure"; MonthPanel.DataSeries.Add(splineSeriesFault); ChartBarSeries splineSeriesService = new ChartBarSeries(); splineSeriesService.DataFieldY = "Service"; splineSeriesService.ID = "Service Request"; splineSeriesService.CollectionAlias = "Service Request"; MonthPanel.DataSeries.Add(splineSeriesService); ChartBarSeries splineSeriesAssistance = new ChartBarSeries(); splineSeriesAssistance.DataFieldY = "Assistance"; splineSeriesAssistance.CollectionAlias = "Assistance/Inquiry"; splineSeriesAssistance.ID = "Assistance/Inquiry"; MonthPanel.DataSeries.Add(splineSeriesAssistance); //if(!IsPostBack) //{ mthClassLevelDrill(); // } MonthPanel.DataBind(); //TypePanel.Controls.Add(WeekTypeChart); }
/// <summary> /// new weekly /// </summary> public void CreateWeeklyChart() { WeeklyChart.Width = Unit.Percentage(100); WeeklyChart.Height = Unit.Pixel(400); WeeklyChart.CssClass = "chart"; WeeklyChart.PrimaryHeader.Text = "Weekly Statistics"; WeeklyChart.TooltipSettings.AxisMarkers.Enabled = true; WeeklyChart.TooltipSettings.AxisMarkers.Mode = ChartXYMode.Y; WeeklyChart.TooltipSettings.AxisMarkers.Width = new Unit(1); WeeklyChart.TooltipSettings.AxisMarkers.ZIndex = 3; WeeklyChart.Font.Size = 12; WeeklyChart.Font.Bold = true; ChartAxisX axisX = new ChartAxisX(); axisX.CategoricalValuesField = "label"; axisX.AxisType = ChartAxisType.Datetime; WeeklyChart.Axes.Add(axisX); ChartAxisY axisY = new ChartAxisY(); axisY.Title.Text = "# of Tickets"; WeeklyChart.Axes.Add(axisY); ChartBarSeries splineSeriesOpen = new ChartBarSeries(); splineSeriesOpen.DataFieldY = "Open"; splineSeriesOpen.CollectionAlias = "Open Tickets"; WeeklyChart.DataSeries.Add(splineSeriesOpen); //splineSeriesOpen.Settings.StackMode = ChartStackMode.Normal; ChartBarSeries splineSeriesNew = new ChartBarSeries(); splineSeriesNew.DataFieldY = "New"; splineSeriesNew.CollectionAlias = "New Tickets"; WeeklyChart.DataSeries.Add(splineSeriesNew); //splineSeriesB.Settings.StackMode = ChartStackMode.Normal; ChartBarSeries splineSeriesClosed = new ChartBarSeries(); splineSeriesClosed.DataFieldY = "Closed"; splineSeriesClosed.CollectionAlias = "Closed Tickets"; WeeklyChart.DataSeries.Add(splineSeriesClosed); //splineSeriesC.Settings.StackMode = ChartStackMode.Normal; /* * ChartLineSeries splineSeriesTarget = new ChartLineSeries(); * splineSeriesTarget.DataFieldY = "ShiftTarget"; * splineSeriesTarget.CollectionAlias = "Shift Target"; * WeeklyChart.DataSeries.Add(splineSeriesTarget); */ WeeklyChart.TakeDataSource += WeeklyChart_TakeDataSource; WeeklyChart.DataBind(); }
/// <summary> /// 设置属性 /// </summary> protected override void SetAttributes() { ChartAxisY control = this.ControlHost.Content as ChartAxisY; this.HtmlWriter.AddAttribute("dojoType", "Controls/Charting/YAxis"); if (!this.IsPreview) { if (!string.IsNullOrEmpty(this.ControlHost.Name)) { string name = this.ControlHost.Name.Replace(this.ProjectDocument.Name + "_", ""); this.HtmlWriter.AddAttribute("name", name); } else { this.HtmlWriter.AddAttribute("name", "y"); } } this.HtmlWriter.AddAttribute("class", "axis"); this.HtmlWriter.AddAttribute("vertical", "true"); this.HtmlWriter.AddAttribute("title", this.ControlHost.Title); this.HtmlWriter.AddAttribute("titleFontColor", control.TitleFontColor.ToString()); this.HtmlWriter.AddAttribute("titleOrientation", control.TitleOrientation.ToString()); this.HtmlWriter.AddAttribute("titleGap", control.TitleGap.ToString()); this.HtmlWriter.AddAttribute("rotation", control.Rotation.ToString()); string fontStr = string.Empty; fontStr = control.FontStyle.ToString() + " " + control.FontWeight.ToString(); if (control.FontSize > 0) { fontStr += " " + control.FontSize.ToString() + "pt"; } if (!string.IsNullOrEmpty(control.FontFamily)) { fontStr += " " + control.FontFamily.ToString(); } this.HtmlWriter.AddAttribute("font", fontStr); this.HtmlWriter.AddAttribute("fixLower", "minor"); this.HtmlWriter.AddAttribute("fixUpper", "minor"); this.HtmlWriter.AddAttribute("majorLabels", control.MajorLabels.ToString().ToLower()); this.HtmlWriter.AddAttribute("minorTicks", control.MinorTicks.ToString().ToLower()); this.HtmlWriter.AddAttribute("majorTick", "{length:" + control.MajorTick.ToString() + "}"); if (control.MajorTickStep != null && control.MajorTickStep > 0) { this.HtmlWriter.AddAttribute("majorTickStep", control.MajorTickStep.ToString()); } this.HtmlWriter.AddAttribute("natural", "true"); this.HtmlWriter.AddAttribute("includeZero", "true"); this.HtmlWriter.AddAttribute("chartRef", this.Parent.ControlHost.Name); if (control.LeftBottom == EChartAxisYPosition.Right) { this.HtmlWriter.AddAttribute("leftBottom", "false"); } //store/displayMember/valueMember string stores = GetStore(); if (!string.IsNullOrEmpty(stores)) { this.HtmlWriter.AddAttribute("sourceType", "store"); this.HtmlWriter.AddAttribute("store", stores, false); } string displayMember = GetDisplayMember(); if (!string.IsNullOrEmpty(displayMember)) { this.HtmlWriter.AddAttribute("nameField", displayMember, false); } string valueMember = GetValueMember(); if (!string.IsNullOrEmpty(valueMember)) { this.HtmlWriter.AddAttribute("dataField", valueMember, false); } base.SetAttributes(); }