CN113885970B - 一种基于脚本生成报表数据的方法、***及介质 - Google Patents
一种基于脚本生成报表数据的方法、***及介质 Download PDFInfo
- Publication number
- CN113885970B CN113885970B CN202111080817.0A CN202111080817A CN113885970B CN 113885970 B CN113885970 B CN 113885970B CN 202111080817 A CN202111080817 A CN 202111080817A CN 113885970 B CN113885970 B CN 113885970B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- report
- script
- initial
- 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
- 238000013515 script Methods 0.000 title claims abstract description 196
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 116
- 238000013507 mapping Methods 0.000 claims description 38
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 13
- 230000002688 persistence Effects 0.000 claims description 9
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000002085 persistent effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于脚本生成报表数据的方法、***及介质,所述方法包括以下步骤:构建初始数据查询文件和若干数据处理脚本文件;根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;根据所述报表数据集,执行报表生成操作,得到报表;通过上述方式,本发明可以实现与原有数据库***的存储过程具有相同的灵活性和完备性,同时可以通过脚本文件对初始数据集进行逻辑处理,使得报表数据与程序代码完全解耦;对初始数据集可以进行再次加工或者重新构建查询语句进行按需查询,降低了开发人员的开发难度,提升了报表数据的处理的灵活性。
Description
技术领域
本发明涉及数据库报表技术领域,特别是涉及一种基于脚本生成报表数据的方法、***及介质。
背景技术
报表用于为管理***的各级使用者生成各类口径的统计报表,在各种企业级管理***的开发中,报表是其中一个必不可少的功能,主要供给用户分析决策使用。
一般简单报表可以是从单张数据库表或若干张表中联合查询得到数据,但是有很多复杂的中国式报表,其查询条件多、分类统计口径复杂,单条SQL语句往往无法实现;或者即使可以实现,其要求的复杂SQL语句编写能力要求也远远超出了普通的应用开发者的开发能力。这种情况下,一般都是通过各类数据库自身提供的存储过程进行SQL编程实现复杂查询。
但是面对复杂的数据处理,存储过程的编写较为复杂,且存储过程的调试比较困难,后续如果需要更改时,需要去更改存储过程中的代码及其逻辑。
发明内容
本发明主要解决的是对复杂的报表进行数据处理时,使用存储过程会增加开发量的问题。
为解决上述问题,本发明采用的一个技术方案是:提供一种基于脚本生成报表数据的方法,包括以下步骤:
构建文件:构建初始数据查询文件和若干数据处理脚本文件;
获取初始数据集:根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
获取报表数据集:通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;
生成报表:根据所述报表数据集,执行报表生成操作,得到报表。
进一步,所述构建文件的步骤进一步包括:
生成映射文件:通过数据库持久层框架构建SQL映射文件;
构建查询文件:对所述SQL映射文件执行查询语句***操作,得到所述初始数据查询文件;
生成脚本文件:根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
构建数据处理文件:对若干所述初始脚本文件执行标准数据生成接口***操作,得到若干所述数据处理脚本文件。
进一步,所述获取报表数据集的步骤进一步包括:
获取脚本文件:根据所述待构建报表和若干所述数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
执行脚本文件:通过所述第一数据处理脚本文件,对所述初始数据集执行所述数据处理操作,得到所述报表数据集。
进一步,所述初始数据查询文件包括若干组第一数据和第二数据;所述获取初始数据集的步骤进一步包括:
获取与所述待构建报表对应的所述第一数据,并根据所述第一数据,从所述初始数据查询文件中获取所述第二数据;
根据所述第二数据,执行所述初始数据集查询操作,得到所述初始数据集。
进一步,所述获取脚本文件的步骤进一步包括:
获取所述待构建报表的名称,得到报表名称;
获取若干所述数据处理脚本文件的名称,得到若干脚本文件名称;通过若干所述脚本文件名称构建脚本文件名称集;
对所述报表名称和所述脚本文件名称集执行名称循环比对操作:
若所述脚本文件名称集中存在与所述报表名称相同的所述脚本文件名称,则获取所述脚本文件名称对应的所述数据处理脚本文件,得到所述第一数据处理脚本文件;
若所述脚本文件名称集中不存在与所述报表名称相同的所述脚本文件名称,则根据所述初始数据集执行所述报表生成操作。
进一步,所述数据处理操作包括数据列类型转换操作、分类处理操作和重新查询操作;所述数据列类型转换操作的步骤进一步包括:
获取所述初始数据集的列名,根据当前操作***的语言,对所述列名执行类型转换操作,得到更新列名;根据所述更新列名,对所述初始数据集执行列名替换操作,得到所述报表数据集。
进一步,所述分类处理操作的步骤进一步包括:
对所述初始数据集执行循环遍历操作,得到若干初始数据,对若干所述初始数据进行分类,得到若干分类数据;根据若干所述分类数据,构建所述报表数据集。
进一步,所述重新查询操作的步骤进一步包括:
根据所述初始数据集获取所述初始数据查询文件;根据所述初始数据查询文件,获取第二数据;
构建过滤条件,根据所述过滤条件和所述第二数据,重新构建所述第二数据,得到更新第二数据;
对所述更新第二数据执行加载操作,得到所述报表数据集。
一种基于脚本生成报表数据的***,包括:构建文件模块、获取初始数据集模块、获取报表数据集模块和生成报表模块;
所述构建文件模块用于构建初始数据查询文件和若干数据处理脚本文件;
所述获取初始数据集模块用于根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
所述获取报表数据集模块用于通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;
所述生成报表模块用于根据所述报表数据集,执行报表生成操作,得到报表;
所述构建文件模块包括生成映射文件单元、构建查询文件单元、生成脚本文件单元和构建数据处理文件单元;
所述生成映射文件单元用于通过数据库持久层框架构建SQL映射文件;
所述构建查询文件单元用于对所述SQL映射文件执行查询语句***操作,得到所述初始数据查询文件;
所述生成脚本文件单元用于根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
所述构建数据处理文件单元用于对若干所述初始脚本文件执行标准数据生成接口***操作,得到若干所述数据处理脚本文件;
所述获取报表数据集模块包括获取脚本文件单元和执行脚本文件单元;
所述获取脚本文件单元用于根据所述待构建报表和若干所述数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
所述执行脚本文件单元用于通过所述第一数据处理脚本文件,对所述初始数据集执行所述数据处理操作,得到所述报表数据集。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的一种基于脚本生成报表数据的方法的步骤。
本发明的有益效果是:
1、本发明所述的基于脚本生成报表数据的方法,可以实现将原来存储过程中复杂的逻辑处理移植到脚本文件中实现,根据脚本文件中设置的与主应用程序对应的接口对初始查询出来的数据集进行逻辑处理,可以使得报表数据与程序代码完全解耦;
2、本发明所述的基于脚本生成报表数据的***,可以实现通过脚本文件对初始数据集进行再次加工或者重新组合查询条件按需调用新的查询语句,得到新的预期数据,以更好的匹配报表前端的展示;
3、本发明所述的基于脚本生成报表数据的介质,可以实现通过脚本文件替代原有数据库***中存储过程的功能,具备灵活性和功能的完备性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1所述的一种基于脚本生成报表数据的方法的流程图;
图2是本发明实施例1所述的一种基于脚本生成报表数据的方法的构建文件步骤的流程图;
图3是本发明实施例1所述的一种基于脚本生成报表数据的方法的获取报表数据集步骤的流程图;
图4是本发明实施例2所述的一种基于脚本生成报表数据的***的示意图;
图5是本发明实施例2所述的一种基于脚本生成报表数据的***的构建文件模块的示意图;
图6是本发明实施例2所述的一种基于脚本生成报表数据的***的获取报表数据集模块的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,“初始数据查询文件”、“数据处理脚本文件”、“初始数据集”、“报表数据集”、“数据库持久层框架”、“SQL映射文件”、“查询语句”、“初始脚本文件”、“数据处理”、“第一数据”、“第二数据”、“报表名称”、“脚本文件名称”、“循环比对”、“数据列类型转换”、“分类处理”、“过滤条件”、“唯一标识符”、“标准数据生成接口”、“中国式复杂报表”、“数据国际化”等术语应做广义理解。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
需要说明的是,在本发明的描述中,
groovy是一种可在Java虚拟机上运行的敏捷的动态语言,她的好处是一种动态语言,编写脚本更为简单快速,同时无需编译;
iBatis是一个由Clinton Begin在2001年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和.NET的持久层框架。在各编程语言(比如Java)中用此框架替代JDBC接口进行各类数据库操作;
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库;
JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法;
SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
实施例1
本发明实施例提供一种基于脚本生成报表数据的方法,请参阅图1至图3,包括以下步骤:
S100、构建文件:
S101、生成映射文件:
通过***中使用的数据库持久层框架构建SQL映射文件,SQL映射文件可以为多个也可以为一个,一般是按照一张数据库表对应一个SQL映射文件设置。
为了更清楚地解释本发明,此处进行举例说明,数据库持久层框架可以为iBatis框架、myBatis框架或者Hibernate框架,本发明选用的数据库持久层框架为iBatis框架,根据iBatis框架提供的原生支持,可以构建一个或者多个SQL映射文件,SQL映射文件用于存储查询语句。
S102、构建查询文件:
根据报表的需求,构建若干查询语句,并将若干查询语句***至SQL映射文件中,得到初始数据查询文件。
初始数据查询文件中包括了若干组第一数据和第二数据,其中第一数据为每条查询语句的唯一标识符,第二数据为构建的查询语句,通过唯一标识符标识查询语句,在后续调用时,可以通过唯一标识符调用对应的查询语句。
S103、生成脚本文件:
根据若干待构建报表的名称,新建若干脚本文件,得到若干初始脚本文件;初始脚本文件的文件名称与待构建报表的名称相同,可以在得到报表的初始数据集后,通过名称直接调用对应的脚本文件。
为了更清楚地解释本发明,此处进行举例说明,此处新建的若干脚本文件是通过groovy语言建立的,设置脚本文件名与报表文件名相同,可以以默认约定的方式自动调用对应的groovy脚本文件进行数据处理。
S104、构建数据处理文件:
构建若干标准数据生成接口,将若干标准数据生成接口***至若干初始脚本文件中,得到若干数据处理脚本文件。
若干标准数据生成接口可以不全部实现,根据报表的实际需求,选择性调用。
为了更清楚地解释本发明,此处延续S103生成脚本文件步骤的举例,通过groovy语言构建若干标准数据生成接口,并将若干标准数据生成接口写入若干初始脚本文件中,得到了若干groovy数据处理脚本文件,通过该数据处理脚本文件中的标准数据生成接口可以对初始数据集进行处理,生成报表需的格式的报表数据集。
S200、获取初始数据集:
获取当前需要操作的报表,根据报表的信息获取需要调用的查询语句的唯一标识符,根据唯一标识符去初始数据查询文件中获取对应的查询语句。
执行查询语句,可以得到该报表的初始数据集。
为了更清楚地解释本发明,此处进行举例说明,假设操作货物出口报表,那么需要先获取货物出口报表的信息,该信息中记录了该货物出口报表需要的查询语句的唯一标识符goodsExport;根据唯一标识符goodsExport去初始数据查询文件中查找对应的查询语句,并执行该查询语句,可以得到该货物出口报表的初始数据集。
S300、获取报表数据集:
S301、获取脚本文件:
得到初始数据集后,获取该报表的名称,因为数据处理脚本文件的名称与报表的名称相同,所以可以根据该名称去查找对应的数据处理脚本文件:
若未查找到对应的数据处理脚本文件,则说明该报表的数据比较简单,不需要通过数据处理脚本文件进行数据处理,可以直接根据初始数据集生成报表;
若查找到对应的数据处理脚本文件,则设定该数据处理脚本文件为第一数据处理脚本文件。
为了更清楚地解释本发明,此处进行举例说明,假设该报表为简单报表,不需要复杂的数据逻辑处理,那么就未设置与该报表对应的数据处理脚本文件,只需要通过初始数据集就可以生成报表;假设该报表为中国式复杂报表,那么需要在获取到初始数据集后,需要调用对应的数据处理脚本文件进行初始数据集的处理,以满足报表的展示需求。
S302、执行脚本文件:
根据第一数据处理脚本文件对初始数据集进行数据处理,数据处理包括数据列类型转换、分类处理操作和重新查询操作。
对初始数据集进行数据列类型转换操作,即获取初始数据的列名,根据当前操作***的语言,对列名进行转换,得到更新列名,再根据更新列名替换初始数据集中对应的列名,得到报表数据集;此步骤主要是为了支持数据国际化。
为了更清楚地解释本发明,此处进行举例说明,假设得到的初始数据集需要进行数据列类型转换,且当前操作***的语言为中文简体,将初始数据集中cardType列的数据转换为对应的中文名称,当该列的数据为debitCard时,转换为借记卡,当该列的数据为creditCard时,转换为***等,在通过转化后的列名去替换初始数据集中的对应的列名,得到了报表数据集,该报表数据集可以直接显示在当前操作***中。
对初始数据集进行分类处理操作,即对初始数据集进行循环遍历,根据初始数据集中的一个字段对初始数据集进行分类,将分类后的数据组合构建为报表数据集。
为了更清楚地解释本发明,此处进行举例说明,假设得到的初始数据集需要进行分类处理,且设定根据初始数据集中的cardType字段进行分类,那么循环遍历初始数据集,将cardType为借记卡的所有数据归为一类,将cardType为***的所有数据归为一类,得到两类数据,并将该两类数据组合,得到报表数据。
对初始数据集进行重新查询操作,即获取初始数据集对应的初始数据查询文件中的查询语句;再构建过滤条件,通过该过滤条件去替换查询语句中的查询条件,可以得到更新查询语句;再执行更新查询语句,可以得到报表数据集。
为了更清楚地解释本发明,此处进行举例说明,假设得到的初始数据集需要进行重新操作,设定初始数据集为该银行所有分行在2021年8月8日中午12:00的交易记录,而报表中需要的是该银行的北京分行在2021年8月8日中午12:00的交易记录,那么设置过滤条件为北京分行,将初始的查询语句中的过滤条件更改为北京分行,再重新执行该查询语句,就可得到对应的报表数据。
S400、生成报表:
将得到的报表数据发送给前端进行报表显示,得到报表。
需要说明的是,上述的举例仅仅是为了解释本发明的执行过程,并不能因此限定本发明的保护范围。
实施例2
本发明实施例还提供一种基于脚本生成报表数据的***,请参阅图4至图6,包括:构建文件模块、获取初始数据集模块、获取报表数据集模块和生成报表模块;
构建文件模块:
构建文件模块用于构建初始数据查询文件和若干数据处理脚本文件;构建文件模块包括生成映射文件单元、构建查询文件单元、生成脚本文件单元和构建数据处理文件单元;
生成映射文件单元:
生成映射文件单元用于通过数据库持久层框架构建SQL映射文件;
具体地,生成映射文件单元通过***中使用的数据库持久层框架构建SQL映射文件,SQL映射文件可以为多个也可以为一个,一般是按照一张数据库表对应一个SQL映射文件设置。
为了更清楚地解释本发明,此处进行举例说明,数据库持久层框架可以为iBatis框架、myBatis框架或者Hibernate框架,本发明选用的数据库持久层框架为iBatis框架,根据iBatis框架提供的原生支持,可以构建一个或者多个SQL映射文件,SQL映射文件用于存储查询语句。
构建查询文件单元:
构建查询文件单元用于对SQL映射文件执行查询语句***操作,得到初始数据查询文件;
具体地,构建查询文件单元根据报表的需求,构建若干查询语句,并将若干查询语句***至SQL映射文件中,得到初始数据查询文件。
初始数据查询文件中包括了若干组第一数据和第二数据,其中第一数据为每条查询语句的唯一标识符,第二数据为构建的查询语句,通过唯一标识符标识查询语句,在后续调用时,可以通过唯一标识符调用对应的查询语句。
生成脚本文件单元:
生成脚本文件单元用于根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
具体地,生成脚本文件单元根据若干待构建报表的名称,新建若干脚本文件,得到若干初始脚本文件;初始脚本文件的文件名称与待构建报表的名称相同,可以在得到报表的初始数据集后,通过名称直接调用对应的脚本文件。
为了更清楚地解释本发明,此处进行举例说明,此处新建的若干脚本文件是通过groovy语言建立的,设置脚本文件名与报表文件名相同,可以以默认约定的方式自动调用对应的groovy脚本文件进行数据处理。
构建数据处理文件单元:
构建数据处理文件单元用于对若干初始脚本文件执行标准数据生成接口***操作,得到若干数据处理脚本文件;
具体地,构建数据处理文件单元构建若干标准数据生成接口,将若干标准数据生成接口***至若干初始脚本文件中,得到若干数据处理脚本文件。
若干标准数据生成接口可以不全部实现,根据报表的实际需求,选择性调用。
为了更清楚地解释本发明,此处延续生成脚本文件单元的举例,通过groovy语言构建若干标准数据生成接口,并将若干标准数据生成接口写入若干初始脚本文件中,得到了若干groovy数据处理脚本文件,通过该数据处理脚本文件中的标准数据生成接口可以对初始数据集进行处理,生成报表需的格式的报表数据集。
获取初始数据集模块:
获取初始数据集模块用于根据初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
具体地,获取初始数据集模块获取当前需要操作的报表,根据报表的信息获取需要调用的查询语句的唯一标识符,根据唯一标识符去初始数据查询文件中获取对应的查询语句。
执行查询语句,可以得到该报表的初始数据集。
为了更清楚地解释本发明,此处进行举例说明,假设操作货物出口报表,那么需要先获取货物出口报表的信息,该信息中记录了该货物出口报表需要的查询语句的唯一标识符goodsExport;根据唯一标识符goodsExport去初始数据查询文件中查找对应的查询语句,并执行该查询语句,可以得到该货物出口报表的初始数据集。
获取报表数据集模块:
获取报表数据集模块用于通过数据处理脚本文件对初始数据集执行数据处理操作,得到报表数据集;获取报表数据集模块包括获取脚本文件单元和执行脚本文件单元;
获取脚本文件单元:
获取脚本文件单元用于根据待构建报表和若干数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
具体地,得到初始数据集后,获取脚本文件单元获取该报表的名称,因为数据处理脚本文件的名称与报表的名称相同,所以可以根据该名称去查找对应的数据处理脚本文件:
若未查找到对应的数据处理脚本文件,则说明该报表的数据比较简单,不需要通过数据处理脚本文件进行数据处理,可以直接根据初始数据集生成报表;
若查找到对应的数据处理脚本文件,则设定该数据处理脚本文件为第一数据处理脚本文件。
为了更清楚地解释本发明,此处进行举例说明,假设该报表为简单报表,不需要复杂的数据逻辑处理,那么就未设置与该报表对应的数据处理脚本文件,只需要通过初始数据集就可以生成报表;假设该报表为中国式复杂报表,那么需要在获取到初始数据集后,需要调用对应的数据处理脚本文件进行初始数据集的处理,以满足报表的展示需求。
执行脚本文件单元:
执行脚本文件单元用于通过第一数据处理脚本文件,对初始数据集执行数据处理操作,得到报表数据集;
具体地,执行脚本文件单元根据第一数据处理脚本文件对初始数据集进行数据处理,数据处理包括数据列类型转换、分类处理操作和重新查询操作。
对初始数据集进行数据列类型转换操作,即获取初始数据的列名,根据当前操作***的语言,对列名进行转换,得到更新列名,再根据更新列名替换初始数据集中对应的列名,得到报表数据集;此处主要是为了支持数据国际化。
为了更清楚地解释本发明,此处进行举例说明,假设得到的初始数据集需要进行数据列类型转换,且当前操作***的语言为中文简体,将初始数据集中cardType列的数据转换为对应的中文名称,当该列的数据为debitCard时,转换为借记卡,当该列的数据为creditCard时,转换为***等,在通过转化后的列名去替换初始数据集中的对应的列名,得到了报表数据集,该报表数据集可以直接显示在当前操作***中。
对初始数据集进行分类处理操作,即对初始数据集进行循环遍历,根据初始数据集中的一个字段对初始数据集进行分类,将分类后的数据组合构建为报表数据集。
为了更清楚地解释本发明,此处进行举例说明,假设得到的初始数据集需要进行分类处理,且设定根据初始数据集中的cardType字段进行分类,那么循环遍历初始数据集,将cardType为借记卡的所有数据归为一类,将cardType为***的所有数据归为一类,得到两类数据,并将该两类数据组合,得到报表数据。
对初始数据集进行重新查询操作,即获取初始数据集对应的初始数据查询文件中的查询语句;再构建过滤条件,通过该过滤条件去替换查询语句中的查询条件,可以得到更新查询语句;再执行更新查询语句,可以得到报表数据集。
为了更清楚地解释本发明,此处进行举例说明,假设得到的初始数据集需要进行重新操作,设定初始数据集为该银行所有分行在2021年8月8日中午12:00的交易记录,而报表中需要的是该银行的北京分行在2021年8月8日中午12:00的交易记录,那么设置过滤条件为北京分行,将初始的查询语句中的过滤条件更改为北京分行,再重新执行该查询语句,就可得到对应的报表数据。
生成报表模块:
生成报表模块用于根据报表数据集,执行报表生成操作,得到报表;
具体地,生成报表模块将得到的报表数据发送给前端进行报表显示,得到报表。
需要说明的是,上述的举例仅仅是为了解释本发明的执行过程,并不能因此限定本发明的保护范围。
实施例3
本实施例3具有一种计算机可读存储介质,所述存储介质用于储存将上述实施例1所述的基于脚本生成报表数据的方法实现所用的计算机软件指令,其包含用于基于脚本生成报表数据的方法所设置的程序;具体地,该可执行程序可以内置于实施例2所述的基于脚本生成报表数据的***中,这样,基于脚本生成报表数据的***就可以通过执行内置的可执行程序实现所述实施例1的基于脚本生成报表数据的方法。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种基于脚本生成报表数据的方法,其特征在于,包括以下步骤:
构建文件:构建初始数据查询文件和若干数据处理脚本文件;
获取初始数据集:根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
获取报表数据集:通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;
生成报表:根据所述报表数据集,执行报表生成操作,得到报表;
所述构建文件的步骤进一步包括:
生成映射文件:通过数据库持久层框架构建SQL映射文件;
构建查询文件:对所述SQL映射文件执行查询语句***操作,得到所述初始数据查询文件;
生成脚本文件:根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
构建数据处理文件:对若干所述初始脚本文件执行标准数据生成接口***操作,得到若干所述数据处理脚本文件;
所述获取报表数据集的步骤进一步包括:
获取脚本文件:根据所述待构建报表和若干所述数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
执行脚本文件:通过所述第一数据处理脚本文件,对所述初始数据集执行所述数据处理操作,得到所述报表数据集;
所述初始数据查询文件包括若干组第一数据和第二数据;所述获取初始数据集的步骤进一步包括:
获取与所述待构建报表对应的所述第一数据,并根据所述第一数据,从所述初始数据查询文件中获取所述第二数据;
根据所述第二数据,执行所述初始数据集查询操作,得到所述初始数据集;
所述获取脚本文件的步骤进一步包括:
获取所述待构建报表的名称,得到报表名称;
获取若干所述数据处理脚本文件的名称,得到若干脚本文件名称;通过若干所述脚本文件名称构建脚本文件名称集;
对所述报表名称和所述脚本文件名称集执行名称循环比对操作:
若所述脚本文件名称集中存在与所述报表名称相同的所述脚本文件名称,则获取所述脚本文件名称对应的所述数据处理脚本文件,得到所述第一数据处理脚本文件;
若所述脚本文件名称集中不存在与所述报表名称相同的所述脚本文件名称,则根据所述初始数据集执行所述报表生成操作。
2.根据权利要求1所述的一种基于脚本生成报表数据的方法,其特征在于:
所述数据处理操作包括数据列类型转换操作、分类处理操作和重新查询操作;所述数据列类型转换操作的步骤进一步包括:
获取所述初始数据集的列名,根据当前操作***的语言,对所述列名执行类型转换操作,得到更新列名;根据所述更新列名,对所述初始数据集执行列名替换操作,得到所述报表数据集。
3.根据权利要求2所述的一种基于脚本生成报表数据的方法,其特征在于:
所述分类处理操作的步骤进一步包括:
对所述初始数据集执行循环遍历操作,得到若干初始数据,对若干所述初始数据进行分类,得到若干分类数据;根据若干所述分类数据,构建所述报表数据集。
4.根据权利要求3所述的一种基于脚本生成报表数据的方法,其特征在于:
所述重新查询操作的步骤进一步包括:
根据所述初始数据集获取所述初始数据查询文件;根据所述初始数据查询文件,获取第二数据;
构建过滤条件,根据所述过滤条件和所述第二数据,重新构建所述第二数据,得到更新第二数据;
对所述更新第二数据执行加载操作,得到所述报表数据集。
5.一种基于脚本生成报表数据的***,采用权利要求1所述的一种基于脚本生成报表数据的方法,其特征在于,所述***包括:构建文件模块、获取初始数据集模块、获取报表数据集模块和生成报表模块;
所述构建文件模块用于构建初始数据查询文件和若干数据处理脚本文件;
所述获取初始数据集模块用于根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
所述获取报表数据集模块用于通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;
所述生成报表模块用于根据所述报表数据集,执行报表生成操作,得到报表;
所述构建文件模块包括生成映射文件单元、构建查询文件单元、生成脚本文件单元和构建数据处理文件单元;
所述生成映射文件单元用于通过数据库持久层框架构建SQL映射文件;
所述构建查询文件单元用于对所述SQL映射文件执行查询语句***操作,得到所述初始数据查询文件;
所述生成脚本文件单元用于根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
所述构建数据处理文件单元用于对若干所述初始脚本文件执行标准数据生成接口***操作,得到若干所述数据处理脚本文件;
所述获取报表数据集模块包括获取脚本文件单元和执行脚本文件单元;
所述获取脚本文件单元用于根据所述待构建报表和若干所述数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
所述执行脚本文件单元用于通过所述第一数据处理脚本文件,对所述初始数据集执行所述数据处理操作,得到所述报表数据集。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-4任一项所述的一种基于脚本生成报表数据的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080817.0A CN113885970B (zh) | 2021-09-15 | 2021-09-15 | 一种基于脚本生成报表数据的方法、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080817.0A CN113885970B (zh) | 2021-09-15 | 2021-09-15 | 一种基于脚本生成报表数据的方法、***及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113885970A CN113885970A (zh) | 2022-01-04 |
CN113885970B true CN113885970B (zh) | 2024-06-11 |
Family
ID=79009483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111080817.0A Active CN113885970B (zh) | 2021-09-15 | 2021-09-15 | 一种基于脚本生成报表数据的方法、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113885970B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089454B (zh) * | 2022-12-23 | 2023-09-19 | 博上(山东)网络科技有限公司 | 一种动态日志分析方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138501A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种可配置的动态报表生成方法及*** |
CN109471890A (zh) * | 2018-10-16 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 报表文件的生成方法、终端设备及介质 |
CN111552712A (zh) * | 2020-04-30 | 2020-08-18 | 中国平安财产保险股份有限公司 | 报表数据提取方法、装置及计算机设备 |
CN112380180A (zh) * | 2020-11-17 | 2021-02-19 | 平安普惠企业管理有限公司 | 数据同步处理方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310637B2 (en) * | 2004-05-05 | 2007-12-18 | International Business Machines Corporation | Dynamic database access via standard query language and abstraction technology |
-
2021
- 2021-09-15 CN CN202111080817.0A patent/CN113885970B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138501A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种可配置的动态报表生成方法及*** |
CN109471890A (zh) * | 2018-10-16 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 报表文件的生成方法、终端设备及介质 |
CN111552712A (zh) * | 2020-04-30 | 2020-08-18 | 中国平安财产保险股份有限公司 | 报表数据提取方法、装置及计算机设备 |
CN112380180A (zh) * | 2020-11-17 | 2021-02-19 | 平安普惠企业管理有限公司 | 数据同步处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113885970A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606573B2 (en) | System and method for computer language migration using a re-architecture tool for decomposing a legacy system and recomposing a modernized system | |
CN107861728B (zh) | 用于传统程序语言向现代程序语言转换的方法及其*** | |
US8949796B2 (en) | Method for automatic extraction of design from standard source code | |
CA2819008C (en) | Method and system for displaying selectable autocompletion suggestions and annotations in mapping tool | |
US9305044B2 (en) | System and method for modelling data | |
US8838654B1 (en) | Data modeling system for runtime schema extensibility | |
CN101196926A (zh) | 一种数据库访问平台及其访问方法 | |
US9195456B2 (en) | Managing a catalog of scripts | |
US10509632B2 (en) | Model augmentation in a model-driven application development environment | |
CN113885970B (zh) | 一种基于脚本生成报表数据的方法、***及介质 | |
CN117033418A (zh) | 语句重写方法、***及装置 | |
WO2013184952A1 (en) | Method for automatic extraction of designs from standard source code | |
EP1909170B1 (en) | Method and system for automatically generating a communication interface | |
CN114238527A (zh) | 基于对象关系映射的数据处理方法和数据处理装置 | |
CN116955393A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112181996B (zh) | 关系数据库统一数据存取中间件方法及*** | |
CN114461712A (zh) | 一种多源异构数据源与图数据库导入导出的方法及装置 | |
Marotta et al. | Managing source schema evolution in web warehouses | |
CN110647535A (zh) | 一种将业务数据更新至Hive的方法、终端及存储介质 | |
Sun | Comparison of Java Persistence Layer Technologies | |
Emdi | The implementation of a network CODASYL-DML interface for the multi-lingual database system. | |
CN115587148A (zh) | 适用于低代码平台的无业务含义数据访问方法及装置 | |
CN114116700A (zh) | 数据处理的方法、装置、设备、存储介质及程序产品 | |
CN118312517A (zh) | Iceberg表结构的管理方法、电子设备及存储介质 | |
CN117971225A (zh) | 一种基于多种数据库表自动生成java开发代码的方法 |
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 |