Esempio n. 1
0
        /// <summary>
        /// 设置DisplayMember
        /// </summary>
        /// <returns></returns>
        private string GetDisplayMember()
        {
            ChartAxisX    control                    = this.ControlHost.Content as ChartAxisX;
            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);
    }
Esempio n. 4
0
        /// <summary>
        /// 设置Store
        /// </summary>
        /// <returns></returns>
        private string GetStore()
        {
            ChartAxisX    control                    = this.ControlHost.Content as ChartAxisX;
            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());
        }
Esempio n. 5
0
        /// <summary>
        /// 设置属性
        /// </summary>
        protected override void SetAttributes()
        {
            ChartAxisX control = this.ControlHost.Content as ChartAxisX;

            this.HtmlWriter.AddAttribute("dojoType", "Controls/Charting/XAxis");
            this.HtmlWriter.AddAttribute("class", "axis");
            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", "x");
                }
            }

            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 == EChartAxisXPosition.Top)
            {
                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();
        }
    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();
    }