//---------------------------------------------------------------------------------------------------// protected void btnSinglePageRefresh_Click(object sender, EventArgs e) { DataSet graph = this.GetSinglePageDataTable(false); this.radSinglePageChart.ChartSeriesCollection.Clear(); this.radSinglePageChart.Title1.Text = String.Format("Performance of {0}" + Environment.NewLine + "between {1} and {2}", this.cboPage.Text.Trim(), this.dteSinglePageStartDate.Date.ToString("dd/MM/yyyy"), this.dteSinglePageEndDate.Date.ToString("dd/MM/yyyy")); ChartSeries chartSeries = this.radSinglePageChart.CreateSeries("Page Processing Time", System.Drawing.Color.Orange, ChartSeriesType.Line); chartSeries.LabelAppearance.Visible = false; chartSeries.LineWidth = 3; this.radSinglePageChart.XAxis.ShowLabels = true; this.radSinglePageChart.XAxis.AutoScale = false; this.radSinglePageChart.XAxis.ShowMarks = false; this.radSinglePageChart.XAxis.AxisStyle = ChartYAxisStyle.Normal; this.radSinglePageChart.XAxis.Label.Text = ""; this.radSinglePageChart.XAxis.LabelRotationAngle = 40; this.radSinglePageChart.XAxis.Items.Clear(); this.radSinglePageChart.YAxis.AxisStyle = ChartYAxisStyle.Extended; this.radSinglePageChart.YAxis.Label.Text = "Average processing time in seconds"; foreach (DataRow row in graph.Tables[0].Rows) { chartSeries.AddItem(Convert.ToDouble(row["AverageProcessingTime"]), row["Date"].ToString(), System.Drawing.Color.Orange); ChartAxisItem item = new ChartAxisItem(row["Date"].ToString(), System.Drawing.Color.Black); item.Visible = true; this.radSinglePageChart.XAxis.Items.AddItem(item); } this.radSinglePageChart.Visible = true; }
protected void BindGraphs(DataTable dt) { ////////////////////// Bar Graph /////////////////////////// rc_bar.Clear(); rc_bar.PlotArea.XAxis.RemoveAllItems(); rc_bar.PlotArea.MarkedZones.Clear(); // Stylise rc_bar.AutoLayout = true; rc_bar.Legend.Appearance.Visible = false; rc_bar.PlotArea.YAxis.AxisLabel.Visible = true; rc_bar.PlotArea.XAxis.AxisLabel.Visible = true; rc_bar.PlotArea.YAxis.AutoScale = false; rc_bar.PlotArea.XAxis.AutoScale = false; rc_bar.PlotArea.EmptySeriesMessage.TextBlock.Text = "There is no history series for the selected timescale."; rc_bar.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Report Week"; rc_bar.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate; rc_bar.PlotArea.XAxis.Appearance.CustomFormat = "dd/MM/yy"; rc_bar.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 315; rc_bar.PlotArea.YAxis.AxisLabel.TextBlock.Text = "Revenue"; rc_bar.ChartTitle.TextBlock.Text = "Revenue History"; // Define chart series ChartSeries bar_series = new ChartSeries("Revenue", ChartSeriesType.Bar); bar_series.Appearance.FillStyle.MainColor = Color.DarkSlateBlue; int bar_height = 0; int bar_total = 0; for (int i = (gv.Rows.Count - 3); i > -1; i--) { bar_total += (Convert.ToInt32(Util.CurrencyToText(gv.Rows[i].Cells[gv.Rows[i].Cells.Count - 1].Text))); if ((Convert.ToInt32(Util.CurrencyToText(gv.Rows[i].Cells[gv.Rows[i].Cells.Count - 1].Text))) > bar_height) { bar_height = (Convert.ToInt32(Util.CurrencyToText(gv.Rows[i].Cells[gv.Rows[i].Cells.Count - 1].Text))); } bar_series.AddItem(Convert.ToInt32(Util.CurrencyToText(gv.Rows[i].Cells[gv.Rows[i].Cells.Count - 1].Text))); bar_series.Items[bar_series.Items.Count - 1].Label.TextBlock.Text = gv.Rows[i].Cells[gv.Rows[i].Cells.Count - 1].Text; DateTime date = Convert.ToDateTime(dt.Rows[i]["WeekStart"].ToString().Substring(0, 10)); ChartAxisItem item = new ChartAxisItem(); item.Value = (decimal)date.ToOADate(); rc_bar.PlotArea.XAxis.AddItem(item); bar_series.Appearance.TextAppearance.TextProperties.Color = Color.Black; } ChartMarkedZone bar_avg = new ChartMarkedZone(); bar_avg.Appearance.FillStyle.FillType = Telerik.Charting.Styles.FillType.Gradient; bar_avg.Appearance.FillStyle.MainColor = Color.Orange; bar_avg.Appearance.FillStyle.SecondColor = Color.OrangeRed; if (bar_total != 0) { bar_avg.ValueStartY = (bar_total / (gv.Rows.Count - 2)) - (((bar_total / (gv.Rows.Count - 2)) / 100) * 2); bar_avg.ValueEndY = (bar_total / (gv.Rows.Count - 2)); } rc_bar.PlotArea.MarkedZones.Add(bar_avg); if (rbl_bartype.SelectedIndex == 0) { bar_series.Type = ChartSeriesType.Bar; } else if (rbl_bartype.SelectedIndex == 1) { bar_series.Type = ChartSeriesType.Area; } else if (rbl_bartype.SelectedIndex == 2) { bar_series.Type = ChartSeriesType.SplineArea; } else if (rbl_bartype.SelectedIndex == 3) { bar_series.Type = ChartSeriesType.Bubble; } rc_bar.Series.Add(bar_series); double max_value = bar_height + Convert.ToInt32((bar_height / 100) * 15); double step = 10000; rc_bar.PlotArea.YAxis.AddRange(0, max_value, step); ////////////////////// Line Graph ////////////////////////// rc_line.Clear(); rc_line.PlotArea.XAxis.RemoveAllItems(); rc_line.PlotArea.MarkedZones.Clear(); // Stylise rc_line.Legend.Appearance.Visible = false; rc_line.PlotArea.YAxis.AxisLabel.Visible = true; rc_line.PlotArea.XAxis.AxisLabel.Visible = true; rc_line.PlotArea.YAxis.AutoScale = false; rc_line.PlotArea.XAxis.AutoScale = false; rc_line.PlotArea.EmptySeriesMessage.TextBlock.Text = "There is no history series for the selected timescale."; rc_line.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Report Week"; rc_line.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate; rc_line.PlotArea.XAxis.Appearance.CustomFormat = "dd/MM/yy"; rc_line.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 315; rc_line.PlotArea.YAxis.AxisLabel.TextBlock.Text = "Approvals"; rc_line.ChartTitle.TextBlock.Text = "Approvals History"; // Define chart series ChartSeries line_series = new ChartSeries("Approvals", ChartSeriesType.Line); line_series.Appearance.FillStyle.MainColor = Color.DarkSlateBlue; int line_total = 0; int line_height = 0; for (int i = gv.Rows.Count - 3; i > -1; i--) { line_series.AddItem(Convert.ToInt32(dt.Rows[i]["Approvals"])); line_total += Convert.ToInt32(dt.Rows[i]["Approvals"]); if (Convert.ToInt32(dt.Rows[i]["Approvals"]) > line_height) { line_height = Convert.ToInt32(dt.Rows[i]["Approvals"]); } DateTime date = Convert.ToDateTime(dt.Rows[i]["WeekStart"].ToString().Substring(0, 10)); ChartAxisItem item = new ChartAxisItem(); item.Value = (decimal)date.ToOADate(); rc_line.PlotArea.XAxis.AddItem(item); line_series.Appearance.TextAppearance.TextProperties.Color = Color.Black; } ChartMarkedZone line_avg = new ChartMarkedZone(); line_avg.Appearance.FillStyle.FillType = Telerik.Charting.Styles.FillType.Gradient; line_avg.Appearance.FillStyle.MainColor = Color.Orange; line_avg.Appearance.FillStyle.SecondColor = Color.OrangeRed; if (line_total != 0) { line_avg.ValueStartY = (line_total / (gv.Rows.Count - 2)) - 0.2; line_avg.ValueEndY = (line_total / (gv.Rows.Count - 2)); } rc_line.PlotArea.MarkedZones.Add(line_avg); if (rbl_linetype.SelectedIndex == 0) { line_series.Type = ChartSeriesType.Line; } else if (rbl_linetype.SelectedIndex == 1) { line_series.Type = ChartSeriesType.Spline; } rc_line.Series.Add(line_series); double pa_max_value = line_height + 5; double pa_step = 5; rc_line.PlotArea.YAxis.AddRange(0, pa_max_value, pa_step); }
/// <summary> /// Proceeds the axis. /// </summary> /// <param name="row">The row.</param> /// <param name="systemName">Name of the system.</param> /// <param name="axis">The axis.</param> /// <param name="startDate">The start date.</param> /// <param name="endDate">The end date.</param> /// <param name="rowsCount">The rows count.</param> /// <param name="value">The value.</param> protected void ProceedAxis(DataRow row, string systemName, ChartAxis axis, DateTime startDate, DateTime endDate, int rowsCount, ref double value) { if (row[systemName] is DateTime) { value = ((DateTime)row[systemName]).ToOADate(); axis.AutoScale = true; if (rowsCount == 1) { axis.AutoScale = false; axis.MinValue = value; axis.MaxValue = value; } axis.IsZeroBased = false; axis.Appearance.ValueFormat = ChartValueFormat.ShortDate; axis.Appearance.CustomFormat = "dd.MM.yy"; axis.Appearance.LabelAppearance.RotationAngle = 90; if ((endDate - startDate).Days <= 7) { axis.AutoScale = false; axis.MinValue = startDate.ToOADate(); axis.MaxValue = endDate.AddDays(-1).ToOADate(); } } else if (row[systemName] is int || row[systemName] is double || row[systemName] is decimal) { axis.Appearance.LabelAppearance.RotationAngle = 0; value = double.Parse(row[systemName].ToString()); if (systemName == "Period" && (endDate - startDate).Days == 1) { axis.AutoScale = false; axis.MinValue = 0; axis.MaxValue = 23; axis.Appearance.LabelAppearance.RotationAngle = 90; } axis.IsZeroBased = true; axis.Appearance.ValueFormat = ChartValueFormat.None; axis.Appearance.CustomFormat = ""; } else { axis.AutoScale = false; axis.Appearance.LabelAppearance.RotationAngle = 90; var text = (string.IsNullOrEmpty(row[systemName].ToString()) ? "Не определено" : row[systemName].ToString()); if (!axis.Items.Any(o => o.TextBlock.Text == text)) { var chartAxisItem = new ChartAxisItem(string.IsNullOrEmpty(row[systemName].ToString()) ? "Не определено" : row[systemName].ToString()); axis.AddItem(chartAxisItem); } axis.IsZeroBased = true; axis.Appearance.ValueFormat = ChartValueFormat.None; axis.Appearance.CustomFormat = ""; var item = axis.Items.SingleOrDefault(o => o.TextBlock.Text == text); item.Value = axis.Items.IndexOf(item); value = (double)item.Value; } }
private void fillChartAxis() { DateTime dtToday = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy")); try { int iAvergaeView = 1; int arrIndex = 0; for (int i = 0; i <= giChartDaySpan; i++) { if (iAvergaeView >= giChartAverageView) { iAvergaeView = 1; DateTime dtCurrent = dtToday.AddDays(i); TimeSpan span = dtCurrent.Subtract(dtToday); //Response.Write(" <b>" + span.Days + "</b>, " + dtCurrent.AddDays(-giChartDaySpan).ToString("MMM d")); ChartAxisItem CAI = new ChartAxisItem(); CAI.Value = span.Days; CAI.TextBlock.Text = dtCurrent.AddDays(-giChartDaySpan).ToString("MMM d"); //Response.Write(rbViewMonthly.Checked.ToString()); if (rbViewMonthly.Checked) { CAI.TextBlock.Text = dtCurrent.AddDays(-giChartDaySpan).ToString("MMM"); } CAI.Appearance.RotationAngle = 0; CAI.Appearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.Top; RadChart1.PlotArea.XAxis.Items.Add(CAI); gaDates[arrIndex, 0] = dtCurrent.AddDays(-giChartDaySpan).ToString("MM/dd/yyyy"); // Response.Write(gaDates[arrIndex, 0]+ " | "); gaDates[arrIndex, 2] = "0"; gaDates[arrIndex, 3] = CAI.Value.ToString(); arrIndex++; } else { iAvergaeView++; } } RadChart1.PlotArea.XAxis.Appearance.MajorGridLines.Color = System.Drawing.Color.Red; RadChart1.PlotArea.XAxis.Appearance.MajorGridLines.Visible = true; RadChart1.PlotArea.XAxis.Appearance.MajorGridLines.PenStyle = System.Drawing.Drawing2D.DashStyle.Solid; RadChart1.PlotArea.XAxis.Appearance.MajorGridLines.Width = 3; if (Convert.ToDateTime(gaDates[arrIndex - 1, 0]) < DateTime.Now) { gaDates[arrIndex - 1, 0] = DateTime.Now.Date.ToString("MM/dd/yyyy"); } for (int i = 0; i < 6; i++) { ChartAxisItem CAI = new ChartAxisItem(); CAI.Value = i; CAI.TextBlock.Text = (i * 10).ToString(); CAI.TextBlock.Appearance.TextProperties.Color = System.Drawing.Color.Goldenrod; //CAI.Appearance.RotationAngle = 90; //CAI.Appearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.None; RadChart1.PlotArea.YAxis.Items.Add(CAI); } for (int i = 0; i < 6; i++) { ChartAxisItem CAI = new ChartAxisItem(); CAI.Value = i; CAI.TextBlock.Text = i.ToString(); CAI.TextBlock.Appearance.TextProperties.Color = System.Drawing.Color.Gray; //CAI.Appearance.RotationAngle = 90; //CAI.Appearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.None; RadChart1.PlotArea.YAxis2.Items.Add(CAI); } } catch (Exception ex) { } }
private void BuildChart(RadChart chart, DataTable seriesData) { // Handle Legend Labels chart.Series.Clear(); var nSeries = new ChartSeries(); var nSeries2 = new ChartSeries(); nSeries.Name = "School %"; nSeries2.Name = "District %"; chart.Legend.Appearance.ItemTextAppearance.AutoTextWrap = AutoTextWrap.False; //double minval = 100; //double maxval = 0; ChartAxisItemsCollection caic = new ChartAxisItemsCollection(); var year_list = new List<String>(); // Begin Experience tab foreach (DataRow dr in seriesData.Rows) { var myItem = new ChartSeriesItem(DataIntegrity.ConvertToDouble(dr["SuspensionRate"]), dr["LevelLabel"].ToString()) { Name = dr["SchoolYear"].ToString() }; if (String.IsNullOrEmpty(dr["SuspensionRate"].ToString())) myItem.Appearance.Visible = false; // hide bar and text if the value is null (no data) //myItem.Label.Appearance.LabelLocation = StyleSeriesItemLabel.ItemLabelLocation.Auto; if (dr["Level"].Equals("District")) { nSeries2.AddItem(myItem); } else { nSeries.AddItem(myItem); } year_list.Add(dr["SchoolYear"].ToString()); //if (minval > DataIntegrity.ConvertToDouble(dr["SuspensionRate"])) minval = DataIntegrity.ConvertToDouble(dr["SuspensionRate"]); //if (maxval < DataIntegrity.ConvertToDouble(dr["SuspensionRate"])) maxval = DataIntegrity.ConvertToDouble(dr["SuspensionRate"]); } foreach (var yl in year_list.Distinct()) { ChartAxisItem ai = new ChartAxisItem(); ai.TextBlock.Text = yl; caic.Add(ai); } chart.PlotArea.XAxis.AddItem(caic); chart.PlotArea.YAxis.MinValue = 0; //chart.PlotArea.YAxis.Step = (maxval - (minval - 5)) / 2; chart.PlotArea.YAxis.Step = 5; chart.PlotArea.YAxis.AutoScale = true; //chart.PlotArea.YAxis.MaxValue = maxval == 100 ? maxval : maxval + 5; //chart.PlotArea.YAxis.a = maxval == 100 ? maxval : maxval + 5; chart.Series.Add(nSeries); chart.Series.Add(nSeries2); chart.ChartTitle.Visible = false; chart.SetSkin("SuspensionRate"); }
protected void Page_Load(object sender, EventArgs e) { /******************************************************************* * If user does not have Icon_Expanded_Staff permissions, then hide * the "Advanced Search" link via its surrounding div tag. * ****************************************************************/ _level = (Thinkgate.Base.Enums.EntityTypes)Tile.TileParms.GetParm("level"); _levelID = DataIntegrity.ConvertToInt(Tile.TileParms.GetParm("levelID")); List<AsyncPageTask> taskList = new List<AsyncPageTask>(); taskList.Add(new AsyncPageTask(GetAttendRateForSchool)); foreach (AsyncPageTask page in taskList) { PageAsyncTask newTask = new PageAsyncTask(page.OnBegin, page.OnEnd, page.OnTimeout, "SchoolAttendance", true); Page.RegisterAsyncTask(newTask); } taskList = null; Page.ExecuteRegisteredAsyncTasks(); // Handle Legend Labels teacherCountChart.Series.Clear(); var nSeries = new ChartSeries(); var nSeries2 = new ChartSeries(); nSeries.Name = "School %"; nSeries2.Name = "District %"; //double minval = 100; //double maxval = 0; ChartAxisItemsCollection caic = new ChartAxisItemsCollection(); var year_list = new List<String>(); foreach (DataRow dr in countData.Rows) { var myItem = new ChartSeriesItem(DataIntegrity.ConvertToDouble(dr["AttendanceRate"]), dr["LevelLabel"].ToString()) { Name = dr["SchoolYear"].ToString() }; if (String.IsNullOrEmpty(dr["AttendanceRate"].ToString())) myItem.Appearance.Visible = false; // hide bar and text if the value is null (no data) if (dr["Level"].Equals("District")) { nSeries2.AddItem(myItem); } else { nSeries.AddItem(myItem); } year_list.Add(dr["SchoolYear"].ToString()); //if (minval > DataIntegrity.ConvertToDouble(dr["AttendanceRate"])) minval = DataIntegrity.ConvertToDouble(dr["AttendanceRate"]); //if (maxval < DataIntegrity.ConvertToDouble(dr["AttendanceRate"])) maxval = DataIntegrity.ConvertToDouble(dr["AttendanceRate"]); } foreach (var yl in year_list.Distinct()) { ChartAxisItem ai = new ChartAxisItem(); ai.TextBlock.Text = yl; caic.Add(ai); } teacherCountChart.PlotArea.XAxis.AddItem(caic); teacherCountChart.PlotArea.YAxis.MinValue = 0; teacherCountChart.PlotArea.YAxis.Step = 5; teacherCountChart.PlotArea.YAxis.MaxValue = 1; teacherCountChart.Series.Add(nSeries); teacherCountChart.Series.Add(nSeries2); teacherCountChart.ChartTitle.Visible = false; teacherCountChart.SetSkin("SchoolAttendanceRates"); }
private void fillRadChart_PAL_Enrties(string sXAxisValue, string sFromDate, string sFilter_AccountFrom) { DateTime dtMonthStart = Convert.ToDateTime(sFromDate); string sMonthStart = dtMonthStart.ToString("MM/01/yyyy"); string sMonthEnd = dtMonthStart.AddMonths(1).AddSeconds(-1).ToString(); DataSet DS = objReportClass.Rpt_REPORT_PalEntries_BY_Date(sMonthStart, sMonthEnd, UC_Visitlog_Visitlog1.ACCOUNT_ID, sFilter_AccountFrom); string sXAxisText = dtMonthStart.ToString("MMM yy"); double dNumPal = Convert.ToDouble(DS.Tables[0].Rows[0]["NUM_PAL"]); double dSumMet = Convert.ToDouble(DS.Tables[0].Rows[0]["SUM_MET"]); //insert the new xaxis coordinate ChartAxisItem CAI = new ChartAxisItem(); CAI.Value = Convert.ToDecimal(sXAxisValue); CAI.TextBlock.Text = sXAxisText;// dtCurrent.AddDays(-giChartDaySpan).ToString("MMM d"); CAI.Appearance.RotationAngle = 0; CAI.Appearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.Top; RadChart_PAL_Enrties.PlotArea.XAxis.Items.Add(CAI); ChartSeriesItem CSI1 = new ChartSeriesItem(); CSI1.YValue = dNumPal; CSI1.XValue = Convert.ToDouble(sXAxisValue); //if (Convert.ToDateTime(sMonthStart) < DateTime.Now) { RadChart_PAL_Enrties.Series[0].AddItem(CSI1); } sFromDate = Convert.ToDateTime(sFromDate).AddMonths(1).ToString(); }
private void fillRadChart_DD_TotalsCount(string sXAxisValue, string sFromDate, string sFilter_AccountFrom) { DateTime dtMonthStart = Convert.ToDateTime(sFromDate); string sMonthStart = dtMonthStart.ToString("MM/01/yyyy"); string sMonthEnd = dtMonthStart.AddMonths(1).AddSeconds(-1).ToString(); //insert the new xaxis coordinate string sXAxisText = dtMonthStart.ToString("MMM yy"); ChartAxisItem CAI = new ChartAxisItem(); CAI.Value = Convert.ToDecimal(sXAxisValue); CAI.TextBlock.Text = sXAxisText;// dtCurrent.AddDays(-giChartDaySpan).ToString("MMM d"); CAI.Appearance.RotationAngle = 0; CAI.Appearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.Top; RadChart_DD_TotalsCount.PlotArea.XAxis.Items.Add(CAI); DataSet DS = objBackofficeClass.GET_Items_AnyItemTable("LVType", "LIST_DD"); //RadChart_DD_LVTotals.Series[0].Name = DS.Tables[0].Rows[0]["ITEM_TEXT"].ToString(); DS = objReportClass.Rpt_REPORT_ListDd_LVType(sMonthStart, sMonthEnd, UC_Visitlog_Visitlog1.ACCOUNT_ID, sFilter_AccountFrom); // if (DS.Tables[0].Rows.Count > 0 && Convert.ToDateTime(sMonthStart) < DateTime.Now) { DataRow DR = DS.Tables[0].Rows[0]; ChartSeriesItem CSI = new ChartSeriesItem(); CSI.YValue = Convert.ToDouble(DR["Count"]); CSI.XValue = Convert.ToDouble(sXAxisValue); RadChart_DD_TotalsCount.Series[0].AddItem(CSI); } }
protected void GenerateGraph(String between) { rc_actionhistory.Clear(); rc_actionhistory.PlotArea.XAxis.RemoveAllItems(); String[] types = { "INSERT", "UPDATE" }; //"DELETE","MERGE" for (int i = 0; i < types.Length; i++) { String qry = "SELECT DATE_FORMAT(eventtime,'%d/%m/%Y'), COUNT(*) " + "FROM dh_datahubinputlog " + "WHERE username=@username " + between + " AND actionType=@at " + "GROUP BY DATE_FORMAT(eventtime,'%d/%m/%Y') " + "ORDER BY DATE_FORMAT(eventtime,'%d/%m/%Y')"; DataTable dt = SQL.SelectDataTable(qry, new String[] { "@username", "@at" }, new Object[] { dd_user.SelectedItem.Value, types[i] }); if (dt.Rows.Count > 0) { ChartSeries series = new ChartSeries(types[i], ChartSeriesType.Line); if (rc_actionhistory.Series.Count > 0) { rc_actionhistory.IntelligentLabelsEnabled = false; series.Appearance.TextAppearance.Visible = false; } else { series.Appearance.TextAppearance.TextProperties.Color = System.Drawing.Color.Red; } DateTime prevDate = Convert.ToDateTime(dt.Rows[0][0].ToString().Substring(0, 10)); TimeSpan day = new TimeSpan(24, 0, 0); for (int j = 0; j < dt.Rows.Count; j++) { DateTime date = Convert.ToDateTime(dt.Rows[j][0].ToString().Substring(0, 10)); // Removed as adding too many zeros to plot //if (date.Subtract(prevDate) == day || j == 0) //{ series.AddItem(Convert.ToInt32(dt.Rows[j][1])); prevDate = date; //} //else //{ // series.AddItem(0); // prevDate += day; // j--; //} if (rc_actionhistory.Series.Count == 0) { ChartAxisItem item = new ChartAxisItem(); item.Value = (decimal)prevDate.ToOADate(); rc_actionhistory.PlotArea.XAxis.AddItem(item); } } rc_actionhistory.Series.Add(series); } } rc_actionhistory.Visible = true; rc_actionhistory.ChartTitle.TextBlock.Text = "Daily Actions"; rc_actionhistory.PlotArea.XAxis.AutoScale = false; rc_actionhistory.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate; rc_actionhistory.PlotArea.XAxis.Appearance.CustomFormat = "dd/MM/yy"; rc_actionhistory.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 270; rc_actionhistory.PlotArea.YAxis.Appearance.TextAppearance.TextProperties.Color = System.Drawing.Color.LimeGreen; rc_actionhistory.PlotArea.XAxis.Appearance.TextAppearance.TextProperties.Color = System.Drawing.Color.LimeGreen; rc_actionhistory.PlotArea.EmptySeriesMessage.TextBlock.Text = "No data for this user/time period."; }
// Generate protected void Bind() { String betweenExpr = ""; String limitExpr = ""; if (dp_start.SelectedDate != null && dp_end.SelectedDate != null) { betweenExpr = " WHERE date BETWEEN @start_date AND @end_date "; } else { limitExpr = " LIMIT 50"; } // Reportb reakdown data String qry = "SELECT * FROM dh_datahubmastercount " + betweenExpr + " ORDER BY date " + limitExpr; String[] pn = null; Object[] pv = null; if (betweenExpr != "") { pn = new String[] { "@start_date", "@end_date" }; pv = new Object[] { Convert.ToDateTime(dp_start.SelectedDate).ToString("yyyy/MM/dd"), Convert.ToDateTime(dp_end.SelectedDate).ToString("yyyy/MM/dd") }; } DataTable totals = SQL.SelectDataTable(qry, pn, pv); qry = "SELECT * FROM dh_datahubmastercount ORDER BY date DESC LIMIT 1"; DataTable latest = SQL.SelectDataTable(qry, null, null); qry = "SELECT IFNULL(MAX(companies),0) as maxcomp, IFNULL(MIN(companies),0) as mincomp, IFNULL(MAX(contacts),0) as maxcon, IFNULL(MIN(contacts),0) as mincon, " + "IFNULL(MAX(emails),0) as maxe, IFNULL(MIN(emails),0) as mine " + "FROM dh_datahubmastercount " + betweenExpr; pn = null; pv = null; if (betweenExpr != "") { pn = new String[] { "@start_date", "@end_date" }; pv = new Object[] { Convert.ToDateTime(dp_start.SelectedDate).ToString("yyyy/MM/dd"), Convert.ToDateTime(dp_end.SelectedDate).ToString("yyyy/MM/dd") }; } DataTable maxvals = SQL.SelectDataTable(qry, pn, pv); qry = "SELECT date, notes FROM dh_datahubmastercount " + "WHERE notes != '' AND notes IS NOT NULL " + betweenExpr.Replace("WHERE", "AND"); pn = null; pv = null; if (betweenExpr != "") { pn = new String[] { "@start_date", "@end_date" }; pv = new Object[] { Convert.ToDateTime(dp_start.SelectedDate).ToString("yyyy/MM/dd"), Convert.ToDateTime(dp_end.SelectedDate).ToString("yyyy/MM/dd") }; } DataTable notes = SQL.SelectDataTable(qry, pn, pv); gv_notes.DataSource = notes; gv_notes.DataBind(); ////////////////////// Graphs ////////////////////////// rc_companies.Clear(); rc_companies.PlotArea.XAxis.RemoveAllItems(); rc_contacts.Clear(); rc_contacts.PlotArea.XAxis.RemoveAllItems(); rc_emails.Clear(); rc_emails.PlotArea.XAxis.RemoveAllItems(); rc_companies.Legend.Appearance.Visible = false; rc_companies.PlotArea.YAxis.AutoScale = false; rc_companies.PlotArea.XAxis.AutoScale = false; rc_companies.PlotArea.EmptySeriesMessage.TextBlock.Text = "There is no history series for this timescale."; rc_companies.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Date"; rc_companies.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate; rc_companies.PlotArea.XAxis.Appearance.CustomFormat = "dd/MM/yy"; rc_companies.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 270; rc_companies.PlotArea.YAxis.AxisLabel.TextBlock.Text = "Companies"; rc_companies.ChartTitle.TextBlock.Text = "DataHub Company History (Currently " + Convert.ToInt32(latest.Rows[0]["companies"]).ToString("#,##0") + ")"; rc_contacts.Legend.Appearance.Visible = false; rc_contacts.PlotArea.YAxis.AutoScale = false; rc_contacts.PlotArea.XAxis.AutoScale = false; rc_contacts.PlotArea.EmptySeriesMessage.TextBlock.Text = "There is no history series for this timescale."; rc_contacts.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Date"; rc_contacts.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate; rc_contacts.PlotArea.XAxis.Appearance.CustomFormat = "dd/MM/yy"; rc_contacts.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 270; rc_contacts.PlotArea.YAxis.AxisLabel.TextBlock.Text = "Contacts"; rc_contacts.ChartTitle.TextBlock.Text = "DataHub Contact History (Currently " + Convert.ToInt32(latest.Rows[0]["contacts"]).ToString("#,##0") + ")"; rc_emails.Legend.Appearance.Visible = false; rc_emails.PlotArea.YAxis.AutoScale = false; rc_emails.PlotArea.XAxis.AutoScale = false; rc_emails.PlotArea.EmptySeriesMessage.TextBlock.Text = "There is no history series for this timescale."; rc_emails.PlotArea.XAxis.AxisLabel.TextBlock.Text = "Date"; rc_emails.PlotArea.XAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate; rc_emails.PlotArea.XAxis.Appearance.CustomFormat = "dd/MM/yy"; rc_emails.PlotArea.XAxis.Appearance.LabelAppearance.RotationAngle = 270; rc_emails.PlotArea.YAxis.AxisLabel.TextBlock.Text = "E-Mails"; rc_emails.ChartTitle.TextBlock.Text = "DataHub E-Mail History (Currently " + Convert.ToInt32(latest.Rows[0]["emails"]).ToString("#,##0") + ")"; // Define chart series ChartSeries companies = new ChartSeries("Companies", ChartSeriesType.Line); ChartSeries contacts = new ChartSeries("Contacts", ChartSeriesType.Line); ChartSeries emails = new ChartSeries("E-mails", ChartSeriesType.Line); companies.Appearance.FillStyle.MainColor = System.Drawing.Color.Green; companies.Appearance.TextAppearance.Visible = false; contacts.Appearance.FillStyle.MainColor = System.Drawing.Color.Blue; contacts.Appearance.TextAppearance.Visible = false; emails.Appearance.FillStyle.MainColor = System.Drawing.Color.Red; emails.Appearance.TextAppearance.Visible = false; for (int i = 0; i < totals.Rows.Count; i++) { DateTime date = Convert.ToDateTime(totals.Rows[i]["date"].ToString().Substring(0, 10)); ChartAxisItem item = new ChartAxisItem(); item.Value = (decimal)date.ToOADate(); rc_companies.PlotArea.XAxis.AddItem(item); rc_contacts.PlotArea.XAxis.AddItem(item); rc_emails.PlotArea.XAxis.AddItem(item); companies.AddItem(Convert.ToInt32(totals.Rows[i]["companies"])); contacts.AddItem(Convert.ToInt32(totals.Rows[i]["contacts"])); emails.AddItem(Convert.ToInt32(totals.Rows[i]["emails"])); } rc_companies.Series.Add(companies); rc_contacts.Series.Add(contacts); rc_emails.Series.Add(emails); if (maxvals.Rows.Count > 0) { int t = 5; int cpymax = Convert.ToInt32(maxvals.Rows[0]["maxcomp"]); int ctcmax = Convert.ToInt32(maxvals.Rows[0]["maxcon"]); int emailmax = Convert.ToInt32(maxvals.Rows[0]["maxe"]); int cpymin = Convert.ToInt32(maxvals.Rows[0]["mincomp"]); int ctcmin = Convert.ToInt32(maxvals.Rows[0]["mincon"]); int emailmin = Convert.ToInt32(maxvals.Rows[0]["mine"]); int cpyhigh = cpymax + ((cpymax / 1000) * t); int cpylow = cpymin - ((cpymin / 1000) * t); int ctchigh = ctcmax + ((ctcmax / 1000) * t); int ctclow = ctcmin - ((ctcmin / 1000) * t); int emailhigh = emailmax + ((emailmax / 100) * t); int emaillow = emailmin - ((emailmin / 100) * t); if (cpyhigh != 0) { double cpy_step = ((cpyhigh - cpylow) / 5); if (cpy_step == 0) { cpy_step = 1; } double ctc_step = ((ctchigh - ctclow) / 5); if (ctc_step == 0) { ctc_step = 1; } double email_step = ((emailhigh - emaillow) / 5); if (email_step == 0) { email_step = 1; } rc_companies.PlotArea.YAxis.AddRange(cpylow, cpyhigh, cpy_step); rc_contacts.PlotArea.YAxis.AddRange(ctclow, ctchigh, ctc_step); rc_emails.PlotArea.YAxis.AddRange(emaillow, emailhigh, email_step); } else { rc_companies.PlotArea.YAxis.AddRange(0, 1, 1); rc_contacts.PlotArea.YAxis.AddRange(0, 1, 1); rc_emails.PlotArea.YAxis.AddRange(0, 1, 1); Util.PageMessage(this, "No data found for this date range."); } } }