Exemple #1
0
        public PartialViewResult GetCompanyStatusChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ChartType   = DotNet.Highcharts.Enums.ChartTypes.Pie;
            chartModel.ContainerId = "companyStatusChart";
            chartModel.Title       = "客户状态";

            YSeries series = new YSeries();

            series.YName = "数量";

            chartModel.ValueSuffix = "个";
            //读取公司的表,group by 销售名
            OtaCrmModel db = new OtaCrmModel();
            var         ss = from i in db.OtaCompany
                             where i.BusinessStatus != null
                             group i by i.BusinessStatus
                             into g
                             select new { count = g.Count(), businessStatus = g.Key };
            List <object[]> pieDataList = new List <object[]>();

            foreach (var item in ss)
            {
                object[] pieData = new object[] { item.businessStatus, item.count };
                pieDataList.Add(pieData);
            }
            chartModel.pieDataList = pieDataList;

            DotNet.Highcharts.Highcharts chart = GetPieChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Exemple #2
0
        public PartialViewResult GetCompanyCountChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.Height      = 500;
            chartModel.ContainerId = "companyCountChart";
            chartModel.Title       = "客户数量";
            chartModel.SeriesList  = new List <YSeries>();

            YSeries series = new YSeries();

            series.YSeriesList = new List <object>();
            series.YName       = "数量";

            chartModel.YTitle      = DateTime.Today.ToString("yyyy-MM-dd");
            chartModel.ValueSuffix = "个";
            //读取公司的表,group by 销售名
            OtaCrmModel db = new OtaCrmModel();
            var         ss = from i in db.OtaCompany
                             group i by i.SalesUserName
                             into g
                             select new { count = g.Count(), userName = g.Key };

            foreach (var item in ss)
            {
                chartModel.XList.Add(item.userName);
                series.YSeriesList.Add(item.count);
            }
            chartModel.SeriesList.Add(series);

            DotNet.Highcharts.Highcharts chart = GetChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Exemple #3
0
 private void SaveExperimentButton_Click(object sender, RoutedEventArgs e)
 {
     YSeries.Insert(YSeries.Count - 1, YSeries.Last());
     XSeries.Insert(XSeries.Count - 1, XSeries.Last());
     YSpeedSeries.Insert(YSpeedSeries.Count - 1, YSpeedSeries.Last());
     XSpeedSeries.Insert(XSpeedSeries.Count - 1, XSpeedSeries.Last());
     Parameters.Insert(Parameters.Count - 1, Parameters.Last());
     AddEllipse = true;
     ++colorIndex;
     Update();
 }
Exemple #4
0
        private void ListBox_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            var item = ItemsControl.ContainerFromElement((ItemsControl)sender, (DependencyObject)e.OriginalSource) as ListBoxItem;

            if (item == null)
            {
                return;
            }
            var series = (LineSeries)item.Content;

            if (e.LeftButton == MouseButtonState.Pressed)
            {
                series.Visibility = series.Visibility == Visibility.Visible
                    ? Visibility.Hidden
                    : Visibility.Visible;
            }
            else if (e.RightButton == MouseButtonState.Pressed)
            {
                int index = -1;
                if (YRadioButton.IsChecked.Value)
                {
                    index = YSeries.IndexOf(series);
                }
                else if (XRadioButton.IsChecked.Value)
                {
                    index = XSeries.IndexOf(series);
                }
                else if (YSpeedRadioButton.IsChecked.Value)
                {
                    index = YSpeedSeries.IndexOf(series);
                }
                else
                {
                    index = XSpeedSeries.IndexOf(series);
                }
                if (index == YSeries.Count - 1)
                {
                    return;
                }
                YSeries.RemoveAt(index);
                XSeries.RemoveAt(index);
                YSpeedSeries.RemoveAt(index);
                XSpeedSeries.RemoveAt(index);
                AnimCanvas.Children.Remove(Ellipsies[index]);
                AnimCanvas.Children.Remove(Polylines[index]);
                Ellipsies.RemoveAt(index);
                Polylines.RemoveAt(index);
                YAnimations.RemoveAt(index);
                XAnimations.RemoveAt(index);
                Parameters.RemoveAt(index);
                UpdateAnimation = true;
                DataChanged     = true;
            }
        }
