表格数据统计与分析

  1. 在public的方法开始时接收从页面传过来的参数(public……(…));
  2. New 一个实体类,把你要查询的数据的字段全部放入到实体类里面,方便查询。
  3. 使用占位符(string.Format())把上面的参数的值赋给占位符。—stringstrSearch=
    string.Format(“AcademeID={0}&GradeID={1}&ClassID={2}”,AcademeID,GradeID, ClassID);
  4. 然后就是对session里面的数据进行一系列的判断,如果符合条件就session里面的数据赋值给上面New 出来的实体类, 不符合就下面查询的代码。因为session中的数据是在下面创建的,根据代码执行的顺序这个时候session里面的数据是空的,所以第一次是不符合条件的,只有给session赋值了才能去判断并且执行符合条件的里面的代码。
  5. 然后就开始查询数据,第一个数据的查询主要是进行数据的分组的依据和排序的方式,其中UserID的是分组的关键字的值,也是分组的主要依据。
  6. 第二个数据的查询就是查询出所需的数据,这里是要根据上面New出来的实体类的字段进行查询,注意实体类里面的字段属于哪张表的,就要在下面的查询中链接哪一张表,并且查询出该表的这个字段的值赋给实体类里面的字段的值,例如:StudentNumber = tbStudent.StudentNumber;Class = tbClass.ClassName;
    其中的orderby()descending;是根据里面的值进行倒序的排序方式。
    表格数据统计与分析
  7. 然后判断上面传过来的参数是否大于0,符合条件之后就是一些条件的筛选,筛选的条件就是上面传过来的参数。if (AcademeID > 0){listResult = listResult.Where(A => A.AcademeID == AcademeID).ToList();}
    if (GradeID > 0){
    listResult = listResult.Where(G => G.GradeID == GradeID).ToList();
    }
    if (ClassID > 0{
    listResult = listResult.Where(C => C.ClassID == ClassID).ToList();
    }
    8.把数据保存到session中去,注意这里用保存的是两条数据,一条是占位符的数据,一条是实体类listResult查询出来的数据。-- Session[“strSearch”] = strSearch;
    Session[“listAchievementHistory”] = listResult;
    9.用三目运算来判断查询出来的数据条数是否等于0,等于0上面上面没有查询出数据,也就说明上面的查询出现了问题,如果不等于0则说明已经查询出来数据了。
    10.New 一个实体类,这里的New出来的是一个实体类的对象,而上面New出来的是实体类的对象列表。两者的区别在于有没有在前面加上List<>,如果有就是对象列表,没有就是对象。其中实体类(AchievementStatisticsVo)里面的字段是下面各个需要返回的值。
    11.给实体类里面的对字段值赋值:
    listStatistics.TotalName = totalRow :考生数量 = 上面数据的总条数;
    float sumAvergeSore = (float)listResult.Sum(A => A.Achievement) :把所有的考生的成绩加起来,因为成绩可能会有小数,所以这里用的浮点型的数据类型(float);
    listStatistics.AvergeSore = sumAvergeSore / totalRow :平均成绩 = 总成绩 /总人数;
    listStatistics.PassName = listResult.Count(P => P.Achievement >= 60) :查询出所有考生中成绩大于大于60分的人数。
    listStatistics.PassNumberP = (float)listStatistics.PassName / totalRow * 100 :合格人数的比例 = 合格人数 / 总人数 *100 ;注意这里的百分比的符号是在页面部分添加的。
    listStatistics.Score100 =listResult.Count(S => S.Achievement == 100):成绩=100分的人数
    listStatistics.Score100P =(float) listStatistics.Score100 / totalRow * 100 :比例
    表格数据统计与分析
    12.把上面赋值之后的实体类返回回页面,再接下来就是页面的代码部分:
    1.方法里面的参数值是多条件查询调用这个方法时传过来的参数。
    2.post请求里面的第一个参数是"SelectStatisticsData"控制器的方法名称,第二个参数是传到控制器的参数,第三个参数值是一个回调函数,即是从控制器返回回来的数据,回调函数里面的参数Data相对于控制器返回回来的listStatistics;
    3.JsonData 存放的是表格里面的内容:
    列名:考生数量 -总人数:(data.TotalName)-参数详情:""
    列名:平均成绩 -平均成绩:(data.AvergeSore)-参数详情:""
    列名:合格率 -比例:(data.PassNumberP.toFixed(2)+ “%”)(toFixed(2)取小数 点后两位) -参数详情:“人数” + data.PassName;
    列名:不合格率 -比例:(data.PassFailP.toFixed(2)+ “%”)
    -参数详情:“人数” + data.PassFail;
    列名:100分 -比例:(data.Score100P.toFixed(2) + “%”)
    -参数详情:“人数” + data.Score100;
    …………………………………………
    13.在表格重置的时候,把表格的内容更换为JsonData;
    — tabStatistics.reload({data:JsonData;});

表格数据统计与分析
14.DrawChart是调用一个绘制图表的方法,绘制图表又用到了一个echarts的插件;
表格数据统计与分析