javaEcharts报表管理器是基于Echarts开发,通过配置数据源映射相应的Echarts报表
JavaEcharts报表管理器主要特点:
-
支持一维报表、二维报表
-
支持报表的图文并茂
-
支持报表导出Excel
-
支持报表汇总、明细、报表明细
-
架构图如下所示:
表设计如下所示:
数据源表:主要配置数据取数源头、明细、表头等信息
-- Create table
create table T_REPORT_STATIS_SOURCE
(
source_id NUMBER,
header_sql_count VARCHAR2(3000),
header_desc VARCHAR2(512),
header_type VARCHAR2(512),
header_sql_list VARCHAR2(3000),
header_key VARCHAR2(512),
header_name VARCHAR2(512),
source_name VARCHAR2(512),
source_pid NUMBER,
dimension_field VARCHAR2(100),
status NUMBER default 0,
source_mode NUMBER,
isdimension NUMBER default 0,
dimension_field_type VARCHAR2(50),
date_format VARCHAR2(50)
);
-- Add comments to the table
comment on table T_REPORT_STATIS_SOURCE
is '报表数据源表(统计类报表)';
-- Add comments to the columns
comment on column T_REPORT_STATIS_SOURCE.source_id
is '数据源ID(取数ID)';
comment on column T_REPORT_STATIS_SOURCE.header_sql_count
is 'SQL取数汇总';
comment on column T_REPORT_STATIS_SOURCE.header_desc
is '取数描述';
comment on column T_REPORT_STATIS_SOURCE.header_type
is '取数类型 1.账号授权 2认证访问 3.业务操作 4.系统操作 5.敏感数据 6.金库 7合作伙伴';
comment on column T_REPORT_STATIS_SOURCE.header_sql_list
is 'SQL取数明细';
comment on column T_REPORT_STATIS_SOURCE.header_key
is '表头KEY 字段名称与REPORT_HEADER_SQL_COUNT字段对应 多个以,分割';
comment on column T_REPORT_STATIS_SOURCE.header_name
is '表头名称 表头名称与表头KEY对象 多个以,分割';
comment on column T_REPORT_STATIS_SOURCE.source_name
is '数据源名称';
comment on column T_REPORT_STATIS_SOURCE.source_pid
is '数据源PID (父ID)';
comment on column T_REPORT_STATIS_SOURCE.dimension_field
is '维度依据,即 作为维度数据源的结果集中,以哪个字段作为其它数据源的查询条件';
comment on column T_REPORT_STATIS_SOURCE.status
is '状态,0 -- 正常 ,9 -- 删除';
comment on column T_REPORT_STATIS_SOURCE.source_mode
is '数据源模式 , 1 -- 单源模式 , 2 -- 多源模式';
comment on column T_REPORT_STATIS_SOURCE.isdimension
is '是否作为维度的标识,0--不是,1--是';
comment on column T_REPORT_STATIS_SOURCE.dimension_field_type
is '维度依据字段的类型,integer -- int数字类型 ,long -- 长整形类型 ,string -- 字符串类型 ,boolean -- 布尔型';
comment on column T_REPORT_STATIS_SOURCE.date_format
is '日期格式,主要有:yyyy-MM-dd , yyyy/MM/dd , yyyyMMdd ,时间格式默认是 HH:mm:ss';
报表模板表:主要是组装表头、报表的维度、作业调度等等信息。
-- Create table
create table T_REPORT_TEMPLATE
(
ID NUMBER default 0,
TEMPLATE_NAME VARCHAR2(50),
TEMPLATE_TYPE VARCHAR2(50) default 0,
CREATION_TIME VARCHAR2(64),
CREATER VARCHAR2(50),
CREATER_ID NUMBER default 0,
NATURALPERSON VARCHAR2(50),
DESCRITION VARCHAR2(300),
MODIFY_TIME VARCHAR2(64),
MODIFY_PERSON VARCHAR2(50),
MODIFY_ID NUMBER default 0,
DATASOURCE VARCHAR2(50),
REPORTPERIOD VARCHAR2(10),
SELSHOWFIELD VARCHAR2(500),
SELGROUPFIELD VARCHAR2(500),
ISSHOW VARCHAR2(10),
SELDETAILFIELD VARCHAR2(500),
BYTIME VARCHAR2(50),
TIMEFORM VARCHAR2(50),
PRODUCEFORM VARCHAR2(50),
STRATEGY VARCHAR2(50),
READOBJ VARCHAR2(50),
AUTHTIEMPERIOD VARCHAR2(10),
PRODPATTERN VARCHAR2(50),
ISALARM VARCHAR2(20),
POSITION VARCHAR2(50),
ISWATERMARK VARCHAR2(10),
SELSHOWFIELDCN VARCHAR2(500),
SELGROUPFIELDCN VARCHAR2(500),
SELDETAILFIELDCN VARCHAR2(500),
REPORTPERIODCN VARCHAR2(10),
GROUPSHOW VARCHAR2(50),
GROUPSHOWCN VARCHAR2(50),
REPORTSTATUS NUMBER default 0,
SAVEWHITHER NUMBER default 1,
CONTENT_TYPE NUMBER,
SOURCE_MODE NUMBER,
DIMENSION_MODE NUMBER
)
tablespace SMC_4A
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Add comments to the table
comment on table T_REPORT_TEMPLATE
is '报表模板表';
-- Add comments to the columns
comment on column T_REPORT_TEMPLATE.ID
is '模板编号';
comment on column T_REPORT_TEMPLATE.TEMPLATE_NAME
is '模板名称';
comment on column T_REPORT_TEMPLATE.TEMPLATE_TYPE
is '模板类型:统计明细、策略分发';
comment on column T_REPORT_TEMPLATE.CREATION_TIME
is '创建时间';
comment on column T_REPORT_TEMPLATE.CREATER
is '创建人';
comment on column T_REPORT_TEMPLATE.CREATER_ID
is '创建人编号';
comment on column T_REPORT_TEMPLATE.NATURALPERSON
is '自然人名称';
comment on column T_REPORT_TEMPLATE.DESCRITION
is '描述信息';
comment on column T_REPORT_TEMPLATE.MODIFY_TIME
is '修改时间';
comment on column T_REPORT_TEMPLATE.MODIFY_PERSON
is '修改人';
comment on column T_REPORT_TEMPLATE.MODIFY_ID
is '修改人编号';
comment on column T_REPORT_TEMPLATE.DATASOURCE
is '数据源';
comment on column T_REPORT_TEMPLATE.REPORTPERIOD
is '报表周期';
comment on column T_REPORT_TEMPLATE.SELSHOWFIELD
is '已选显示字段';
comment on column T_REPORT_TEMPLATE.SELGROUPFIELD
is '已选分组条件字段';
comment on column T_REPORT_TEMPLATE.ISSHOW
is '是否显示明细';
comment on column T_REPORT_TEMPLATE.SELDETAILFIELD
is '已选显示明细字段';
comment on column T_REPORT_TEMPLATE.BYTIME
is '时间条件控制字段';
comment on column T_REPORT_TEMPLATE.TIMEFORM
is '时间格式';
comment on column T_REPORT_TEMPLATE.PRODUCEFORM
is '生成报表格式';
comment on column T_REPORT_TEMPLATE.STRATEGY
is '策略';
comment on column T_REPORT_TEMPLATE.READOBJ
is '阅读对象';
comment on column T_REPORT_TEMPLATE.AUTHTIEMPERIOD
is '审计时间周期';
comment on column T_REPORT_TEMPLATE.PRODPATTERN
is '生成时间模式:forthwith立即,timing定时执行';
comment on column T_REPORT_TEMPLATE.ISALARM
is '是否包含告警';
comment on column T_REPORT_TEMPLATE.POSITION
is '产生位置';
comment on column T_REPORT_TEMPLATE.ISWATERMARK
is '是否水印';
comment on column T_REPORT_TEMPLATE.SELSHOWFIELDCN
is '已选显示字段中文';
comment on column T_REPORT_TEMPLATE.SELGROUPFIELDCN
is '已选分组条件字段中文';
comment on column T_REPORT_TEMPLATE.SELDETAILFIELDCN
is '已选显示明细字段中文';
comment on column T_REPORT_TEMPLATE.REPORTPERIODCN
is '报表周期中文';
comment on column T_REPORT_TEMPLATE.GROUPSHOW
is '分组显示字段:例如 从帐号数量';
comment on column T_REPORT_TEMPLATE.GROUPSHOWCN
is '分组显示字段中文';
comment on column T_REPORT_TEMPLATE.REPORTSTATUS
is '导出标示 0:未导出 1:已导出';
comment on column T_REPORT_TEMPLATE.SAVEWHITHER
is '保存目的地,将生成报表内容保存在指定的服务器上, 1:本地数据库(默认)、 2:FTP服务器 、3:大数据平台';
comment on column T_REPORT_TEMPLATE.CONTENT_TYPE
is '报表内容展示方式,1:汇总 、 2:明细 、 3:汇总+明细';
comment on column T_REPORT_TEMPLATE.SOURCE_MODE
is '数据源模式, 1:单源模式 (仅支持一维单个数据源) 、 2:多源模式 (支持一维多数据源,二维多数据源)';
comment on column T_REPORT_TEMPLATE.DIMENSION_MODE
is '报表维度模式, 1: 一维模式 、 2:二维模式';
报表结果表:通过job调度生成报表的结果记录,以便查询该报表。
-- Create table
create table T_REPORT_STATIS_RESULT
(
RESULT_ID NUMBER,
ROLE_ID NUMBER,
REPORT_ID NUMBER,
REPORT_NAME VARCHAR2(500),
EXEC_TIME VARCHAR2(20),
START_TIME VARCHAR2(20),
END_TIME VARCHAR2(20),
CYCLE VARCHAR2(20),
CONTENT_TYPE NUMBER,
EXEC_TIME_NUM NUMBER,
START_TIME_NUM NUMBER,
END_TIME_NUM NUMBER,
SOURCE_MODE NUMBER,
DIMENSION_MODE NUMBER
);
-- Add comments to the table
comment on table T_REPORT_STATIS_RESULT
is '统计报表的结果表';
-- Add comments to the columns
comment on column T_REPORT_STATIS_RESULT.RESULT_ID
is '结果表ID';
comment on column T_REPORT_STATIS_RESULT.ROLE_ID
is '角色ID 角色关联用户,用于用户的权限控制';
comment on column T_REPORT_STATIS_RESULT.REPORT_ID
is '报表ID';
comment on column T_REPORT_STATIS_RESULT.REPORT_NAME
is '报表名称';
comment on column T_REPORT_STATIS_RESULT.EXEC_TIME
is '执行时间';
comment on column T_REPORT_STATIS_RESULT.START_TIME
is '开始时间';
comment on column T_REPORT_STATIS_RESULT.END_TIME
is ' 结束时间';
comment on column T_REPORT_STATIS_RESULT.CYCLE
is '周期 1.日 2.周 3.月';
comment on column T_REPORT_STATIS_RESULT.CONTENT_TYPE
is '展现方式 1 汇总 2 明细 3 汇总+明细';
comment on column T_REPORT_STATIS_RESULT.EXEC_TIME_NUM
is '执行时间 number类型存储';
comment on column T_REPORT_STATIS_RESULT.START_TIME_NUM
is '开始时间 number类型存储';
comment on column T_REPORT_STATIS_RESULT.END_TIME_NUM
is ' 结束时间 number类型存储';
comment on column T_REPORT_STATIS_RESULT.SOURCE_MODE
is '数据源模式, 1:单源模式 (仅支持一维单个数据源) 、 2:多源模式 (支持一维多数据源,二维多数据源)';
comment on column T_REPORT_STATIS_RESULT.DIMENSION_MODE
is '报表维度模式, 1: 一维模式 、 2:二维模式';
报表结果行表:为报表结果表的子集,也称之为报表明细表,展示报表详细信息。
-- Create table
create table T_REPORT_STATIS_ROW
(
result_id NUMBER,
content_count VARCHAR2(4000),
content_list VARCHAR2(2048),
property NUMBER
);
-- Add comments to the table
comment on table T_REPORT_STATIS_ROW
is '统计报表执行结果 行表';
-- Add comments to the columns
comment on column T_REPORT_STATIS_ROW.result_id
is '结果ID';
comment on column T_REPORT_STATIS_ROW.content_count
is '汇总记录';
comment on column T_REPORT_STATIS_ROW.content_list
is '当REPORT_CONTENT_TYPE=2该值有效';
comment on column T_REPORT_STATIS_ROW.property
is '由于报表数据可能会出现超大现象,需要分行存储;1:代表主体部分 ,2:附属内容部分';