Exemple #5
0
        public PartialViewResult GetMeetCountChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ContainerId = "meetChart";
            chartModel.Title       = "沟通频率";

            chartModel.SeriesList = new List <YSeries>();

            YSeries series = new YSeries();

            series.YSeriesList = new List <object>();
            series.YName       = "次数";

            chartModel.ValueSuffix = "次";
            //读取meeting表,按照时间为上一周
            DateTime startWeek = DateTime.Now.AddDays(1 - Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d")));

            startWeek = startWeek.AddDays(-7);
            DateTime endWeek = startWeek.AddDays(6);

            chartModel.YTitle = startWeek.ToString("yyyyMMdd") + "-" + endWeek.ToString("yyyyMMdd");

            OtaCrmModel db = new OtaCrmModel();
            var         ss = from i in db.CompanyMeeting
                             where i.MeetDate >= startWeek && i.MeetDate <= endWeek
                             group i by i.CreateUserName
                             into g
                             select new { count = g.Count(), userName = g.Key };
            AccountController ac = new AccountController();

            foreach (var item in ss)
            {
                chartModel.XList.Add(ac.GetRealName(item.userName));
                series.YSeriesList.Add(item.count);
            }
            chartModel.SeriesList.Add(series);

            DotNet.Highcharts.Highcharts chart = GetChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Exemple #6
0
 private void TRTB_TextChanged(object sender, TextChangedEventArgs e)
 {
     if (AnimCanvas != null)
     {
         AnimCanvas.Children.Clear();
         AnimCanvas.Children.Add(XAxis);
         AnimCanvas.Children.Add(YAxis);
     }
     YSeries.Clear();
     XSeries.Clear();
     YSpeedSeries.Clear();
     XSpeedSeries.Clear();
     Ellipsies.Clear();
     Polylines.Clear();
     YAnimations.Clear();
     XAnimations.Clear();
     Parameters.Clear();
     AddEllipse = true;
     colorIndex = 0;
     TB_TextChanged(sender, e);
 }
Exemple #7
0
        public PartialViewResult GetCompanyTicketRangeChart()
        {
            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ContainerId = "companyTicketRangeChart";
            chartModel.ChartType   = DotNet.Highcharts.Enums.ChartTypes.Pie;
            chartModel.Title       = "客户票量级别";
            chartModel.SeriesList  = new List <YSeries>();

            YSeries series = new YSeries();

            series.YName           = "数量";
            chartModel.ValueSuffix = "个";

            string level0 = "零";
            string level1 = "1_50";
            string level2 = "50_200";
            string level3 = "200_500";
            string level4 = "500_1000";
            string level5 = "1000以上";

            //读取公司的表,group by 销售名
            OtaCrmModel db        = new OtaCrmModel();
            DateTime    startDate = DateTime.Parse(DateTime.Today.ToString("yyyy-MM-01"));
            DateTime    endDate   = db.AgentGradeOperation.Max(p => p.statDate).Value;
            TimeSpan    ts        = endDate - startDate;
            int         days      = ts.Days;

            if (days == 0)
            {
                days = 1;
            }

            var q = from p in db.AgentGradeOperation
                    where p.statDate == endDate
                    group p by p.agentName
                    into g
                    select new { sum = g.Sum(i => i.totalTicketNum.Value), company = g.Key };
            //按照公司名,分组,然后求平均值,应该先算日期的天数
            int countLevel0 = 0;
            int countLevel1 = 0;
            int countLevel2 = 0;
            int countLevel3 = 0;
            int countLevel4 = 0;
            int countLevel5 = 0;

            foreach (var item in q)
            {
                int everageNum = item.sum / days;
                if (everageNum == 0)
                {
                    countLevel0++;
                }
                if (everageNum > 0 && everageNum < 50)
                {
                    countLevel1++;
                }
                if (everageNum >= 50 && everageNum < 200)
                {
                    countLevel2++;
                }
                if (everageNum >= 200 && everageNum < 500)
                {
                    countLevel3++;
                }
                if (everageNum >= 500 && everageNum < 1000)
                {
                    countLevel4++;
                }
                if (everageNum >= 1000)
                {
                    countLevel5++;
                }
            }
            List <object[]> pieDataList = new List <object[]>();

            object[] pieData0 = new object[] { level0, countLevel0 };
            if (countLevel0 > 0)
            {
                pieDataList.Add(pieData0);
            }
            object[] pieData1 = new object[] { level1, countLevel1 };
            if (countLevel1 > 0)
            {
                pieDataList.Add(pieData1);
            }
            object[] pieData2 = new object[] { level2, countLevel2 };
            if (countLevel2 > 0)
            {
                pieDataList.Add(pieData2);
            }
            object[] pieData3 = new object[] { level3, countLevel3 };
            if (countLevel3 > 0)
            {
                pieDataList.Add(pieData3);
            }
            object[] pieData4 = new object[] { level4, countLevel4 };
            if (countLevel4 > 0)
            {
                pieDataList.Add(pieData4);
            }
            object[] pieData5 = new object[] { level5, countLevel5 };
            if (countLevel5 > 0)
            {
                pieDataList.Add(pieData5);
            }

            chartModel.pieDataList = pieDataList;

            DotNet.Highcharts.Highcharts chart = GetPieChart(chartModel);
            return(PartialView("_PartialChartView", chart));
        }
Exemple #8
0
        public PartialViewResult GetCompanyTicketCountChart(string companyName)
        {
            //调用30天的数据
            DateTime    startDate = DateTime.Today.AddMonths(-1);
            OtaCrmModel db        = new OtaCrmModel();
            var         a         = from b in db.AgentGradeOperation
                                    where b.agentName == companyName && b.statDate >= startDate
                                    orderby b.statDate, b.agentDomain
            select b;

            SimpleChartModel chartModel = new SimpleChartModel();

            chartModel.ChartType   = DotNet.Highcharts.Enums.ChartTypes.Line;
            chartModel.Width       = 600;
            chartModel.ContainerId = "companyTicketChart";
            chartModel.Title       = "票量";

            chartModel.SeriesList = new List <YSeries>();

            //分开域名,
            Dictionary <string, int> agoTicketCountDict = new Dictionary <string, int>();
            List <string>            domainList         = new List <string>();

            foreach (AgentGradeOperation item in a)
            {
                if (!domainList.Contains(item.agentDomain))
                {
                    domainList.Add(item.agentDomain);
                }
                string key = item.agentDomain + item.statDate.Value.ToString("yyyyMMdd");
                if (!agoTicketCountDict.ContainsKey(key))
                {
                    agoTicketCountDict.Add(key, item.CurDateTicketCount.Value);
                }
            }

            TimeSpan ts = DateTime.Today - startDate;

            for (int i = 0; i < ts.Days; i++)
            {
                DateTime curDate = startDate.AddDays(i);
                string   xValue  = curDate.ToString("MMdd");
                chartModel.XList.Add(xValue);
            }
            //每个域名按天统计数据,加入series
            foreach (string agentDomain in domainList)
            {
                YSeries series = new YSeries();
                series.YSeriesList = new List <object>();
                series.YName       = agentDomain;
                for (int i = 0; i < ts.Days; i++)
                {
                    DateTime curDate     = startDate.AddDays(i);
                    string   xValue      = curDate.ToString("yyyyMMdd");
                    string   key         = agentDomain + xValue;
                    int      ticketCount = 0;
                    if (agoTicketCountDict.ContainsKey(key))
                    {
                        ticketCount = agoTicketCountDict[key];
                    }
                    series.YSeriesList.Add(ticketCount);
                }
                chartModel.SeriesList.Add(series);
            }

            chartModel.ValueSuffix = "张";

            DotNet.Highcharts.Highcharts chart = GetChart(chartModel);

            return(PartialView("_PartialChartView", chart));
        }