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)); }
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)); }
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(); }
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; } }
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)); }
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); }
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)); }
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)); }