一、报表导出

通过设计 Excel 模板,对一组报表数据进行导出,抽象出各类公共方法,快捷调用。

1.1 概述

即使是粘贴、复制,也要按照最优雅的方式进行。

那么我们先头脑风暴一下,分析导出报表需要做什么?

1.1.1 前端

用来显示的界面,我们需要一个展示查询数据的表格,一个用来输入查询条件的表单,一个用来导出查询内容的 Excel 。

进一步的,查询时有着 各类验证 、查询的表单内容有着 各类样式 (如输入框、下拉框等)。除此之外,为了方便制作成模板,方便在前后端传值,表单的各列 idname 最好是有规律的。为了在后期在 JS 中处理数据,方便调用,将表单值 序列化为对象

然后是列表显示,可能的便是二级表单或者动态表头,除此之外的功能借用 Layui 的数据表格显示;最后是导出,有查询条件存在和无查询条件存在时 导出内容的差异 等。

总结一下前端,根据功能按照三个方向进行: 表单表格导出

1.1.2 后端

后端从功能上概括则是接收前端传过来的查询数据,然后进行查询并返回结果给前端。按照经典的模型来分析:Controller Dao Mapper ,因为逻辑清晰,我们不需要中间多业务层。进一步分析,模板化方法的同时,我们还需要两个 pojo 对象,一个用来接收查询条件,一个用来接收查询结果(parameterTyperesultMap)。

接着是导出功能,根据逻辑,有查询条件时导出所有经过查询条件筛选后的结果,没有查询条件时导出所有结果,导出时不同表格有不同的样式、表头、标题,这里做成模板文件,在导出时根据模板文件填充数据。

总结一下后端:查询导出

1.1.3 前后端交互

同样,接着是前后端交互部分,以 Ajax 为基本,POST 或 Get 等方式完成查询、导出的流程。

1.2 流程

基于以上的分析,我们制作出如下所示的思维导图:

流程

二、下期预告

在完成主体的内容分析之后,下期我们将从前端开始,根据要求一个个搭建我们所需要的功能。


 评论