基于echarts,java的自动化配置报表项目构建

  • 概述
  • 新增条件
    • 新增输入框类型条件
    • 新增固定单选列表类型条件
    • 新增动态单选列表类型条件
    • 新增固定多选框类型条件
    • 新增动态多选框类型条件
  • 新增表格
  • 新增图形
  • 保存报表
  • 资源管理配置
  • 查看报表是否成功
  • 手动写报表

概述

原文链接http://blog.csdn.net/u011506468/article/details/47682417

因为之前公司对内的报表需求太多,开发太累,便自己写了一个自动化构建报表的东西,后续还可以更加完善。现在把我的思路写下来。最近可能会完成更高级的配置化报表,完成后也会记录下来。

配置化增加报表,目前只支持一表一图的展示,支持导出报表,不需要写页面,只需要用以下的方法来配置即可。如果想展示丰富的页面,必须手写。

此文档为介绍动态添加报表工具如何使用。首先我准备了一些比较简单的数据来供测试用,下面的介绍都使用这个表做测试,如下图

新增条件

名词介绍

  • 所属SQL条件:sql中要插入条件的条件名匹配符
  • 条件类型:多媒体作用,此处只有一个作用,选择创建输入框的时候增加日期特效
  • 条件名称:展示在界面上的条件名词
  • 选项:条件类型

新增输入框类型条件

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

  • 正常的输入框,如下图中将选项选择为“表单(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然后点击增加,可以增加一个多选框的条件,注意此处尽量不要展示太多的多选框,不美观

新增表格

名词解释:

  • 报表标志:保存报表的时候和资源管理中配置的页面url对应
  • 标题:报表标题
  • 中文列名:sql中查出来的列名的中文解释
  • 数据库列名:sql中查出来的别名,必须要给查出来的列取别名
  • sql名:此处填写与标题相同即可,方便在rp_report_sql的sql配置表中快速找到该sql属于哪个报表
  • sql名旁的单选框:标志此sql属于该报表的哪一个时间维度,可以点击多次保存sql来保存至不同的时间维度,在查看报表的时候点击报表中间的按小时、按日、按周等时会动态转换数据,保存sql时要细心

上面介绍过,条件中有个属性为“所属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,请严格按照格式配置

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

查看报表是否成功

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

手动写报表

手动写报表主要用于展示丰富的界面时使用。跟上面介绍的完全不同,需要手动在rp_report_sql中加入一条sql(记得要把序列执行加1,否则下次新增会报错)。手动写报表的条件我使用的是之前报表老框架的条件配置,跟自动配置这个不同,比如想得到上面的结果,需要的sql为 select rp_date,amt,cnt from test where 1=1 {whereclause} order by 1 desc,此时在页面需要配置的条件封装为

filters = {groupOp:"and",rules:[
{field:"rp_date",op:"ge",data:beginTime,funcBefore:"to_date(",funcAfter:",‘yyyymmdd‘)"},
{field:"rp_date",op:"le",data:endTime,funcBefore:"to_date(",funcAfter:",‘yyyymmdd‘)"}]};

资源管理的url就为此jsp的路径,具体可以参考下iboxpay-report-main\iboxpay-report-webapp\src\main\webapp\tpl\merchant_tran_num_d_rp.jsp。条件配置方法比较麻烦,可以参考iboxpay-report-main\iboxpay-report-core\src\main\java\com\iboxpay\omp\report\queryrule\QueryFilter.java 中的main函数。因为是之前的老框架,我并没有去修改这种方式。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 01:12:11

基于echarts,java的自动化配置报表项目构建的相关文章

项目构建之maven篇:3.m2eclipse使用

m2eclipse的安装 略 设置maven目录 设置用户个性化的maven配置 导入maven工程 源代码下载 运行命令 运行订制命令: mvn clean install或 mvn clean compile 可以自己订制 新建maven工程 新建一个Hello.java并运行 install命令 项目构建之maven篇:3.m2eclipse使用,布布扣,bubuko.com

基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现

Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为maven加上了代理,如果你的服务器可以直接访问外网,则可以去掉代理..net 项目可参考 <在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境> 1. 安装 maven wget -e "http_proxy=http://web-pr

【Spring】IOC之基于Java类的配置Bean

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 基于Java配置选项,可以编写大多数的Spring不用配置XML,但有几个基于Java的注释的帮助下解释.从Spring3.0开始支持使用java代码来代替XML来配置Spring,基于Java配置Spring依靠Spring的JavaConfig项目提供的很多优点.通过使用@Configuration, @Bean ,@Importand,@DependsOnannotations来实现J

一起学JAVA之《spring boot》03 - 开始spring boot基本配置及项目结构(转)

<div class="markdown_views"> <h3 id="一导航"><a name="t0"></a>一.导航</h3> 本节内容简介: 1. spring boot 配置文件,使用@SpringBootApplication注解 2. spring boot 修改Java版本 和项目编码 3. 一个标准的spring boot 代码结构 4. 查看当前项目自动配置了那些

Java EE 7基于数据库的Apache Shiro配置

上一篇文章我介绍了在Java EE环境中配置Shiro的基本方法, 但是在真正的开发过程中我们基本上不 会使用基于配置文件的用户角色配置, 大多数情况下我们会将用户, 角色和权限存储在数据库中, 然后我们告诉Shiro去数据库中取数据, 这样的配置更灵活且功能更强大. 这样使Shiro能读数据库(或LDAP, 文件系统等)的组件叫做Realm, 可以把Realm看作是一个安全专用的DAO, 下面我详细介绍一下如何配置Realm: (所用到的技术和上一篇文章中的类似, 此外, 我们用到了JPA,

Java项目(2)——Java开发环境配置|JDK与JRE

C盘扩容--修复Oracle--修改注册表--Windows无法启动--重做系统--重新配置Java开发环境,外加操作考试系统,这三天过的犹如做梦一般.自己写个Java开发环境配置的小总结,做任何事需要的就是一种思路,要懂得来龙去脉,不然自己会死得很惨. 基本步骤就是一系列安装: Jdk Oracle 服务器客户端 Plsql MyEclipse 配置MyEclipse的jdk和tomcat 设置环境变量(jdk和Oracle) plsql连接到Oracle 在配置过程中发现有的教程涉及Jre的

[译]17-spring基于java代码的配置元数据

spring还支持基于java代码的配置元数据.不过这种方式不太常用,但是还有一些人使用.所以还是很有必要介绍一下. spring基于java代码的配置元数据,可以通过@Configuration注解把一个声明为配置类;通过@Bean注解把一个新 创建的类交由spring容器来管理.在这种配置方式下,我们可以手动装配bean,也可以自动装配bean.我感觉在这种 方式下使用手动装配非常不爽,尤其是有多个配置类的时候. 下面看个例子: 1.新建包com.tutorialspoint.javacod

Spring Ioc 基于Java的容器配置

一.基于Java的容器配置 @Configuration & @Bean 注解: 在Spring的新的Java-Configuration的中间产物是基于类的@Configuration的注解和基于方法的@Bean注解.         @Bean注解是用来指明方法的实例化,配置和初始化一个对象是通过Spring的IoC容器来管理的.对于那些熟悉使用以XML配置Spring的<beans /> 标签,@Bean注解和<bean />标签是起相同作用的.你能和Spring的@