CN113885970A - 一种基于脚本生成报表数据的方法、系统及介质 - Google Patents

一种基于脚本生成报表数据的方法、系统及介质 Download PDF

Info

Publication number
CN113885970A
CN113885970A CN202111080817.0A CN202111080817A CN113885970A CN 113885970 A CN113885970 A CN 113885970A CN 202111080817 A CN202111080817 A CN 202111080817A CN 113885970 A CN113885970 A CN 113885970A
Authority
CN
China
Prior art keywords
file
report
data
script
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.)
Granted
Application number
CN202111080817.0A
Other languages
English (en)
Other versions
CN113885970B (zh
Inventor
张涛
柳永平
生伟
李宗盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Financial Information Technology Co Ltd
Original Assignee
Inspur Financial Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Financial Information Technology Co Ltd filed Critical Inspur Financial Information Technology Co Ltd
Priority to CN202111080817.0A priority Critical patent/CN113885970B/zh
Publication of CN113885970A publication Critical patent/CN113885970A/zh
Application granted granted Critical
Publication of CN113885970B publication Critical patent/CN113885970B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (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 (10)

1.一种基于脚本生成报表数据的方法,其特征在于,包括以下步骤:
构建文件:构建初始数据查询文件和若干数据处理脚本文件;
获取初始数据集:根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
获取报表数据集:通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;
生成报表:根据所述报表数据集,执行报表生成操作,得到报表。
2.根据权利要求1所述的一种基于脚本生成报表数据的方法,其特征在于:
所述构建文件的步骤进一步包括:
生成映射文件:通过数据库持久层框架构建SQL映射文件;
构建查询文件:对所述SQL映射文件执行查询语句插入操作,得到所述初始数据查询文件;
生成脚本文件:根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
构建数据处理文件:对若干所述初始脚本文件执行标准数据生成接口插入操作,得到若干所述数据处理脚本文件。
3.根据权利要求2所述的一种基于脚本生成报表数据的方法,其特征在于:
所述获取报表数据集的步骤进一步包括:
获取脚本文件:根据所述待构建报表和若干所述数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
执行脚本文件:通过所述第一数据处理脚本文件,对所述初始数据集执行所述数据处理操作,得到所述报表数据集。
4.根据权利要求2所述的一种基于脚本生成报表数据的方法,其特征在于:
所述初始数据查询文件包括若干组第一数据和第二数据;所述获取初始数据集的步骤进一步包括:
获取与所述待构建报表对应的所述第一数据,并根据所述第一数据,从所述初始数据查询文件中获取所述第二数据;
根据所述第二数据,执行所述初始数据集查询操作,得到所述初始数据集。
5.根据权利要求4所述的一种基于脚本生成报表数据的方法,其特征在于:
所述获取脚本文件的步骤进一步包括:
获取所述待构建报表的名称,得到报表名称;
获取若干所述数据处理脚本文件的名称,得到若干脚本文件名称;通过若干所述脚本文件名称构建脚本文件名称集;
对所述报表名称和所述脚本文件名称集执行名称循环比对操作:
若所述脚本文件名称集中存在与所述报表名称相同的所述脚本文件名称,则获取所述脚本文件名称对应的所述数据处理脚本文件,得到所述第一数据处理脚本文件;
若所述脚本文件名称集中不存在与所述报表名称相同的所述脚本文件名称,则根据所述初始数据集执行所述报表生成操作。
6.根据权利要求5所述的一种基于脚本生成报表数据的方法,其特征在于:
所述数据处理操作包括数据列类型转换操作、分类处理操作和重新查询操作;所述数据列类型转换操作的步骤进一步包括:
获取所述初始数据集的列名,根据当前操作系统的语言,对所述列名执行类型转换操作,得到更新列名;根据所述更新列名,对所述初始数据集执行列名替换操作,得到所述报表数据集。
7.根据权利要求6所述的一种基于脚本生成报表数据的方法,其特征在于:
所述分类处理操作的步骤进一步包括:
对所述初始数据集执行循环遍历操作,得到若干初始数据,对若干所述初始数据进行分类,得到若干分类数据;根据若干所述分类数据,构建所述报表数据集。
8.根据权利要求7所述的一种基于脚本生成报表数据的方法,其特征在于:
所述重新查询操作的步骤进一步包括:
根据所述初始数据集获取所述初始数据查询文件;根据所述初始数据查询文件,获取第二数据;
构建过滤条件,根据所述过滤条件和所述第二数据,重新构建所述第二数据,得到更新第二数据;
对所述更新第二数据执行加载操作,得到所述报表数据集。
9.一种基于脚本生成报表数据的系统,其特征在于,包括:构建文件模块、获取初始数据集模块、获取报表数据集模块和生成报表模块;
所述构建文件模块用于构建初始数据查询文件和若干数据处理脚本文件;
所述获取初始数据集模块用于根据所述初始数据查询文件,执行初始数据集查询操作,得到初始数据集;
所述获取报表数据集模块用于通过所述数据处理脚本文件对所述初始数据集执行数据处理操作,得到报表数据集;
所述生成报表模块用于根据所述报表数据集,执行报表生成操作,得到报表;
所述构建文件模块包括生成映射文件单元、构建查询文件单元、生成脚本文件单元和构建数据处理文件单元;
所述生成映射文件单元用于通过数据库持久层框架构建SQL映射文件;
所述构建查询文件单元用于对所述SQL映射文件执行查询语句插入操作,得到所述初始数据查询文件;
所述生成脚本文件单元用于根据若干待构建报表的名称,执行脚本文件生成操作,得到若干初始脚本文件;
所述构建数据处理文件单元用于对若干所述初始脚本文件执行标准数据生成接口插入操作,得到若干所述数据处理脚本文件;
所述获取报表数据集模块包括获取脚本文件单元和执行脚本文件单元;
所述获取脚本文件单元用于根据所述待构建报表和若干所述数据处理脚本文件,执行对应脚本文件查找操作,得到第一数据处理脚本文件;
所述执行脚本文件单元用于通过所述第一数据处理脚本文件,对所述初始数据集执行所述数据处理操作,得到所述报表数据集。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-8任一项所述的一种基于脚本生成报表数据的方法步骤。
CN202111080817.0A 2021-09-15 2021-09-15 一种基于脚本生成报表数据的方法、系统及介质 Active CN113885970B (zh)

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 true CN113885970A (zh) 2022-01-04
CN113885970B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116089454A (zh) * 2022-12-23 2023-05-09 博上(山东)网络科技有限公司 一种动态日志分析方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262048A1 (en) * 2004-05-05 2005-11-24 International Business Machines Corporation Dynamic database access via standard query language and abstraction technology
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 平安普惠企业管理有限公司 数据同步处理方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262048A1 (en) * 2004-05-05 2005-11-24 International Business Machines Corporation Dynamic database access via standard query language and abstraction technology
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 平安普惠企业管理有限公司 数据同步处理方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116089454A (zh) * 2022-12-23 2023-05-09 博上(山东)网络科技有限公司 一种动态日志分析方法及系统
CN116089454B (zh) * 2022-12-23 2023-09-19 博上(山东)网络科技有限公司 一种动态日志分析方法及系统

Also Published As

Publication number Publication date
CN113885970B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
Bernstein et al. Model management 2.0: manipulating richer mappings
US9940108B2 (en) Automated merging in a software development environment
US8949796B2 (en) Method for automatic extraction of design from standard source code
KR102229010B1 (ko) 데이터를 모델링하기 위한 시스템 및 방법
US8838654B1 (en) Data modeling system for runtime schema extensibility
US9507820B1 (en) Data modeling system for runtime schema extensibility
Haeusler et al. ChronoSphere: a graph-based EMF model repository for IT landscape models
WO2013184952A1 (en) Method for automatic extraction of designs from standard source code
CN114238527A (zh) 基于对象关系映射的数据处理方法和数据处理装置
Ledvinka et al. A comparison of object-triple mapping libraries
CN113885970A (zh) 一种基于脚本生成报表数据的方法、系统及介质
CN113342325A (zh) 可视化建模方法、系统、电子设备及存储介质
CN116821098A (zh) 数据仓库管理方法、服务系统和存储介质
Rietveld et al. Reducing layered database applications to their essence through vertical integration
CN115794858A (zh) 查询语句处理方法、装置、设备及存储介质
CN112181996B (zh) 关系数据库统一数据存取中间件方法及系统
Şora Unified modeling of static relationships between program elements
Marotta et al. Managing source schema evolution in web warehouses
KR20090028451A (ko) 소프트웨어 개발 시스템
US20120330878A1 (en) Conventions for inferring data models
US11966394B2 (en) Bill of materials traversal to handle logical units of work for in-memory databases
CN116150235A (zh) 一种数据统计方法、装置、系统、电子设备及介质
US11947931B2 (en) Generic factory class
Guliyev Comparative Analysis of Multi-Model Databases
US20230418574A1 (en) Using a semantic tree of a compiler to execute a semantic code query against source code

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