javaEcharts報表管理器是基於Echarts開發,經過配置數據源映射相應的Echarts報表 java
JavaEcharts報表管理器主要特色:
-
支持一維報表、二維報表 sql
-
支持報表的圖文並茂 數據庫
-
支持報表導出Excel 服務器
-
支持報表彙總、明細、報代表細 架構
-
架構圖以下所示: 大數據
表設計以下所示: spa
數據源表:主要配置數據取數源頭、明細、表頭等信息 設計
-- 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';
報表模板表:主要是組裝表頭、報表的維度、做業調度等等信息。 code
-- 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調度生成報表的結果記錄,以便查詢該報表。 orm
-- 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:附屬內容部分';