Exemple #1
0
        //---------------------------------------------------------------------------------------------------//

        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;
        }
Exemple #2
0
    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);
    }
Exemple #3
0
        /// <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.";
    }
Exemple #10
0
    // 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.");
            }
        }
    }