CN110442595B - 一种通用sql报表数据集构建的方法与装置 - Google Patents
一种通用sql报表数据集构建的方法与装置 Download PDFInfo
- Publication number
- CN110442595B CN110442595B CN201910680047.XA CN201910680047A CN110442595B CN 110442595 B CN110442595 B CN 110442595B CN 201910680047 A CN201910680047 A CN 201910680047A CN 110442595 B CN110442595 B CN 110442595B
- Authority
- CN
- China
- Prior art keywords
- sql
- report
- query function
- constructing
- data set
- 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.)
- Active
Links
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种通用SQL报表数据集构建的方法,步骤1:根据综合业务报表需求,将SQL语句拆分,形成细粒度SQL业务查询函数;步骤2:对SQL业务查询函数进行标注,并保存为XML文件;步骤3:构建SQL业务查询函数的SQL引用参数;步骤4:通过报表插件,将SQL业务查询函数、引用参数、标注实例化,形成可视化的报表数据集。本发明解决了现有报表制作过程中,报表数据集分散存储、可视化差、重用性差,数据集管理困难等问题,可应用于基于商用库SQL语句构建的各类业务报表系统。
Description
技术领域
本发明涉及一种通用SQL报表数据集构建的方法与装置,属于电网信息应用系统技术领域。
背景技术
目前,制作商用库报表的一般过程是,首先,编写SQL语句形成报表数据集,数据集提供查询数据记录及对应字段;然后,将数据集的字段拖拽至报表表格控件的对应位置;最后进行字段的扩展、关联、决策等。报表数据集将作为报表文件的一部分存储在报表文件中。
随着报表类型及业务报表数量的增加,将会涉及大量报表数据集的编写。报表数据集一般采用的是SQL原生代码编写,作为普通报表制作人员,无法深入了解具体业务系统的数据库表结构,编写报表数据集难度较大;报表数据集围绕报表具体需求进行编写,粒度粗,无法相互重用,报表制作效率低;不同报表数据集存储在不同报表文件中,数据集可读性差,重用性差,大量数据集管理困难。
发明内容
目的:为了克服现有技术中存在的不足,本发明提供一种通用SQL报表数据集构建的方法与装置,解决了现有报表制作过程中,报表数据集分散存储、可读性差、重用性差,数据集管理困难等问题。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
第一方面,一种通用SQL报表数据集构建的方法,包括如下步骤:
步骤1:根据综合业务报表需求,将SQL语句拆分,形成细粒度SQL业务查询函数。
步骤2:对SQL业务查询函数进行标注,并保存为XML文件。
步骤3:构建SQL业务查询函数的SQL引用参数。
步骤4:通过报表插件,将SQL业务查询函数、引用参数、标注实例化,形成可视化的报表数据集。
作为优选方案,所述步骤1包括:综合多个业务报表查询需求,将业务报表中的SQL语句按照对象类型、时间属性、计算属性进行拆分,形成细粒度的SQL业务查询函数。
作为优选方案,在各查询函数中设置一个对象ID字段,对象ID字段为各查询函数中共有字段。
作为优选方案,抽取重复性SQL语句形成公共SQL业务查询函数。
作为优选方案,所述步骤2包括:对各查询函数的功能及输出字段进行标注,标注为报表制作人员所能理解的释义,将标注后的查询函数以XML格式存储在文件中。
作为优选方案,所述步骤3包括:将查询函数的SQL引用参数与报表参数采用相同的关键字,建立查询函数中的引用参数列表与报表参数列表之间的关联,实现两者之间的参数传递。
作为优选方案,所述步骤4包括:通过程序编码建立报表插件,嵌入报表设计器中;报表插件读取XML文件中查询函数对应的SQL结构,获取其函数功能、标注、select语句、引用参数,以树形层次可视化方式展现出与查询函数相对应的报表数据集。
第二方面,一种通用SQL报表数据集构建的装置,其特征在于:包括控制器、存储介质,所述控制器执行存储介质中的方法,所述方法采用第一方面中任意一种方法。
有益效果:本发明提供的一种通用SQL报表数据集构建的方法与装置,综合业务报表需求,拆分形成细粒度SQL业务查询函数,实现查询函数高度重用;基于XML文件,标注各SQL业务查询函数,实现SQL业务查询函数集中管理;构建SQL业务查询函数的SQL引用参数,实现报表参数传递;基于报表插件,建立SQL业务查询函数与参数实例化,形成可视化报表数据集,方便业务报表制作。
该方法解决了现有报表制作过程中,报表数据集分散存储、可视化差、重用性差,数据集管理困难等问题,可应用于基于商用库SQL语句构建的各类业务报表系统。
附图说明
图1是通用SQL报表数据集构建流程示意图;
图2是利用通用SQL报表数据集进行报表制作的软件界面示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示,一种通用SQL报表数据集构建的方法,包括如下步骤:
步骤1:根据综合业务报表需求,将SQL语句拆分,形成细粒度SQL业务查询函数,实现查询函数高度重用;
步骤2:对SQL业务查询函数进行标注,并保存为XML文件,实现SQL业务查询函数集中管理;
步骤3:构建SQL业务查询函数的SQL引用参数,实现报表参数传递;
步骤4:通过报表插件,将SQL业务查询函数、标注与引用参数实例化,形成可视化的报表数据集。
所述拆分形成细粒度SQL业务查询函数,是指综合多个业务报表查询需求,将业务报表中的SQL语句按照对象类型(如,水位、流量、出力等)、时间属性(如,实时、历史、同期日、同期月等)、计算属性(同比、环比等)进行拆分,形成细粒度的SQL业务查询函数(以下简称查询函数),并在各查询函数中设置一个对象ID字段,对象ID字段为各查询函数中共有字段,用于在制作报表时,可通过该对象ID进行多个报表数据集的拼接。通过查询函数构建对应的报表数据集,在制作报表时,查询函数可以被不同的报表重复使用,大大提升报表制作效率。
以水调系统坝上水位统计信息报表为例(如图2所示),该报表需显示水库的基本信息、日统计信息、实况信息、历史同期信息等。常规制作报表时,用一条SQL语句实现上述所有信息查询非常困难。本发明方法,将该SQL语句拆分为多个查询函数,例如,水库基本信息、坝上水位_日统计、坝上水位_今日实时、坝上水位_上月同期日4个查询函数;水库编号为各查询函数的对象ID字段,便于制作报表时将多个查询函数对应的多个报表数据集组合拼接成一个报表。
所述标注各SQL业务查询函数,是指对各查询函数的功能及输出字段进行标注,标注为报表制作人员所能理解的释义(释义可采用中文或其它本地语言);抽取重复性SQL语句形成公共SQL业务查询函数(以下简称公共查询函数)。将标注后的查询函数和公共查询函数以XML格式存储在文件中,便于集中管理。
以水调系统坝上水位报表为例, 查询函数XML存储格式如下:
<SQL id="D11" sname="水库编号,水库名称,测点编码,昨日平均水位">
select e.rsvnid, e.rsvname, e.measname, d.avg_value from hms_danalogd,
(${COMSQL.GET_ATTROID}) e
where d.attr_oid = e.objectkey and d.attr_time= dateadd(day,-1,'${STM}')
</SQL>
如上述语句所示的水调SQL业务查询函数,id="D11"为该查询函数的功能ID,sname="…" 为该查询函数所返回字段对应的标注释义,SQL语句"select…" 为该查询函数的具体SQL实现。
为减少查询函数中重复性SQL的编写,提高SQL语句的开发效率,可以将这些查询函数相同的SQL语句进行抽取,形成公共查询函数,引用形式为:${COMSQL.GET_ATTROID}。COMSQL为公共查询函数的格式标注,其格式定义如下:
<COMSQL id="COMSQL.GET_ATTROID" sname="获取对象ID、水库名称之间的关系">
select a.objectkey, a.name measname, b.nid rtunid, b.name rtuname,c.nid rsvnid, c.name rsvname, c.ddz from analog_codeswitch a, basisremoteunitb, basisreservoir c
where a.name =b.nid || '_Z' and b.reservoir_nid in (${NIDS}) andb.upWaterLevel=1 and b.reservoir_nid = c.nid
</COMSQL>
制作报表时,制作人员无需了解上述查询函数的具体SQL构成,直接使用该标注进行操作。
所述构建查询函数的SQL引用参数,是指将查询函数的SQL引用参数与报表参数采用相同的关键字,建立查询函数中的引用参数列表与报表参数列表之间的关联,实现两者之间的参数传递;例如,定义如下关键字,报表对象编码${NIDS}、查询起始时间${STM},查询结束时间${ETM}等,该关键字在查询函数与报表参数定义相同,表达涵义也相同。
在上述水调相同查询函数< SQL>的select语句中,${STM}就为该查询函数的SQL引用参数,同样在报表参数列表中也有${STM}定义,关键字相同,涵义均表示为查询起始时间。
所述基于报表插件,建立SQL业务查询函数与引用参数实例化,是指通过程序编码建立报表插件,嵌入报表设计器中;报表插件读取XML文件中查询函数对应的SQL结构,获取其函数功能、标注、select语句、引用参数,以树形层次可视化方式展现出与查询函数相对应的报表数据集。由于报表数据集中有查询函数的标注可提供给制作人员使用,所以制作人员无需像原有一样看懂复杂的SQL语句,就可以直接选择所需要的数据,方便业务报表制作。
在报表制作和报表显示时,报表插件对引用参数或引用参数列表进行实例化,并将报表参数传递到查询函数中SQL语句的对应参数;实际上,也可以通过插件,实现如下反向定义,即,在XML文件SQL语句自定义引用参数,通过插件进行转换,在报表参数区显示同名称的报表参数。
通过报表插件,实现了报表数据集中查询函数的读取、SQL语句的拼接与执行、引用参数传递、标注转换,从而实现了报表数据集的可视化,方便了报表的实际制作。
以水调系统的坝上水位的统计信息为例,如图2所示,基于通用SQL报表数据集的报表实际制作过程如下:
创建4个SQL业务查询函数对应的报表数据集,分别是水库基本信息、坝上水位_日统计、坝上水位_今日实时、坝上水位_上月同期日;水库基本信息查询函数可以获取水库名称、正常蓄水位、死水位、设计洪水位等水库的基本静态信息;坝上水位_日统计查询函数可以获取日初水位、日均水位、日最高水位、日最低水位等水库日统计水位信息;坝上水位_今日实时查询函数可以获取今日实时信息;坝上水位_上月同期日查询函数可以获取上月同期日信息。由于上述4个数据集都设有对象ID“水库编号”,在报表形成时,可以借助报表表格控件过滤功能,进行4个数据集信息的组合拼接,形成一张坝上水位的统计信息报表。
实施案例及有益效果:
该报表方法应用在某水调自动化系统中,通过针对该水调业务报表进行分解,细化多层次多粒度报表查询函数,共25大类,300多个业务函数,涉及基本参数、水位、流量与水量(入库、出库、弃水、发电)、发电量、出力、耗水率、负荷率、蓄能值等测点的实时值、计算值、年月日统计值(平均、极值、同期、变化)等指标。通过构建通用SQL报表数据集,大大降低了报表开发与制作难度。
通过该方法,可以实现SQL查询集中管理,业务查询函数封装,报表制作时组合拼装,大大降低了报表制作难度;同时通过报表插件,提供了简单易用的报表设计界面,通过拖拽方式即可设计出复杂的报表。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (8)
1.一种通用SQL报表数据集构建的方法,其特征在于:包括如下步骤:
步骤1:根据综合业务报表需求,将SQL语句拆分,形成细粒度SQL业务查询函数;
步骤2:对SQL业务查询函数进行标注,并保存为XML文件;
步骤3:构建SQL业务查询函数的SQL引用参数;
步骤4:通过报表插件,将SQL业务查询函数、引用参数、标注实例化,形成可视化的报表数据集。
2.根据权利要求1所述的一种通用SQL报表数据集构建的方法,其特征在于:所述步骤1包括:综合多个业务报表查询需求,将业务报表中的SQL语句按照对象类型、时间属性、计算属性进行拆分,形成细粒度的SQL业务查询函数。
3.根据权利要求2所述的一种通用SQL报表数据集构建的方法,其特征在于:在各查询函数中设置一个对象ID字段,对象ID字段为各查询函数中共有字段。
4.根据权利要求1所述的一种通用SQL报表数据集构建的方法,其特征在于:抽取重复性SQL语句形成公共SQL业务查询函数。
5.根据权利要求1所述的一种通用SQL报表数据集构建的方法,其特征在于:所述步骤2包括:对各查询函数的功能及输出字段进行标注,标注为报表制作人员所能理解的释义,将标注后的查询函数以XML格式存储在文件中。
6.根据权利要求1所述的一种通用SQL报表数据集构建的方法,其特征在于:所述步骤3包括:将查询函数的SQL引用参数与报表参数采用相同的关键字,建立查询函数中的引用参数列表与报表参数列表之间的关联,实现两者之间的参数传递。
7.根据权利要求1所述的一种通用SQL报表数据集构建的方法,其特征在于:所述步骤4包括:通过程序编码建立报表插件,嵌入报表设计器中;报表插件读取XML文件中查询函数对应的SQL结构,获取其函数功能、标注、select语句、引用参数,以树形层次可视化方式展现出与查询函数相对应的报表数据集。
8.一种通用SQL报表数据集构建的装置,其特征在于:包括控制器、存储介质,所述控制器执行存储介质中的方法,所述方法采用权利要求1-7中任意一种方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910680047.XA CN110442595B (zh) | 2019-07-26 | 2019-07-26 | 一种通用sql报表数据集构建的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910680047.XA CN110442595B (zh) | 2019-07-26 | 2019-07-26 | 一种通用sql报表数据集构建的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442595A CN110442595A (zh) | 2019-11-12 |
CN110442595B true CN110442595B (zh) | 2022-07-22 |
Family
ID=68431563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910680047.XA Active CN110442595B (zh) | 2019-07-26 | 2019-07-26 | 一种通用sql报表数据集构建的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442595B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078668B (zh) * | 2019-12-13 | 2023-03-21 | 北京明略软件系统有限公司 | 数据生成方法、装置、电子设备和存储介质 |
CN112612818B (zh) * | 2020-12-21 | 2022-04-15 | 贝壳找房(北京)科技有限公司 | 一种数据处理方法及装置、计算设备和存储介质 |
CN112767013A (zh) * | 2021-01-05 | 2021-05-07 | 北京锐安科技有限公司 | 一种业务报表拆分方法、装置、服务器及存储介质 |
CN115408445A (zh) * | 2022-09-01 | 2022-11-29 | 中国长江电力股份有限公司 | 一种梯级电站日电量数据实时计算以及可视化处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843945A (zh) * | 2016-04-08 | 2016-08-10 | 联动优势科技有限公司 | 一种报表生成方法及系统 |
CN108572945A (zh) * | 2018-03-09 | 2018-09-25 | 吉贝克信息技术(北京)有限公司 | 创建报表的方法、系统、存储介质、及电子设备 |
-
2019
- 2019-07-26 CN CN201910680047.XA patent/CN110442595B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843945A (zh) * | 2016-04-08 | 2016-08-10 | 联动优势科技有限公司 | 一种报表生成方法及系统 |
CN108572945A (zh) * | 2018-03-09 | 2018-09-25 | 吉贝克信息技术(北京)有限公司 | 创建报表的方法、系统、存储介质、及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110442595A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442595B (zh) | 一种通用sql报表数据集构建的方法与装置 | |
CN112364046B (zh) | 一种基于知识图谱的异构环境下主数据管理方法 | |
CN109582647B (zh) | 一种面向非结构化证据文件的分析方法及系统 | |
CN108153965B (zh) | 一种基于scd文件的间隔分图自动生成的方法 | |
CN102708161B (zh) | 一种使用公共概念集的数据逻辑模型建模方法 | |
CN104317864B (zh) | 一种基于iec61850逻辑节点的信息模型自动识别的方法 | |
CN105447253A (zh) | 一种三维工艺数据的集成方法 | |
CN103914307A (zh) | 一种基于可复用库的交互界面快速实现方法 | |
CN112540975B (zh) | 一种基于petri网的多源异构数据质量检测方法及系统 | |
CN103927385A (zh) | 数据模型的统一方法及装置 | |
CN102930479A (zh) | 一种用于电力系统规程知识的形式化方法及其形式化系统 | |
CN101527011B (zh) | 一种实时故障处理流程自动导航方法和装置 | |
CN112948572A (zh) | 通过知识图谱可视化展示电力系统设备信息与关系的方法 | |
CN109274742A (zh) | 一种物联网数据采集与监视控制系统 | |
KR101021486B1 (ko) | 웹 기반의 대화형 원자력 또는 화력발전소 운전절차시스템 | |
CN111625596B (zh) | 新能源实时消纳调度的多源数据同步共享方法及系统 | |
CN111709601A (zh) | 数据处理方法和装置 | |
CN103544338A (zh) | 一种面向三维装配指令发布的工艺信息建模方法 | |
CN107273425A (zh) | 一种基于orm框架的数据库开发方法及装置 | |
CN114238263A (zh) | 一种基于数据字典的数据库建模系统 | |
Barth et al. | Efficient use of data exchange formats in engineering projects by means of language integrated queries—Engineers LINQ to XML | |
CN106126196A (zh) | 一种基于xml的结构化多变量信息帧的界面赋值方法 | |
CN113592417A (zh) | 一种基于物联网的资产管理方法及系统 | |
CN109001985B (zh) | 一种基于编码的光伏电站建模方法及装置 | |
CN116911642B (zh) | 面向多维多态的水电机组设备指标计算系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |