CN110083814A - 一种报表生成方法和装置、计算机可读存储介质 - Google Patents
一种报表生成方法和装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN110083814A CN110083814A CN201910281461.3A CN201910281461A CN110083814A CN 110083814 A CN110083814 A CN 110083814A CN 201910281461 A CN201910281461 A CN 201910281461A CN 110083814 A CN110083814 A CN 110083814A
- Authority
- CN
- China
- Prior art keywords
- report
- test
- data
- database
- parameter
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种报表生成方法和装置、计算机可读存储介质,所述方法包括接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。本申请通过设置报表模板,可以根据需要选择不同的报表模板,对处理后数据选择报表展示格式并填入报表模板,可以快速地生成规范统一的报表。
Description
技术领域
本申请涉及但不限于计算机技术领域,尤其涉及一种报表生成方法和装置、计算机可读存储介质。
背景技术
随着信息化程度的不断提高,对于动态化数据的处理需要迫切,因此出现了许多内置于企业资源计划(Enterprise Resource Planning,ERP)或数据库软件的报表系统,报表以固定的格式嵌入ERP系统或数据库软件中,它们可以对动态变化的数据进行处理,但是这类软件一般只会提供,最简单的表格形式来显示数据,它们无法满足报表格式多样化的需求。
水晶报表(Crystal Reports)是一款商务智能(Business Intelligence,BI)软件,主要用于设计及生成报表。目前作为主流的报表生成工具,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口,可以支持C#与Java多种开发平台,以及支持Java数据库连接(Java Database Connectivity,JDBC)等多种数据源。但是,水晶报表有自己独立的门户机制,常常必须带出其产品本身的报表管理界面,需要人为创建数据库的连接,难以做到无缝嵌入;而且水晶报表只能采用精确度量的方案,需要明确插入表格的数据的数量来设置表格控件的大小,操作繁琐,效率很低,对于数据库的一些动态数据的操作处理也并不灵活。
发明内容
本申请提供了一种报表生成方法和装置、计算机可读存储介质,能够快速地生成规范统一的报表。
本申请提供了一种报表生成方法,包括:
接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;
根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;
对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。
在一种示例性实施例中,所述报表模板根据详细程度分为多个级别。
在一种示例性实施例中,所述报表展示格式包括以下至少之一:表格、统计图、文本文字。
在一种示例性实施例中,当所述报表展示格式为所述统计图时,所述生成报表包括:
使用Java生成统计图函数,遍历所述处理后数据中的数据点,并根据所述数据点逐个生成所述统计图中对应的坐标点。
在一种示例性实施例中,所述运算转换处理包括以下至少之一:
对数据类型的所述数据库数据进行逻辑运算处理,所述逻辑运算处理包括加、减、乘、除、乘方中的一个或多个;
对字符类型的所述数据库数据进行合并、删减或替换处理;
对任意类型的所述数据库数据进行格式转化处理。
在一种示例性实施例中,所述报表为测试报表,所述测试报表的内容包括以下至少之一:
进行测试通过率的统计计算;
输出测试信息,所述测试信息包括测试的参数配置、运行情况和测试结果返回值;
对测试结果进行整合生成统计图表;
进行错误命令提示或输出测试结果截图。
在一种示例性实施例中,所述提取的数据库数据为测试数据,所述测试数据包括以下至少之一:
测试案例信息、测试脚本信息、测试命令信息;
其中,每个测试案例包含一个或多个测试脚本,每个测试脚本包括一条或多条测试命令。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的报表生成方法的步骤。
本申请还提供了一种报表生成装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的报表生成方法的步骤。
本申请还提供了一种报表生成装置,包括参数接收模块、数据提取模块和报表生成模块,其中:
所述参数接收模块,用于接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;
所述数据提取模块,用于根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;
所述报表生成模块,用于对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。
与相关技术相比,本申请包括接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示,可以根据需要选择不同的报表模板,对处理后数据选择报表展示格式并填入报表模板,可以快速地生成规范统一的报表。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明实施例的一种报表生成方法的流程示意图;
图2为本发明实施例的一种测试平台与报表生成装置的关系示意图;
图3为本发明实施例的一种测试数据组织结构示意图;
图4为本发明实施例的一种测试报表生成的流程示意图;
图5为本发明实施例的一种查询功能实现的流程示意图;
图6为本发明实施例的另一种测试报表生成的流程示意图;
图7为本发明实施例的一种报表生成装置的结构示意图;
图8为本发明实施例的一种后台数据的抽取流程示意图;
图9为本发明实施例的一种数据项的运算转换处理流程示意图;
图10为本发明实施例的一种前台生成报表展示的流程示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
实施例一 报表生成方法
如图1所示,根据本发明实施例的一种报表生成方法,包括如下步骤:
步骤101:接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;
在一种示例性的实施例中,所述报表模板根据详细程度分为多个级别。
在一种示例性的实施例中,所述报表为测试报表,所述测试报表的内容包括以下至少之一:
进行测试通过率的统计计算;
输出测试信息,所述测试信息包括测试的参数配置、运行情况和测试结果返回值;
对测试结果进行整合生成统计图表;
进行错误命令提示或输出测试结果截图。
在该实施例中,可以以纯Java语言设计报表模板,并根据测试报表对内容不同侧重的需要,设计内容详细程度不同的各级报表模板。通过使用Java语言设计报表模板,易于操作,性能稳定,可扩展性强,便于部署与现场修改。每次根据需要选择不同的报表模板,将数据库中的测试信息筛选处理后,遍历全部信息填入报表模板,生成最终的测试报表。需要说明的是,本申请的报表生成方法既可以应用于测试平台,又可以应用于测试平台之外的其它平台,还可以作为一个系统脱离任何平台独立运行。如图2所示,通过将报表生成程序与测试验证程序相分离,可以使得报表的设计工作、程序的开发工作、报表的部署工作、报表的修改工作和报表的测试工作各自独立分开地来进行,提高报表的开发效率和质量,使得各自的工作方向更加专注,并且方便对各部分进行独立测试,便于及时解决问题,还可以使得项目开发工作能够并行,节省开发时间,而且使得各自的工作更容易深入,提高各自工作的攻关能力和工作质量,各自部分能够独立更新,实现了项目产品的灵活部署和配置。
步骤102:根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;
在一种示例性的实施例中,所述提取的数据库数据为测试数据,所述测试数据包括以下至少之一:
测试案例信息、测试脚本信息、测试命令信息;
其中,每个测试案例包含一个或多个测试脚本,每个测试脚本包括一条或多条测试命令。
测试记录是测试软件的最重要的输出。测试人员可以根据测试记录,进一步完善测试报告的撰写。测试记录是目标芯片在该测试平台下的真实表现,通过测试记录测试人员可以发现芯片产品的在设计阶段的问题,降低研发成本,提高开发效率。为了保证测试记录可以完成统计分析功能,我们选择将测试记录存入数据库文件。为了更好的设计数据库保存我们的测试记录,如图3展示了测试数据组织结构。
对于一次测试,从每一个测试案例(Case)到每个Case下的所有脚本再到每个脚本下的所有命令指令分别汇总,录入对应的数据库表格中。逐条分层记录相关的测试信息信息,易于从上到下寻找出错指令,便于快速定位问题。
一种示例性的数据库表格的结构如表1所示:
表1
根据本发明实施例实现的一种测试报表生成的流程如图4所示。在该实施例中,测试产品为测试卡。
本申请在接收报表参数时,可以选择多种不同的数据库表格查询方式,例如,可基于测试人员工号、测试产品型号、测试开始时间、测试工程名称等不同方式进行查询,实现对测试工程的相关信息及其测试Case的执行情况,及每一个Case中的脚本的执行情况与每一个脚本中所有命令的执行情况,及详细信息的查询与显示。根据本发明实施例实现的一种查询功能实现的流程如图5所示。
1)Case查询
描述:每一个测试工程通常包含一个或多个Case,每一个Case执行的通过与否都对最终整个测试工程是否通过起决定性作用,只有所有执行的Case全部通过,这个测试工程才算执行通过;如果测试工程没有通过,测试人员需要知道是那一个Case出现问题,逐步深入,最终找到出错命令,然后才好做出修改。
细节说明:测试Case分为逻辑类与非逻辑类两种,两者关注点不同,所以在信息查询与显示以及最终报告的生成方面会有所不同,逻辑类注重最终的测试结果通过不通过,以及测试的通过率;非逻辑类注重在不同测试配置或测试环境下返回的结果数据与测试配置、外界环境等方面的关系。所以,在结果显示时,逻辑类主要显示出测试最终的结果通过不通过,并且统计最终的通过率等信息;非逻辑类(如测试场强、电压检测与时钟频率检测(Voltage Detector and Frequency Detector,VDFD)等)主要显示记录的测试配置信息、测试数据与测试截图等。
功能:根据测试工程信息查询时选定工程,详细罗列其执行过每一个Case的名称,Case测试的开始时间及运行情况,并可以根据查询需要勾选其中的一个Case,随后可详细查询该Case中执行的全部脚本的信息与执行结果情况。
2)测试脚本(Script)查询
描述:每个测试Case会包含多个Script,每个测试脚本的执行结果都对最终的测试结果产生影响,Script根据实际测试内容分为逻辑类脚本和非逻辑类脚本,其中,逻辑类脚本关注测试结果是否通过;非逻辑类脚本关注测试在某一个配置条件下,返回的测试数据,以此区分接下来要执行的操作。
功能:对于指定测试Case下的全部Script的测试信息与运行结果进行查询,并可以对未通过脚本进行筛选显示,便于测试人员更准确定位出错位置,并可以勾选一个想进一步查询的脚本,后台记录脚本名称及脚本的类别(逻辑类脚本或非逻辑类脚本),并根据脚本类别确定接下来对指定Script的测试运行结果查询与显示的方式。
3)测试命令(Command)查询
描述:对于逻辑类脚本决定一次测试是否通过,最终要看每一条命令是否执行正确;出错之后测试人员也要最终找到是哪一条命令出现错误,并加以改进,而非逻辑类脚本则需要关注在不同配置条件下执行的返回结果是否满足要求,进一步确定测试是否通过。
功能:逻辑类脚本查询并输出指定Script下的每一个Command的详细信息,包括命令名称、参数、实际返回值、预期返回值与最终执行结果,并可以对未通过命令进行筛选显示,非逻辑类脚本则显示测试的配置信息,及在该配置下执行的结果与最终的结论。
根据本发明实施例实现的一种测试报表生成的流程如图6所示。测试报表记录测试工程的全部重要信息,对于产品的检验检测、后期维护、产品升级改进具有指导意义,完成测试报表也是测试工作的一个重要环节。
有时测试会进行多次,涉及到测试信息合并,如:单个产品的全部或部分测试Case执行结果的合并,逻辑类若结果一致只记录其中一次,非逻辑类罗列不同测试次数的结果;多个产品的全部或部分测试Case执行结果的合并,首先记录不同产品的测试配置条件,其次,逻辑类若结果一致只合并产品型号;非逻辑类分别罗列不同产品型号的测试结果,并可以根据定义的命令权重及相关需要输出不同级别的报告。将全部测试信息汇总并进行统计,包括各个Case、脚本、命令的详细信息与运行情况,分别计算各个Case及脚本的通过率,加入必要的信息说明、错误命令提示、测试结果截图,最终结构化生成并输出一个完整的测试报表。
测试报表主要以表格统计数据,必要辅助文字说明为主,并配以测试截图与统计图,并根据测试报表对内容不同侧重的需要,展示不同方面的测试数据。测试报表的内容主要包括:
主标题:以项目工程名称为主标题。
(测试相关情况说明:连接数据库,调取相应数据,包括测试的起始时间,运行环境,卡号,测试人员等与测试相关的信息。可根据需要增加或删减。)
总体情况:连接数据库,调取相应数据,统计并记录本次测试执行的Case总数,以及Case执行结果中通过,不通过或其他情况的次数,并计算最终的通过率,以及各种结果情况所占比例。以下分别记录展示各个Case,及每个Case里面相应的脚本,及每个脚本里面相应的命令的执行情况。并根据需要辅以相关文字说明。
各个Case执行情况:每一个执行的Case名定为标题,连接数据库,调取相应数据,统计并记录此Case中脚本的总数,以及脚本的执行结果中各种情况的数目,计算出脚本的执行通过率,以及各种情况所占的比例。并根据需要辅以相关文字说明。
各个脚本执行情况:在Case总体情况之下,以此Case中的脚本名为次一级标题,并连接数据库,调取相应数据,统计并记录此脚本中命令的总数,以及命令的执行结果中各种情况的数目,计算出命令的执行通过率,以及各种情况所占的比例。并将该脚本下的全部命令执行情况展示出来。并根据需要辅以相关文字说明。
本申请以纯Java语言设计报表模板,并根据测试报表对内容不同侧重的需要,设计了内容详细程度不同的各级报表模板。每次根据需要选择不同的报表模板,将数据库中的测试信息筛选处理后,遍历全部信息填入报表模板,生成最终的测试报表。生成报表的结构如下:
第一部分:测试工程信息
工程名称:系统版本+只读存储器(Read-Only Memory,ROM)版本+相关信息+日期+产品信息
开始时间:测试平台记录的测试开始的时间。
产品型号:若测试的产品为测试卡,产品型号为实际测试卡卡号,作为今后单张卡的全部或部分测试或多张卡的全部或部分测试的测试报表合并的区分依据。
测试环境:ROM版本及测试读卡器等相关信息
测试人员:测试平台记录的执行此次测试的人员姓名
第二部分:概要测试清单
统计当次测试工程中全部脚本的测执行情况,计算通过与未通过的脚本个数与所占比率,以表格形式显示,作为测试的概要清单,格式如表2所示。
结果 | 总脚本个数 | 比率 |
通过脚本 | ||
未通过脚本 | ||
需人为判断结果 | ||
脚本总数 |
表2
第三部分:测试详细清单
从此处开始为当次测试工程的详细测试情况,根据数据库结构,逐层展示详细的测试结果;
Case名称:以本次测试中每一个执行过的Case的名称,作为标题。
Case的执行脚本的统计:计算每个Case中通过与不通过的脚本个数与所占比率,以表格形式显示,作为每一个测试Case的概要清单,格式如表3所示。
结果 | Case中脚本个数 | 比率 |
通过脚本 | ||
未通过脚本 | ||
需人为判断结果 | ||
脚本总数 |
表3
脚本的相关信息:脚本名称、配置信息、测试平台记录的脚本执行的开始,结束时间、以及最终脚本的执行情况,还有计算每个脚本中通过与不通过的命令个数与所占比率,以表格形式显示,作为每一个测试脚本的概要清单。
脚本名称:测试脚本的名称;
开始时间:脚本执行的开始时间;
配置信息:脚本的相关配置,格式如表4所示。
配置项 | 配置参数 | 配置信息 |
配置的内容项 | 脚本中配置的参数信息 | 具体配置参数 |
表4
逻辑类脚本:
测试结果:逻辑类测试脚本只重视测试结果,所以只统计执行结果,格式如表5所示。
结果 | 脚本中命令个数 | 比率 |
通过命令 | ||
未通过命令 | ||
需人为判断结果 | ||
命令总数 |
表5
命令的相关信息:罗列每一个脚本中执行的命令的相关信息;
命令名称:脚本中执行的命令名称
参数:命令配置的参数
返回值:测试平台测试过程中实际返回值
预期值:测试命令预期希望返回的数值
测试结果:最终测试结果与相关测试截图
非逻辑类脚本:
非逻辑类脚本重视的是每一个配置所得测试结果,所以以表格形式汇总记录脚本各个配置、测试返回的结果及最终结论,格式如表6所示;
参数配置 | 测试结果 | 结论 |
配置的参数信息 | 测试返回的测试信息 | 是否符合预期 |
表6
以上的所有表格均为报表系统在规定位置自动生成,汇总类表为指定大小、信息记录类的表格会根据数据库中相关数据的多少自动控制表格大小;所有的文字说明信息以及表格中数据,均为从数据库中筛选、遍历提取相关数据记录并填入指定位置,且根据需要,对记录在数据库中的测试数据,进行部分处理,使数据更清晰明了,一些指定的测试会配以测试截图,或生成一些统计图表。不管是什么样的报表,最基本的功能就是处理很多数据,不同的报表,在数据上含有的内容以及层次等都是不同的,仅仅是人工计算处理的话,那么就会存在一定的难度,关键是还不能够保证准确的程度,报表系统一个主要亮点在于会根据数据库中记录的每一条指令的重要等级程度的不同,进行筛选,并根据最终选择的报告等级类型进行呈现,详细报告显示全部详细信息,由此往后逐级递减,删去一些不重要的测试信息,这样根据着重点的不同需要自主选择报告的内容,减去了人为对于报告的筛选,提高测试效率。在实际使用过程中可以根据测试需要与变化,进行灵活地定制报表的内容。
步骤103:对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。
在一种示例性的实施例中,所述运算转换处理包括以下至少之一:
对数据类型的所述数据库数据进行逻辑运算处理,所述逻辑运算处理包括加、减、乘、除、乘方中的一个或多个;
对字符类型的所述数据库数据进行合并、删减或替换处理;
对任意类型的所述数据库数据进行格式转化处理。
在一种示例性的实施例中,所述报表展示格式包括以下至少之一:表格、统计图、文本文字。
在该实施例的一示例中,当所述报表展示格式为所述统计图时,所述生成报表包括:
使用Java生成统计图函数,遍历所述处理后数据中的数据点,并根据所述数据点逐个生成所述统计图中对应的坐标点。
有一类特殊的统计图,专业称为shmoo扫描图,如前文所述的VDFD测试,使用专用的测试设备进行测试,主要会根据设定给出一组电压与工作时钟频率组合,电压与工作时钟频率从小到大遍历组合,如果测试样卡可以工作显示为绿点,反之为红点。类似的shmoo扫描图还包括场强下限扫描等等,形式上大同小异。由于是遍历组合所以数据点会很多,Java生成统计图函数受到参数里面数据点个数的限制,无法直接生成,本申请通过使用Java生成统计图函数,遍历所述处理后数据中的数据点,并根据所述数据点逐个生成所述统计图中对应的坐标点,不需要预先明确插入表格的数据的数量来设置表格控件的大小,可以根据任意个数的数据点生成相应的统计图。
实施例二:计算机可读存储介质
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的报表生成方法的步骤。
实施例三:报表生成装置
本发明实施例还提供了一种报表生成装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的报表生成方法的步骤。
实施例四:报表生成装置
如图7所示,本发明实施例还提供了一种报表生成装置,包括参数接收模块701、数据提取模块702和报表生成模块703,其中:
所述参数接收模块701,用于接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;
所述数据提取模块702,用于根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;
所述报表生成模块703,用于对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。
在一种示例性的实施例中,所述报表展示格式包括以下至少之一:表格、统计图、文本文字。
在一种示例性的实施例中,当所述报表展示格式为所述统计图时,所述生成报表包括:
使用Java生成统计图函数,遍历所述处理后数据中的数据点,并根据所述数据点逐个生成所述统计图中对应的坐标点。
在一种示例性的实施例中,所述报表生成模块703的运算转换处理包括以下至少之一:
对数据类型的所述数据库数据进行逻辑运算处理,所述逻辑运算处理包括加、减、乘、除、乘方中的一个或多个;
对字符类型的所述数据库数据进行合并、删减或替换处理;
对任意类型的所述数据库数据进行格式转化处理。
在一种示例性的实施例中,所述报表为测试报表,所述测试报表的内容包括以下至少之一:
进行测试通过率的统计计算;
输出测试信息,所述测试信息包括测试的参数配置、运行情况和测试结果返回值;
对测试结果进行整合生成统计图表;
进行错误命令提示或输出测试结果截图。
在一种示例性的实施例中,所述提取的数据库数据为测试数据,所述测试数据包括以下至少之一:
测试案例信息、测试脚本信息、测试命令信息;
其中,每个测试案例包含一个或多个测试脚本,每个测试脚本包括一条或多条测试命令。
实施例五:报表生成方法
由于对于测试数据的保密性的需要,以及报表生成系统的稳定性与安全性也有相当高的要求,本发明实施例基于客户机/服务器(Client/Server,C/S)架构,使用Java作为开发工具,利用Swing组件进行可视化界面的设计,使用了Java的一些第三方报表控件,丰富报表内容,并且根据测试报表内容的不同需求,自行设计了不同的报表模板,可以根据数据库中所选择的测试数据,依据不同需要选择报表模板,最终快速地生成格式规范统一的测试报表。
根据本发明实施例的报表生成方法,主要包括如下步骤:
1)后台数据的抽取
如图8所示,后台数据的抽取流程主要包括如下步骤:
获取报表参数:主要是前台图形用户界面(Graphical User Interface,GUI)向后台进行传参,传递的参数包括数据库地址信息、表的名称等;
数据库的连接:JDBC连接数据库;
合成SQL语句:由于组成SQL语句的字符可能来自不同地方,为了便于提取,可以将它们赋值给Java的一个字符串,然后将字符串拼接成标准的SQL语句;
执行SQL语句:JDBC连接数据库后,执行SQL语句,对指定信息进行筛选;
获取结果集:获取SQL语句的执行结果;
返回结果集:将获取SQL语句的执行结果放入一个中间集;
在该步骤中,在前台GUI界面上选择或输入指定的数据库地址、表的名称,将其整合成SQL语句,由于组成SQL语句的字符通常来自多个输入窗口,为了方便,可以先将这些字符赋值给Java的一个字符串。然后通过JDBC连接后台数据库,执行SQL语句,对指定信息进行筛选,获取SQL语句的执行结果,再将执行结果返回到前台GUI界面上。
2)数据项的运算转换处理
如图9所示,数据项的运算转换处理流程主要包括如下步骤:
获得中间集中的数据:从中间集中取值;
进行数据运算转换:数据类型的数据加减乘除等运算函数,字符类型合并或删减,替换等,或数据类型的转换;
重新组装数据:针对处理后数据,选择在报表中的展示形式:表格,统计图,还是文本文字等;
返回处理后数据:向前台GUI界面返回处理后数据。
在该步骤之前,可以先将获取的SQL语句的执行结果放入一个中间集中,然后在该步骤中,从中间集中取值进行运算转换处理。针对处理后数据选择合适的报表展示格式。
3)前台生成报表展示
如图10所示,前台生成报表展示的流程主要包括如下步骤:
选择报表模板:选择报表模板;
获取处理后数据:从中间集中提取处理后数据;
遍历数据项、生成报表:依据报表模板生成报表。
在该步骤中,提取处理后的数据,根据选择的报表展示格式填入报表模板,生成报表。
本申请利用纯Java语言编写,不需要任何其他插件,易于部署、扩展和更新。Java平台可以直接连接数据库,使用SQL语言对数据进行遍历筛选,并可以根据需要转化数据的格式,方便数据的处理,操作简单,根据提前设置的报表模板,遍历全部测试数据,自动填入生成表格以及对数据的分析统计、说明文字和统计图表等;报表生成的整个过程,只需要人为地选择一条测试记录,以及确定的报告的储存路径,其他不再需要任何的人为操作(例如,一个操作窗口下,选择勾选一条测试记录,点击生成按钮,弹出类似Microsoft OfficeWord保存时的窗口,选择一个路径,点击保存,报告生成完成后会有提示报告生成完成,即可在相应路径下找到该报告)。此外本申请的优点就是作为测试平台的一个专属模块,专门负责将测试平台所生成的记录测试结果的数据库整合成测试报告,专一性强,可对不同测试的侧重点不同进行着重展示,更好地反映测试结果,便于问题定位;还可以根据测试报告对内容的不同需要,生成内容详细程度不同的各级报告。并且操作简单,随着测试平台一起安装,后台控制数据库连接,不需要提前人为地设置好数据库信息,以及相关的表的信息,保护了数据库的私密信息,并且可根据测试的关注点不同选择报告的内容详细与否,将测试数据逐条处理,并写入测试报告中,使得测试结果一目了然,免去了人为对于大量测试数据的整理与汇总,大大节省了数据处理汇总的时间,并且很大程度上提升了测试的效率,并且提升了测试报告的准确性。并且加入了可视化的查询界面,可对指定信息进行查询,方便问题定位。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种报表生成方法,其特征在于,包括:
接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;
根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;
对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。
2.根据权利要求1所述的报表生成方法,其特征在于,所述报表模板根据详细程度分为多个级别。
3.根据权利要求1所述的报表生成方法,其特征在于,所述报表展示格式包括以下至少之一:表格、统计图、文本文字。
4.根据权利要求3所述的报表生成方法,其特征在于,当所述报表展示格式为所述统计图时,所述生成报表包括:
使用Java生成统计图函数,遍历所述处理后数据中的数据点,并根据所述数据点逐个生成所述统计图中对应的坐标点。
5.根据权利要求1所述的报表生成方法,其特征在于,所述运算转换处理包括以下至少之一:
对数据类型的所述数据库数据进行逻辑运算处理,所述逻辑运算处理包括加、减、乘、除、乘方中的一个或多个;
对字符类型的所述数据库数据进行合并、删减或替换处理;
对任意类型的所述数据库数据进行格式转化处理。
6.根据权利要求1所述的报表生成方法,其特征在于,所述报表为测试报表,所述测试报表的内容包括以下至少之一:
进行测试通过率的统计计算;
输出测试信息,所述测试信息包括测试的参数配置、运行情况和测试结果返回值;
对测试结果进行整合生成统计图表;
进行错误命令提示或输出测试结果截图。
7.根据权利要求1所述的报表生成方法,其特征在于,所述提取的数据库数据为测试数据,所述测试数据包括以下至少之一:
测试案例信息、测试脚本信息、测试命令信息;
其中,每个测试案例包含一个或多个测试脚本,每个测试脚本包括一条或多条测试命令。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至权利要求7中任一项所述的报表生成方法的步骤。
9.一种报表生成装置,其特征在于,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如权利要求1至权利要求7中任一项所述的报表生成方法的步骤。
10.一种报表生成装置,其特征在于,包括参数接收模块、数据提取模块和报表生成模块,其中:
所述参数接收模块,用于接收报表参数和报表模板,根据所述报表参数和报表模板生成数据库查询语句;
所述数据提取模块,用于根据所述报表参数建立数据库连接,执行所述数据库查询语句以提取数据库数据;
所述报表生成模块,用于对提取的数据库数据进行运算转换处理,对处理后数据选择报表展示格式并填入报表模板,以生成报表进行展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281461.3A CN110083814A (zh) | 2019-04-09 | 2019-04-09 | 一种报表生成方法和装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281461.3A CN110083814A (zh) | 2019-04-09 | 2019-04-09 | 一种报表生成方法和装置、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110083814A true CN110083814A (zh) | 2019-08-02 |
Family
ID=67414717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910281461.3A Pending CN110083814A (zh) | 2019-04-09 | 2019-04-09 | 一种报表生成方法和装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083814A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489462A (zh) * | 2019-08-23 | 2019-11-22 | 行吟信息科技(上海)有限公司 | 一种自动生成数据报告的方法及系统 |
CN110704394A (zh) * | 2019-09-03 | 2020-01-17 | 苏宁云计算有限公司 | 报表配置修改方法及装置 |
CN111428459A (zh) * | 2020-03-27 | 2020-07-17 | 中国建设银行股份有限公司 | 一种员工交易量的统计方法及装置 |
CN112380140A (zh) * | 2020-12-08 | 2021-02-19 | 安徽江淮汽车集团股份有限公司 | 智能座舱数据测试方法及系统 |
CN112800009A (zh) * | 2021-01-28 | 2021-05-14 | 重庆富民银行股份有限公司 | 基于兼容配置的用于自动化测试数据的集中管理系统 |
CN114510410A (zh) * | 2020-11-16 | 2022-05-17 | 国际商业机器公司 | 合成去识别的测试数据 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088650A1 (en) * | 2002-10-30 | 2004-05-06 | Actuate Corporation | Methods and apparatus for generating a spreadsheet report template |
CN101866350A (zh) * | 2010-05-11 | 2010-10-20 | 中兴通讯股份有限公司 | 报表生成方法、装置及web服务器 |
CN102737031A (zh) * | 2011-04-06 | 2012-10-17 | 鸿富锦精密工业(深圳)有限公司 | 测试数据报表整理系统及方法 |
CN109471890A (zh) * | 2018-10-16 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 报表文件的生成方法、终端设备及介质 |
-
2019
- 2019-04-09 CN CN201910281461.3A patent/CN110083814A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088650A1 (en) * | 2002-10-30 | 2004-05-06 | Actuate Corporation | Methods and apparatus for generating a spreadsheet report template |
CN101866350A (zh) * | 2010-05-11 | 2010-10-20 | 中兴通讯股份有限公司 | 报表生成方法、装置及web服务器 |
CN102737031A (zh) * | 2011-04-06 | 2012-10-17 | 鸿富锦精密工业(深圳)有限公司 | 测试数据报表整理系统及方法 |
CN109471890A (zh) * | 2018-10-16 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 报表文件的生成方法、终端设备及介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489462A (zh) * | 2019-08-23 | 2019-11-22 | 行吟信息科技(上海)有限公司 | 一种自动生成数据报告的方法及系统 |
CN110489462B (zh) * | 2019-08-23 | 2022-06-03 | 行吟信息科技(上海)有限公司 | 一种自动生成数据报告的方法及系统 |
CN110704394A (zh) * | 2019-09-03 | 2020-01-17 | 苏宁云计算有限公司 | 报表配置修改方法及装置 |
CN111428459A (zh) * | 2020-03-27 | 2020-07-17 | 中国建设银行股份有限公司 | 一种员工交易量的统计方法及装置 |
CN114510410A (zh) * | 2020-11-16 | 2022-05-17 | 国际商业机器公司 | 合成去识别的测试数据 |
CN112380140A (zh) * | 2020-12-08 | 2021-02-19 | 安徽江淮汽车集团股份有限公司 | 智能座舱数据测试方法及系统 |
CN112800009A (zh) * | 2021-01-28 | 2021-05-14 | 重庆富民银行股份有限公司 | 基于兼容配置的用于自动化测试数据的集中管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083814A (zh) | 一种报表生成方法和装置、计算机可读存储介质 | |
CN110764753B (zh) | 一种业务逻辑代码生成方法、装置、设备及存储介质 | |
US9960974B2 (en) | Dependency mapping among a system of servers, analytics and visualization thereof | |
CN101996131A (zh) | 基于xml封装关键字的gui自动测试方法及自动测试平台 | |
US9477543B2 (en) | Installation health dashboard | |
US7093207B1 (en) | Data analysis flow engine | |
US20130014084A1 (en) | International Testing Platform | |
US7926024B2 (en) | Method and apparatus for managing complex processes | |
CN103761189B (zh) | 一种测试用例管理方法及系统 | |
JP2011503681A (ja) | データ記録を一致させるシステムの分析のための方法およびシステム | |
US20090030661A1 (en) | Three-Dimensional Process Planning | |
CN110119395B (zh) | 大数据治理中基于元数据实现数据标准与数据质量关联处理的方法 | |
CN110515830A (zh) | 操作轨迹可视化方法、装置、设备及存储介质 | |
CN111078482A (zh) | 通讯导航设备测试系统、方法、设备和可读存储介质 | |
CN110990274B (zh) | 一种生成测试案例的数据处理方法、装置及系统 | |
CN110377524B (zh) | 报表系统的测试方法、装置、系统及介质 | |
CN104375943A (zh) | 一种基于静态模型的嵌入式软件黑盒测试用例生成方法 | |
CN113590102B (zh) | 一种零代码快速软件开发方法、系统、介质和设备 | |
CN109426604A (zh) | 代码开发的监控方法及设备 | |
CN111190814B (zh) | 软件测试用例的生成方法、装置、存储介质及终端 | |
CN115840567A (zh) | 一种应用编辑方法及相关设备 | |
CN114416516A (zh) | 基于截图的测试用例及测试脚本生成方法、系统及介质 | |
US7992126B2 (en) | Apparatus and method for quantitatively measuring the balance within a balanced scorecard | |
CN117472988A (zh) | 一种流程实例的日志查看方法、装置、设备及可读介质 | |
CN109492036A (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 |