在做系统的时候,报表页面是逃不过去的坎,经过了几轮迭代以后,现在有了一个相对稳定的解决方案,分三个步骤:
初始化 Base Column
在做报表的时候,即使每一个查询区间内没有任何的数据,也需要对这条报表进行显示,比如说查询1月份每天的销售额,假设其中有5天的销售额为零,依然需要多这5天的数据进行展示,所以需要先初始化好每一天的日期,作为 Table 在展示时候的 Base Column
如果用户选择了 Base Column 作为查询条件,那么就需要对 Base Column 的数据也进行一次查询过滤
方法:initBaseColumn
处理分页
考虑到分页的情况,只需要初始该分页内的数据作为 Base Column 便可以
方法:dealPage(实际上是使用处理分页类似的方法处理一个数组)
绑定数据
在有了 Base Column 之后,就可以结合 Base Column 和查询条件进行数据查询和绑定了,用户可能会在大量的查询控制条件中选择并查询部分的相关数据,需要对每一个查询条件对每笔数据进行相应的处理,否则就会产生错误的数据
在绑定数据的时候,每一列数据的获取,都是以 Base Column 为参数的,使用 mysql 的 in() 方法来进行过去筛查和汇总,要注意查询效率的问题,因为需要把所有的慢查询当成bug来处理
方法:bindData
其他
后面会有大量的数据报表处理需求,等在实际过程中再摸索一段时间以后,回头再来补充这篇学习笔记
网友评论