protected override List <List <string> > ObjectParseListFillDetailTable <T>(List <T> list, bool DetailEqChart = true) { var tempList = new List <List <string> >(); if (list is List <D_StatDownCountsBySoft_SUM> ) { var temp = list as List <D_StatDownCountsBySoft_SUM>; var list2 = temp.OrderByDescending(p => p.StatDate).ToList(); foreach (D_StatDownCountsBySoft_SUM obj in list2) { List <string> values = new List <string>(); values.Add(obj.StatDate.ToString("yyyy-MM-dd")); values.Add(UtilityHelp.FormatNum <int>(obj.DownCount)); values.Add(UtilityHelp.FormatNum <int>(obj.UserCount)); values.Add(UtilityHelp.GetDecimalDataString <double>(obj.DownCount * 1.0 / (obj.UserCount == 0 ? 1 : obj.UserCount))); values.Add(UtilityHelp.FormatNum <int>(obj.NewUserDownCount)); values.Add(UtilityHelp.FormatNum <int>(obj.NewUserCount)); values.Add(UtilityHelp.GetDecimalDataString(obj.NewUserDownCount * 1.0 / (obj.NewUserCount == 0 ? 1 : obj.NewUserCount))); int user = obj.UserCount - obj.NewUserCount; values.Add(UtilityHelp.FormatNum <int>(obj.DownCount - obj.NewUserDownCount)); values.Add(UtilityHelp.FormatNum <int>(user)); values.Add( UtilityHelp.GetDecimalDataString <double>((obj.DownCount - obj.NewUserDownCount) * 1.0 / (user == 0 ? 1 : user))); values.Add(UtilityHelp.GetDecimalDataString <double>(obj.DownCountExceptAllUpdating * 1.0 / (obj.UserCountExceptAllUpdating == 0 ? 1 : obj.UserCountExceptAllUpdating))); values.Add(UtilityHelp.GetDecimalDataString <double>((obj.DownCount - obj.DownCountExceptAllUpdating) * 1.0 / obj.UserCountUpdateing)); tempList.Add(values); } } return(tempList); }
private string GetYValue(D_StatDownCountsBySoft_SUM item, int showtype) { string value = item.DownCount.ToString(); switch (showtype) { case 2: value = item.UserCount.ToString(); break; case 3: value = UtilityHelp.GetDecimalDataString(item.DownCount * 1.0 / (item.UserCount == 0?1:item.UserCount)); break; } return(value); }
protected override List <List <string> > ObjectParseListFillDetailTable <T>(List <T> list, bool DetailEqChart = true) { var tempList = new List <List <string> >(); if (list is List <D_StatDownCountsBySoft_SUM> ) { var temp = list as List <D_StatDownCountsBySoft_SUM>; var list2 = temp.OrderByDescending(p => p.StatDate).ToList(); foreach (D_StatDownCountsBySoft_SUM obj in list2) { List <string> values = new List <string>(); values.Add(obj.StatDate.ToString("yyyy-MM-dd")); values.Add(UtilityHelp.GetDecimalDataString(obj.NewUserDownCount * 1.0 / (obj.NewUserCount == 0 ? 1 : obj.NewUserCount))); int user = obj.UserCount - obj.NewUserCount; values.Add( UtilityHelp.GetDecimalDataString <double>((obj.DownCount - obj.NewUserDownCount) * 1.0 / (user == 0 ? 1 : user))); values.Add(UtilityHelp.GetDecimalDataString <double>(obj.DownCount * 1.0 / (obj.UserCount == 0 ? 1 : obj.UserCount))); //去除更新人均分发 int userupdateex = obj.UserCountExceptAllUpdating - obj.NewUserCountExceptAllUpdating; values.Add(UtilityHelp.GetDecimalDataString <double>(obj.NewUserDownCountExceptAllUpdating * 1.0 / (obj.NewUserCountExceptAllUpdating == 0 ? 1 : obj.NewUserCountExceptAllUpdating))); values.Add(UtilityHelp.GetDecimalDataString <double>((obj.DownCountExceptAllUpdating - obj.NewUserDownCountExceptAllUpdating) * 1.0 / (userupdateex == 0 ? 1 : userupdateex))); values.Add(UtilityHelp.GetDecimalDataString <double>(obj.DownCountExceptAllUpdating * 1.0 / (obj.UserCountExceptAllUpdating == 0 ? 1 : obj.UserCountExceptAllUpdating))); values.Add(UtilityHelp.GetDecimalDataString <double>(obj.DownCountBySlienceUpdating * 1.0 / obj.UserCountSilenceUpdateing)); values.Add(UtilityHelp.GetDecimalDataString <double>((obj.DownCount - obj.DownCountExceptAllUpdating) * 1.0 / obj.UserCountUpdateing)); tempList.Add(values); } if (list2.Count != 0) { List <string> meavValues = new List <string>(); meavValues.Add("均值"); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.NewUserDownCount * 1.0 / (obj.NewUserCount == 0 ? 1 : obj.NewUserCount))).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.DownCount - obj.NewUserDownCount) * 1.0 / (obj.UserCount - obj.NewUserCount == 0 ? 1 : obj.UserCount - obj.NewUserCount)).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.DownCount * 1.0 / (obj.UserCount == 0 ? 1 : obj.UserCount))).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.NewUserDownCountExceptAllUpdating * 1.0 / (obj.NewUserCountExceptAllUpdating == 0 ? 1 : obj.NewUserCountExceptAllUpdating))).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => ((obj.DownCountExceptAllUpdating - obj.NewUserDownCountExceptAllUpdating) * 1.0 / (obj.UserCountExceptAllUpdating - obj.NewUserCountExceptAllUpdating == 0 ? 1 : obj.UserCountExceptAllUpdating - obj.NewUserCountExceptAllUpdating))).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.DownCountExceptAllUpdating * 1.0 / (obj.UserCountExceptAllUpdating == 0 ? 1 : obj.UserCountExceptAllUpdating))).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.DownCountBySlienceUpdating * 1.0 / obj.UserCountSilenceUpdateing)).Average())); meavValues.Add(UtilityHelp.GetDecimalDataString <double>(list2.Select(obj => (obj.DownCount - obj.DownCountExceptAllUpdating) * 1.0 / obj.UserCountUpdateing).Average())); tempList.Add(meavValues); } } return(tempList); }