基于echarts,java,oracle数据库的自动化配置报表项目构建系列一:

概述

原文链接: 因为之前公司对内的报表需求太多,开发太累,便自己写了一个自动化构建报表的东西,后续还可以更加完善。现在把我的思路写下来。最近可能会完成更高级的配置化报表,完成后也会记录下来。 配置化增加报表,目前只支持一表一图的展示,支持导出报表,不需要写页面,只需要用以下的方法来配置即可。如果想展示丰富的页面,必须手写。 此文档为介绍动态添加报表工具如何使用。首先我准备了一些比较简单的数据来供测试用,下面的介绍都使用这个表做测试,如下图

新增条件

名词介绍

新增输入框类型条件

输入框有两种类型可供选择

正常的输入框,如下图中将选项选择为“表单(input)”,条件类型选择为“文本”带日期控件的输入框,如下图中将选项选择为“表单(input)”,条件类型选择为“日期”,点击新增按钮后,可以新增一个输入框类型条件。

新增固定单选列表类型条件

将选项选择为“单选(select)”,在值中输入想展示的数据,以逗号为分隔符,此处我输入1,2,3然后点击增加,可以增加一个单选列表的条件

新增动态单选列表类型条件

和 新增固定单选列表类型条件 不同之处就是,此处可以根据用户输入的sql动态的展示单选条件 将选项选择为“单选(select)”,在值中输入select to_char(rp_date,’yyyy-mm-dd’) rp_date from test然后点击增加,可以增加一个单选列表的条件

新增固定多选框类型条件

将选项选择为“多选(checkbox)”,在值中输入想展示的数据,以逗号为分隔符,此处我输入1,2,3然后点击增加,可以增加一个多选框的条件

新增动态多选框类型条件

和 新增固定多选框类型条件 不同之处就是,此处可以根据用户输入的sql动态的展示多选条件 将选项选择为“多选(checkbox)”,在值中输入select to_char(rp_date,’yyyy-mm-dd’) rp_date from test然后点击增加,可以增加一个多选框的条件,注意此处尽量不要展示太多的多选框,不美观

新增表格

名词解释:

上面介绍过,条件中有个属性为“所属SQL条件”,该属性主要是在创建表格的时候和sql中的条件一 一对应,如果条件中写的为{1},sql中请写:{1}。此时我输入的sql为select to_char(rp_date,’yyyy-mm-dd’) rp_date, amt, cnt from test where rp_date > to_date(:{1},’yyyy-mm-dd’) and rp_date < to_date(:{2},’yyyy-mm-dd’) order by 1 desc,然后我新增了两个输入框为日期类型的条件“开始时间”和“结束时间”,分别对应sql的条件{1}和{2},全部创建完成后,点击查看可出来结果。

新增图形

名词解释:

图表Option:echarts中的option,此处不用填数据,主要构造图形的标题、横坐标、纵坐标属性、legend、展示的数据属于哪些纵坐标等等属性。dataColumn与legend对应关系:上面表格的数据库列名和要展示的legend的对应关系,格式为“rp_date:日期,amt:金额,cnt:笔数”,第一个请放时间列,会用做横坐标。

如果不想要保存图形,此步骤可以忽略,”是否保存图形“选择否即可。图形框架使用的是echarts,想使用图形功能,请先了解echarts图形展示框架,此处可以什么都不填,点击“刷新图标”,默认展示规则为:从表格中第一列获取的数据为横坐标,后面按顺序展现为柱状图。最好不要使用默认的刷新图标,因为表格中的数据不可能每列都是要用来展示的,而且有的列会有中文。

保存报表

保存报表是有顺序的,在上面保存表格成功后,请记得要把对应的sql保存,在没有保存sql的情况下,保存报表按钮是不允许点击的。原因:我设计的一张报表可以保存多个时间维度,所以一张报表可能对应多个sql,所以要先保存好sql,再将sqlid组装好一起存起来。

资源管理配置

此处保存报表成功后,只是将报表的一些元素存了起来,页面上并没有对应。需要去权限管理系统里的资源管理页面配置一个报表页面,然后分配权限给对应用户即可。 资源配置说明:配置的url格式为tpl/tool/smartReportShow.jsp?reportFlag=报表标志|time=时间维度,报表标志即为你在新增报表页面填写的报表标志,时间维度为按小时:h,按天:d,按周:w,按月:m。加上时间维度主要是因为区分同一张报表的多个时间维度的url,请严格按照格式配置。

此处介绍下报表资源管理的规则,可以看到报表系统左上角是有个模块的选择,选择完模块后左边才展示对应模块的报表子模块,然后资源管理里会有个时报、日报、周报、月报等菜单,这部分主要是区分该报表属于哪个时间维度,,在点击报表中间的时报、日报等按钮时会自动切换为对应的菜单下的报表。如果不放在日报、周报等的菜单下的话,点击报表中间的时报、日报等按钮时该页面会同时存在于多个时间维度下。

查看报表是否成功

到此大功告成,去你刚才配置的资源页面查看是否成功

手动写报表你曾经说,最大的愿望,

基于echarts,java,oracle数据库的自动化配置报表项目构建系列一:

相关文章:

你感兴趣的文章:

标签云: