CN104573065A - 一种基于元数据的报表展示引擎 - Google Patents
一种基于元数据的报表展示引擎 Download PDFInfo
- Publication number
- CN104573065A CN104573065A CN201510036708.7A CN201510036708A CN104573065A CN 104573065 A CN104573065 A CN 104573065A CN 201510036708 A CN201510036708 A CN 201510036708A CN 104573065 A CN104573065 A CN 104573065A
- Authority
- CN
- China
- Prior art keywords
- report
- data
- metadata
- presentation engine
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于元数据的报表展示引擎,通过定义元数据来解析运行时的数据读取逻辑、约束以及界面布局。其元数据包含报表头和报表字段定义两部分。报表引擎通过读取报表头可以确定数据来源、报表标题、导出文件类型以及其他主要信息,然后结合报表字段定义,可以在运行时查询、过滤数据并返回结果集,最后根据报表头和报表字段定义来决定报表展示的样式以输出到客户端。该报表展示引擎定义了规范的元数据模型,具有灵活配置的特性,支持进一步的元数据扩展。采用该引擎能够保证可维护性的前提下,提高报表的生产率,支持快速开发,适合需求变更频繁的报表***。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种基于元数据的报表展示引擎。
背景技术
现存的报表引擎开发、配置麻烦,学习难度大,无法快速开发基于在线联机业务***(OLTP)的报表。部分的报表数据源SQL请求极为复杂,而且这些SQL是动态生成的,又难于优化。当前的报表管理***查询性能较低,无法根据客户需求灵活制作报表,如客户提出统计新的字段,目前需要写代码来实现,而且不支持图形报表。
发明内容
为了克服上述技术问题, 本发明的目的在于提供一种基于元数据的报表展示引擎。
本发明采用的技术方案是:
一种基于元数据的报表展示引擎,通过定义元数据来解析运行时的数据读取逻辑、约束以及界面布局,所述元数据包含报表头和报表字段; 该报表展示引擎包括:
报表展示模块,提供报表界面以及供用户通过报表界面选择查询条件后请求查询、下载报表数据;
数据源,用于提供报表数据;
报表引擎,用于:(1)接收报表界面提交的请求,解析报表元数据,生成最终的数据库SQL脚本;(2)从数据库的数据源中请求相应的数据;(3)接收数据库返回命中条件的原始数据;(4)二次处理原始数据,过滤危险的数据,并转换为最终用户可见的数据格式。
其中,所述报表头配置至少包含以下信息:数据来源、报表标题、导出文件类型,用来确定报表从具体那个数据库表/视图获取数据,界面显示的报表标题以及导出的文件类型。
所述报表字段至少配置包含字段的显示外观、行为定义。
特别的,所述报表展示模块由同一个WebForm控件实现,其报表的业务体现在数据源配置的查询SQL中。
进一步,所述报表展示模块用于跟用户直接交互,包括响应选择查询条件和搜索按钮;当点击搜索按钮时,将页面的查询条件及当前查询的报表编号传递给报表引擎处理,等待返回结果。
本发明的有益效果是:
l 能满足用户各种多变的需求,报表头配置、报表字段配置以“简单”为设计原则。
l
展示与业务分离,所有的报表展示均由同一个WebForm控件实现,其报表的业务体现在数据库的配置的查询SQL中,报表的业务通过统一格式的数据源展示出来。
l
易于扩展,通过配置来增加报表而无需重新修改软件。
l
易于维护,一份报表对应一份报表元数据,数据库的配置信息独立于程序,可以单独维护配置信息,而每一份配置信息都可生成一份报表。
l
优化海量数据查询效率,缩短输出时间,为保证查询效率,使用分表来替代复杂的存储过程或直接SQL,每个中间表数据都应保留。对于历史资料的统计,应定期存档当次查询的报表,避免长时间查询,提高用户体验。
l
保证软件性能,使用配置加载查询条件、构造查询条件等不应消耗过多的网络、服务器资源,配置信息应缓存。
l
保障数据安全,所有查询均应使用参数,文字应先经过滤去除非法指令。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明报表展示引擎的原理图;
图2是本发明元数据的模型图;
图3是报表展示模块两种形式的报表;
图4是报表引擎的处理请求流程图;
图5是本发明应用实例报表查询展示的界面图;
图6是本发明应用实例下载报表的界面图。
具体实施方式
参考图1所示,为本发明的一种基于元数据的报表展示引擎,通过定义元数据来解析运行时的数据读取逻辑、约束以及界面布局; 该报表展示引擎包括:
报表展示模块,提供报表界面以及供用户通过报表界面选择查询条件后请求查询、下载报表数据;
数据源,用于提供报表数据;
报表引擎,用于:(1)接收报表界面提交的请求,解析报表元数据,生成最终的数据库SQL脚本;(2)从数据库的数据源中请求相应的数据;(3)接收数据库返回命中条件的原始数据;(4)二次处理原始数据,过滤危险的数据,并转换为最终用户可见的数据格式。
如图2,所述元数据包含报表头和报表字段,报表头配置主要包含以下信息:数据来源、报表标题、导出文件类型。用来确定报表从那个数据库表/视图获取数据,界面显示的报表标题以及导出的文件类型。
详细的报表头配置信息如下:
元数据标识 | 描述 |
name | 报表名称 |
reportType | 报表类型,可支持多种报表:表格、折线图、柱状图、饼图 |
dataSource | 数据源,支持数据库表、数据库视图 |
fileType | 导出文件类型支持Microsoft Office Excel2003/2007、csv文件 |
fileName | 导出的文件名 |
pageSize | 在线查询数据表格分页大小,即每页加载的行数 |
subtitle | 图表副标题,适用于折线图、柱状图、饼图 |
xAxis | 横坐标标题,适用于折线图、柱状图 |
yAxis | 纵坐标标题,适用于折线图、柱状图 |
isAggregateEnabled | 是否使用聚合函数统计汇总数据 |
showTextHeader | 导出csv文件时是否显示表头 |
delimiter | 导出csv文件的数据列分隔符 |
报表字段配置包含字段的显示外观、行为定义,详细信息如下:
如上,通过一套元数据定义工具定义多份不同报表的元数据,包含一系列的报表字段配置,可以针对特定的数据源(数据库表/视图)创建任意数量不同外观、行为的报表,从而灵活、快速地按需制作报表。
本发明报表展示引擎将报表展示模块、报表引擎和数据源三者解耦,利于单独优化性能而不影响各自的运行,又便于协调开发/维护工作。
如图3,报表展示模块包含两种形式的报表:
1)表格,即普通的二维数据格式的报表。
2)图形包含折线图、柱状图和饼图,可用于需要直观显示的数据变化趋势和比较。
如图4,报表引擎,负责界面和数据的连接,给界面提供数据,给数据源提供查询请求,并负责数据的过滤,格式化和输出。其中,数据过滤根据报表的配置和查询条件来实现,可限制输出的报表字段;此外,还可以扩展数据过滤功能,加密电话号码、密码(如手机号139****1234,密码******)。以及数据转换主要针对日期,输出指定格式的日期(如2013-03-15),支持多种日期类型。
其工作流程为:
1. 解析参数,解析传入的参数,转化为的报表查询条件字段;
2. 构造SQL脚本,动态构建查询的SQL;
3. 请求数据,执行数据库请求命令;
4. 过滤转换数据,过滤、转换结果集并输出。
数据源由数据源提供者开发维护,所有的报表数据都从这些数据源中获得。这些报表数据应该保证数据的准确性,以及查询的效率。设计数据源时不需要关心最终报表的外观,只需要关注提供给报表的数据即可。
一般的报表只需要定期执行SQL脚本/存储过程,将统计数据保存在单一的数据库表中,即可作为数据源提供给报表引擎。对于需要实时查询的数据,则需要将查询的逻辑封装在数据库视图中,才能够提供给报表引擎使用。
数据源的准确性依赖于生成数据的SQL脚本/存储过程,所以数据源提供者需要提供准确的数据,才能保证最终用户接收到的数据是准确的。
本发明报表展示引擎对于用户查询报表的过程明确地分为三部分:
(1)报表展示用于跟用户直接交互,包括响应选择查询条件和搜索按钮。当点击搜索按钮时,将页面的查询条件及当前查询的报表编号传递给报表引擎处理,等待返回结果。
(2)报表引擎用于代理数据源,过滤封装查询结果。根据传递过来的报表编号及查询条件,动态构建查询SQL,该SQL应该只包含仅是以下简单的单表查询(不含表之间的业务关系),最多只应包含分页逻辑:SELECT
[栏位] FROM [表]
WHERE [条件] ORDER BY [栏位]。
(3)数据源纯粹用于返回数据,不作数据过滤,但必须保证数据的正确性,个别的报表可能需要提供分页的数据源。
为了更充分的说明本发明的构思,以下是实际的一个报表查询界面:
A、选择查询条件
B、选择需要导出的字段。查询、导出数据前可以先选择需要的字段,得到只包含选中字段的结果集:如图5;
C、下载报表,如图6;
每次导出报表都会有记录,以便以后重新下载。如果导出的时间较长而用户在这期间关闭了页面,***不会终止导出,而是在后台继续执行。“点击下载”后,马上显示“正在生成报表...”,这时需要等待程序执行完毕。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
Claims (5)
1.一种基于元数据的报表展示引擎,其特征在于:通过定义元数据来解析运行时的数据读取逻辑、约束以及界面布局,所述元数据包含报表头和报表字段; 该报表展示引擎包括:
报表展示模块,提供报表界面以及供用户通过报表界面选择查询条件后请求查询、下载报表数据;
数据源,用于提供报表数据;
报表引擎,用于:(1)接收报表界面提交的请求,解析报表元数据,生成最终的数据库SQL脚本;(2)从数据库的数据源中请求相应的数据;(3)接收数据库返回命中条件的原始数据;(4)二次处理原始数据,过滤危险的数据,并转换为最终用户可见的数据格式。
2.根据权利要求1所述的一种基于元数据的报表展示引擎,其特征在于:所述报表头配置至少包含以下信息:数据来源、报表标题、导出文件类型,用来确定报表从具体那个数据库表/视图获取数据,界面显示的报表标题以及导出的文件类型。
3.根据权利要求1所述的一种基于元数据的报表展示引擎,其特征在于:所述报表字段至少配置包含字段的显示外观、行为定义。
4.根据权利要求1所述的一种基于元数据的报表展示引擎,其特征在于:所述报表展示模块由同一个WebForm控件实现,其报表的业务体现在数据源配置的查询SQL中。
5.根据权利要求1所述的一种基于元数据的报表展示引擎,其特征在于:所述报表展示模块用于跟用户直接交互,包括响应选择查询条件和搜索按钮;当点击搜索按钮时,将页面的查询条件及当前查询的报表编号传递给报表引擎处理,等待返回结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510036708.7A CN104573065A (zh) | 2015-01-23 | 2015-01-23 | 一种基于元数据的报表展示引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510036708.7A CN104573065A (zh) | 2015-01-23 | 2015-01-23 | 一种基于元数据的报表展示引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104573065A true CN104573065A (zh) | 2015-04-29 |
Family
ID=53089127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510036708.7A Pending CN104573065A (zh) | 2015-01-23 | 2015-01-23 | 一种基于元数据的报表展示引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104573065A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243333A (zh) * | 2015-08-28 | 2016-01-13 | 苏州国云数据科技有限公司 | 多数据源远程接入方法 |
CN107193852A (zh) * | 2016-08-03 | 2017-09-22 | 上海同豪土木工程咨询有限公司 | 通用的图表表达方法 |
CN107656733A (zh) * | 2017-08-08 | 2018-02-02 | 山东中创软件工程股份有限公司 | 一种业务对象的可视化处理方法和*** |
CN107832282A (zh) * | 2017-11-21 | 2018-03-23 | 苏州正载信息技术有限公司 | 一种定义可视化报表的实现方法 |
CN108268525A (zh) * | 2016-12-30 | 2018-07-10 | 深圳市优朋普乐传媒发展有限公司 | 一种基于Excel模板的报表实现方法及装置 |
CN108345673A (zh) * | 2018-02-09 | 2018-07-31 | 弘成科技发展有限公司 | 在线成人教育高等院校定制化报表导出方法 |
CN108572945A (zh) * | 2018-03-09 | 2018-09-25 | 吉贝克信息技术(北京)有限公司 | 创建报表的方法、***、存储介质、及电子设备 |
CN109582937A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表生成方法、装置、存储介质和处理器 |
CN109933613A (zh) * | 2019-03-20 | 2019-06-25 | 南京金信通信息服务有限公司 | 一种访问sap bw报表结果集的方法和*** |
CN110032590A (zh) * | 2019-04-15 | 2019-07-19 | 重庆天蓬网络有限公司 | 一种数据可视化***、方法、服务器及存储介质 |
CN111512248A (zh) * | 2017-12-27 | 2020-08-07 | 西门子股份公司 | 用于计算机辅助地处理技术***的运行数据的方法 |
CN112256710A (zh) * | 2020-09-30 | 2021-01-22 | 中孚安全技术有限公司 | 一种基于元数据的数据统计分析图表生成***、方法及设备 |
CN113157707A (zh) * | 2021-05-20 | 2021-07-23 | 国网信息通信产业集团有限公司 | 一种不规则报表的生成方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667171A (zh) * | 2009-09-15 | 2010-03-10 | 金蝶软件(中国)有限公司 | 生成报表的方法及报表生成装置 |
US20100211564A1 (en) * | 2006-10-27 | 2010-08-19 | Information Builders, Inc. | Generating a file with integral dynamic reports from queries to an external database |
US20100262443A1 (en) * | 2009-04-08 | 2010-10-14 | D Albis John N | Systems and methods associated with a collaborative strategy editor |
CN102289460A (zh) * | 2011-07-13 | 2011-12-21 | 中国工商银行股份有限公司 | 一种向测试环境进行报表元数据同步的方法及*** |
US20120173481A1 (en) * | 2010-12-30 | 2012-07-05 | Sap Ag | System and method of updating related documents |
CN103064916A (zh) * | 2012-12-20 | 2013-04-24 | 成都羿明科技有限公司 | EminDI 数据整合引擎及报表生成方法 |
US8856182B2 (en) * | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
-
2015
- 2015-01-23 CN CN201510036708.7A patent/CN104573065A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100211564A1 (en) * | 2006-10-27 | 2010-08-19 | Information Builders, Inc. | Generating a file with integral dynamic reports from queries to an external database |
US8856182B2 (en) * | 2008-01-25 | 2014-10-07 | Avaya Inc. | Report database dependency tracing through business intelligence metadata |
US20100262443A1 (en) * | 2009-04-08 | 2010-10-14 | D Albis John N | Systems and methods associated with a collaborative strategy editor |
CN101667171A (zh) * | 2009-09-15 | 2010-03-10 | 金蝶软件(中国)有限公司 | 生成报表的方法及报表生成装置 |
US20120173481A1 (en) * | 2010-12-30 | 2012-07-05 | Sap Ag | System and method of updating related documents |
CN102289460A (zh) * | 2011-07-13 | 2011-12-21 | 中国工商银行股份有限公司 | 一种向测试环境进行报表元数据同步的方法及*** |
CN103064916A (zh) * | 2012-12-20 | 2013-04-24 | 成都羿明科技有限公司 | EminDI 数据整合引擎及报表生成方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243333A (zh) * | 2015-08-28 | 2016-01-13 | 苏州国云数据科技有限公司 | 多数据源远程接入方法 |
CN107193852B (zh) * | 2016-08-03 | 2020-09-29 | 上海同豪土木工程咨询有限公司 | 通用的图表表达方法 |
CN107193852A (zh) * | 2016-08-03 | 2017-09-22 | 上海同豪土木工程咨询有限公司 | 通用的图表表达方法 |
CN108268525A (zh) * | 2016-12-30 | 2018-07-10 | 深圳市优朋普乐传媒发展有限公司 | 一种基于Excel模板的报表实现方法及装置 |
CN107656733A (zh) * | 2017-08-08 | 2018-02-02 | 山东中创软件工程股份有限公司 | 一种业务对象的可视化处理方法和*** |
CN109582937A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表生成方法、装置、存储介质和处理器 |
CN107832282A (zh) * | 2017-11-21 | 2018-03-23 | 苏州正载信息技术有限公司 | 一种定义可视化报表的实现方法 |
CN111512248B (zh) * | 2017-12-27 | 2023-06-02 | 西门子股份公司 | 用于计算机辅助地处理技术***的运行数据的方法 |
CN111512248A (zh) * | 2017-12-27 | 2020-08-07 | 西门子股份公司 | 用于计算机辅助地处理技术***的运行数据的方法 |
CN108345673A (zh) * | 2018-02-09 | 2018-07-31 | 弘成科技发展有限公司 | 在线成人教育高等院校定制化报表导出方法 |
CN108572945A (zh) * | 2018-03-09 | 2018-09-25 | 吉贝克信息技术(北京)有限公司 | 创建报表的方法、***、存储介质、及电子设备 |
CN109933613A (zh) * | 2019-03-20 | 2019-06-25 | 南京金信通信息服务有限公司 | 一种访问sap bw报表结果集的方法和*** |
CN110032590A (zh) * | 2019-04-15 | 2019-07-19 | 重庆天蓬网络有限公司 | 一种数据可视化***、方法、服务器及存储介质 |
CN112256710A (zh) * | 2020-09-30 | 2021-01-22 | 中孚安全技术有限公司 | 一种基于元数据的数据统计分析图表生成***、方法及设备 |
CN112256710B (zh) * | 2020-09-30 | 2022-12-06 | 中孚安全技术有限公司 | 一种基于元数据的数据统计分析图表生成***、方法及设备 |
CN113157707A (zh) * | 2021-05-20 | 2021-07-23 | 国网信息通信产业集团有限公司 | 一种不规则报表的生成方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104573065A (zh) | 一种基于元数据的报表展示引擎 | |
US20230376487A1 (en) | Processing database queries using format conversion | |
US9122721B2 (en) | Enriching database query responses using data from external data sources | |
CN108197237B (zh) | 可视化数据采集到展现*** | |
CN103559217B (zh) | 一种面向异构数据库的海量组播数据入库实现方法 | |
CN110032604B (zh) | 数据存储装置、转译装置及数据库访问方法 | |
CN101996067B (zh) | 一种数据导出的方法和装置 | |
AU2012271083A1 (en) | Enriching database query responses using data from external data sources | |
CN103646073A (zh) | 一种基于HBase表的条件查询优化方法 | |
CN103500196A (zh) | 多并发大数据量环境下excel数据导出方法及其导出装置 | |
CN104102710A (zh) | 一种海量数据查询方法 | |
CN103020158A (zh) | 一种报表创建方法、装置和*** | |
CN102917009B (zh) | 一种基于云计算技术的股票数据采集和存储方法和*** | |
CN104239572A (zh) | 基于分布式缓存实现元数据分析的***及方法 | |
CN102880676A (zh) | 统计用户行为数据的方法及用户行为数据统计*** | |
CN110688399A (zh) | 一种流式计算实时报表***及方法 | |
CN103488704A (zh) | 一种数据存储方法及装置 | |
CN107506464A (zh) | 一种基于ES实现HBase二级索引的方法 | |
CN104572856A (zh) | 一种服务起源数据的融合存储方法 | |
US8781919B2 (en) | Data row packing apparatus, systems, and methods | |
CN105608126A (zh) | 一种建立海量数据库二级索引的方法和装置 | |
CN109388659B (zh) | 数据存储方法、装置和计算机可读存储介质 | |
CN103646093A (zh) | 搜索引擎数据处理方法和平台 | |
US8095532B2 (en) | Apparatus and method for generating report data in a multi-user environment | |
CN101964816A (zh) | 在b/s架构软件***中浏览数据的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |
|
RJ01 | Rejection of invention patent application after publication |