开发工具与关键技术:VS + MVC
作者:李光辉
撰写时间:2019.6.8
今天要介绍的是layui表格数据的统计与分析,如下图所示,根据这边的表格数据通过计算得到右边的数据表格。首先我们需要对表格数据进行查询以及筛选,根据获取到的用户信息和条件,计算出我们所需要的数据类型。
我们先使用group by分组按UserID用户ID查询出用户最高的成绩信息,key属性:返回进行分组的关键字段的值,使用labmada表达式获取最高成绩需要对表格数据进行倒序的排序,然后获取第一条便是最高成绩。同时获取它的考试次数和合格类型。
注:FirstOrDefault():返回序列中的第一个元素,如果序列中不包含任何元素,则返回默认值
表示对tbAchievement按UserID字段进行分组,其结果命名为tbStudent,一旦重新命名,tbAchievement的作用域就结束了,所以,最后select时,只能select tbStudent。
然后就是查询出左边安全教育测试成绩的表格数据,就是一个连表查询,然后就是下拉框绑定,表格数据的多条件查询、数据筛选、表格重载就不说了。
然后创建一个实体类,用来存放右边表格的字段信息,把你要查询的数据的字段全部放入到实体类里面,方便查询。然后根据左边查询出来的数据计算出结果存放到右边表格。而右边表格的数据是不能直接从数据库查询出来的,数据库里不存在这些表格。
然后使用三目运算符:对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
首先使用三目运算计算出总人数,也就是左边表格数据的条数,然后再计算成绩总和,也就是左边查询出来最优成绩相加,除以总人数得到平均成绩。然后就是计算各分段成绩的人数以及合格比例。
注:float是浮点型的数据类型
在视图那边表格数据重载的时候,调用成绩统计与分析的方法,同时需要把id的值传进来。然后写一个post请求,把控制器的数据统计传过来,通过data接收。利用直接赋值,将数据拼接,然后表格数据重载 tabStatistics.reload({ data: jsonData});