CN110795475A - 报表生成方法、装置、计算机设备和存储介质 - Google Patents
报表生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110795475A CN110795475A CN201910904968.XA CN201910904968A CN110795475A CN 110795475 A CN110795475 A CN 110795475A CN 201910904968 A CN201910904968 A CN 201910904968A CN 110795475 A CN110795475 A CN 110795475A
- Authority
- CN
- China
- Prior art keywords
- report
- data
- metadata
- processed
- style
- 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
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/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种报表生成方法、装置、计算机可读存储介质和计算机设备,所述方法包括:当接收到报表生成请求时,读取所述报表生成请求对应的报表元数据,所述报表元数据包括取数逻辑元数据和处理逻辑元数据;根据所述取数逻辑元数据从数据库中获取对应的待处理数据;按照所述处理逻辑元数据对所述待处理数据进行处理,得到处理后数据;获取在所述报表配置页面配置的新报表样式;将所述处理后数据按照所述新报表样式生成报表。本申请提供的方案可以实现当用户需要使用新样式报表时,可以在报表配置页面进行报表的新样式配置,不需要二次开发即可得到新样式,进而根据配置的新样式生成报表,从而提高了报表生成的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种报表生成方法、装置、计算机设备和存储介质。
背景技术
在软件系统中,通常需要按不同的维度对数据进行处理,然后将不同维度的数据以报表的形式展示出来,在展示过程中,可以按照实际需求将报表以不同的样式进行呈现。报表的样式通常是通过编写对应的代码来实现的,软件系统一旦开发完成,报表的样式就被确定下来。
然而,当用户需要使用新样式的报表时,需要二次开发才能得到新样式,进而根据所得到的新样式生成报表,从而导致报表生成效率偏低。
发明内容
基于此,有必要针对新样式的报表生成效率低的技术问题,提供一种报表生成方法、装置、计算机设备和存储介质。
一种报表生成方法,所述方法包括:
当接收到报表生成请求时,读取所述报表生成请求对应的报表元数据,所述报表元数据包括取数逻辑元数据和处理逻辑元数据;
根据所述取数逻辑元数据从数据库中获取对应的待处理数据;
按照所述处理逻辑元数据对所述待处理数据进行处理,得到处理后数据,所述处理逻辑元数据在报表配置页面进行配置所得;
获取在所述报表配置页面配置的新报表样式;
将所述处理后数据按照所述新报表样式生成报表。
在一个实施例中,所述根据所述取数逻辑元数据从数据库中获取对应的待处理数据,包括:
根据所述取数逻辑元数据,通过多个线程从数据库中分批获取待处理数据;所述按照所述处理逻辑元数据对所述待处理数据进行处理包括:
按照所述处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果;
对所得的计算结果按照所述类别进行汇总,得到汇总数据。
在一个实施例中,在接收到报表生成请求之前,所述方法还包括:
在所述报表配置页面配置报表显示界面、取数逻辑和处理逻辑;
根据所述取数逻辑和所述处理逻辑生成报表元数据。
在一个实施例中,所述在所述报表配置页面配置报表显示界面、取数逻辑和处理逻辑,包括:
在所述报表配置页面配置报表显示界面;
根据所配置的报表显示界面中的数据字段确定目标数据和基础数据,所述目标数据为报表所要展示的数据,所述基础数据是数据库表存储的数据;
根据所确定的目标数据和基础数据获得取数逻辑和处理逻辑。
在一个实施例中,所述报表元数据还包括字段元数据;所述将所述处理后数据按照所述新报表样式生成报表,包括:
根据所述字段元数据,将所述处理后数据写入到所述新报表样式的表格中对应的字段上,得到对应的报表。
在一个实施例中,将所述处理后数据按照所述新报表样式生成报表之后,所述方法还包括:
当接收到对所生成的报表进行操作的指令时,对所述报表进行刷新、联查、导出和打印中的至少一种处理。
一种报表生成装置,所述装置包括:
报表元数据读取模块,用于当接收到报表生成请求时,读取所述报表生成请求对应的报表元数据,所述报表元数据包括取数逻辑元数据和处理逻辑元数据;
待处理数据获取模块,用于根据所述取数逻辑元数据从数据库中获取对应的待处理数据;
待处理数据处理模块,用于按照所述处理逻辑元数据对所述待处理数据进行处理,得到处理后数据,所述处理逻辑元数据在报表配置页面进行配置所得;
新报表样式获取模块,用于获取在所述报表配置页面配置的新报表样式;
报表生成模块,用于将所述处理后数据按照所述新报表样式生成报表。
在一个实施例中,所述待处理数据获取模块还用于:
根据所述取数逻辑元数据,通过多个线程从数据库中分批获取待处理数据;所述按照所述处理逻辑元数据对所述待处理数据进行处理包括:
按照所述处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果;
对所得的计算结果按照所述类别进行汇总,得到汇总数据。
在一个实施例中,所述装置还包括:
报表配置模块:用于在所述报表配置页面配置报表显示界面、取数逻辑和处理逻辑;
报表元数据生成模块:用于根据所述取数逻辑和所述处理逻辑生成报表元数据。
在一个实施例中,所述报表配置模块还用于:
在所述报表配置页面配置报表显示界面;
根据所配置的报表显示界面中的数据字段确定目标数据和基础数据,所述目标数据为报表所要展示的数据,所述基础数据是数据库表存储的数据;
根据所确定的目标数据和基础数据获得取数逻辑和处理逻辑。
在一个实施例中,所述报表元数据还包括字段元数据;所述报表生成模块还用于:
根据所述字段元数据,将所述处理后数据写入到所述新报表样式的表格中对应的字段上,得到对应的报表。
在一个实施例中,所述装置还包括:
报表处理模块:用于当接收到对所生成的报表进行操作的指令时,对所述报表进行刷新、联查、导出和打印中的至少一种处理。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述任一项所述报表生成方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一项所述报表生成方法的步骤。
上述报表生成方法、装置、计算机可读存储介质和计算机设备,通过读取报表生成请求对应的报表元数据,其中报表元数据包括取数逻辑元数据和处理逻辑元数据;然后根据取数逻辑元数据从数据库中获取待处理数据,并按照处理逻辑元数据对其进行处理,得到处理后数据,然后获取在报表配置页面配置的新报表样式,并将处理后数据按照新报表样式生成报表。从而当用户需要使用新样式报表时,可以在报表配置页面进行报表的新样式配置,不需要二次开发即可得到新样式,进而根据配置的新样式生成报表,从而提高了报表生成的效率。
附图说明
图1为一个实施例中报表生成方法的应用环境图;
图2为一个实施例中报表生成方法的流程示意图;
图3为一个实施例中数据处理步骤的流程示意图;
图4为一个示例中新报表样式配置的流程示意图;
图5为一个示例中报表生成方法的流程示意图;
图6为一个实施例中报表生成装置的结构框图;
图7为另一个实施例中报表生成装置的结构框图;
图8为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中报表生成方法的应用环境图。参照图1,该报表生成方法应用于报表生成系统。该报表生成系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种报表生成方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明。参照图2,该报表生成方法具体包括如下步骤:
S202,当接收到报表生成请求时,读取报表生成请求对应的报表元数据,报表元数据包括取数逻辑元数据和处理逻辑元数据。
其中,报表生成请求中包含有报表名称和报表编号中的至少一种。报表元数据是完整描述报表的数据,它可以描述报表的页面布局、字段、取数逻辑、数据处理逻辑、权限、操作等信息。报表元数据包括取数逻辑元数据和处理逻辑元数据。其中,取数逻辑元数据用于从数据库表中获取基础数据,基础数据是指用于生成报表所需的数据。处理逻辑元数据包含有对获取到的基础数据所要进行的处理逻辑,比如对获取到的数据进行分组计算、关联和汇总中的一种或多种处理。
在一个实施例中,服务器接收到报表生成请求,然后对报表生成请求进行解析,获得报表名称和报表编号中的至少一种,然后根据报表名称或报表编号获取对应的报表元数据。
在一个实施例中,在接收到报表生成请求之前,服务器保存用户在报表配置页面配置的新报表样式,其中报表样式包含报表的标题、报表头、报表体。用户可以通过对模板报表样式作调整,如插入行、插入列、合并单元格等操作,实现新报表样式的配置。当检测到用户通过对模板报表样式作调整时,根据调整后报表中的数据字段确定所需的目标数据,依据该目标数据确定对应的基础数据,按照基础数据确定取数逻辑,并根据目标数据和基础数据之间的关系得到相应的处理逻辑。其中,目标数据是报表所要展示的数据,可以是基础数据,也可以是由基础数据处理后得到的数据,基础数据是数据库表存储的数据。例如,报表中需要展示“姓名项目”、“性别项目”和“年龄项目”,可以确定该报表所需的目标数据为“姓名”、“性别”和“年龄”,根据数据库表中存储有“姓名”、“性别”和“出生日期”的数据,确定“姓名”、“性别”是基础数据,可以直接从数据库表中获取,“年龄”可以根据基础数据“出生日期”计算之后得出。当新报表样式配置完成后,在展示的配置页面上,当用户点击配置保存按钮时,终端生成配置保存命令,并将该配置保存命令发送至服务器。服务器接收到配置保存命令之后,将用户配置的新报表样式和相应的取数逻辑和处理逻辑用JSON(JavaScript Object Notation,JS对象简谱)格式保存在数据库中,然后根据保存取数逻辑和处理逻辑生成报表元数据。其中JSON是一种轻量级的数据交换格式。
在一个实施例中,报表元数据还包括的字段元数据,其中字段元数据包括数据元素、数据元素对应的数据类型和数据元素与报表单元格的映射关系,数据元素可以是报表名称、报表编号、报表类别、编制人员、编制日期等。例如新报表样式的编号为001,在字段元数据中报表编号对应的数据元素为“001”,对应的数据类型为数值型,在新报表样式中对应的单元格坐标为(1,1);新报表样式的配置人为张三,在字段元数据中报表配置人对应的数据元素为“张三”,对应的数据类型为字符型,在新报表样式中对应的单元格坐标为(1,2);新报表样式的配置日期为YYYY年MM月DD日,在字段元数据中报表配置日期对应的数据元素为“YYYYMMDD”,对应的数据类型为日期型,在新报表样式中对应的单元格坐标为(1,3)。
S204,根据取数逻辑元数据从数据库中获取对应的待处理数据。
其中,取数逻辑元数据可以描述数据库表存储位置信息和数据查询语句,数据查询语句中包含有返回字段、查询条件等信息,以便从数据库表中获取基础数据(即返回字段),以便在对基础数据处理之后生成报表。
在一个实施例中,取数逻辑元数据还可以描述取数方式为多线程或多进程取数,服务器根据取数逻辑元数据在数据库中获取对应的待处理数据时,可以采用多线程同时取数或者多进程并行取数的方式。例如:服务器根据取数逻辑元数据,采用4个线程同时在数据库中取数。其中,待处理数据属于基础数据。
在一个实施例中,取数逻辑元数据还可以描述取数方式为分批获取待处理数据。例如:数据库中符合取数逻辑元数据的待处理数据有12万条,则根据取数逻辑元数据,服务器第一次从数据库中获取4万条待处理数据,然后在从数据库中获取4万条待处理数据,最后从再从数据库中获取4万条待处理数据。又例如:数据库中符合取数逻辑元数据的待处理数据有12万条,则根据取数逻辑元数据,服务器第一次从数据库中获取5万条待处理数据,然后在从数据库中获取4万条待处理数据,最后从再从数据库中获取3万条待处理数据。
在一个实施例中,根据取数逻辑元数据,服务器每次从数据库中获取待处理数据之后,将所获取的待处理数据放入缓存中,以便后续对数据进行处理。这里缓存可以用来存放从数据库中获取的待处理数据。
在一个实施例中,根据取数逻辑元数据,服务器在数据库中获取对应的待处理数据时,还可以一边获取待处理数据,一边对已经获取到的待处理数据进行处理。例如:则根据取数逻辑元数据,服务器第一次从数据库中获取4万条待处理数据,然后对所获取的4万条待处理数据进行处理,在处理的过程中,同时还从数据库中获取下一批4万条待处理数据,直至获取到最后一批待处理数据,并对最后一批待处理数据进行处理。
在一个实施例中,根据取数逻辑元数据,服务器在数据库中获取对应的待处理数据时,对已经获取到的待处理数据进行初步处理之后,再从数据库中获取下一批待处理数据。例如:根据取数逻辑元数据,服务器第一次从数据库中获取4万条待处理数据,然后对所获取的4万条待处理数据进行处理。当完成数据处理后,再从数据库中获取下一批4万条待处理数据,对下一批待处理数据进行处理。当完成数据处理后,接着从数据库中继续获取下一批4万条待处理数据,直至获取到最后一批待处理数据并进行处理。
上述实施例中,按照取数逻辑元数据,服务器采用多线程、分批从数据库中获取待处理数据,一方面提高了获取待处理数据的速度,另一方面还可以实现一边从数据库中获取待处理数据,一边对已经获取的待处理数据的进行处理,提高了数据处理的速度,进而提高了报表生成速度。
S206,按照处理逻辑元数据对待处理数据进行处理,得到处理后数据,处理逻辑元数据在报表配置页面进行配置所得。
其中,处理逻辑元数据包含有对待处理数据所要进行的处理逻辑,处理逻辑包括处理手段和处理顺序,处理手段可以是四则运算、分组计算、求最值、排序、关联和汇总其中一种或几种处理手段。处理顺序可以指在使用上述几种处理手段对待处理数据进行处理时的先后顺序。
在一个实施例中,当所获取的待处理数据为报表所要展示的基本信息,如年龄、性别等信息时,服务器根据处理逻辑元数据描述的处理手段,确定不需要对所获取的待处理数据进行处理,可以直接将该待处理数据放入集中缓存中,以便生成报表。这里集中缓存用于存放处理后数据。
在一个实施例中,当报表所要展示的数据需要服务器对待处理数据进行一次四则运算处理即可得到时,则服务器根据处理逻辑元数据描述的处理手段,对该待处理数据进行一次四则运算处理,并将所得的处理后数据放入集中缓存中,以便生成报表。例如报表所要展示的是年龄,获取到的待处理数据为出生日期,根据处理逻辑元数据进行一次四则运算处理,得到年龄,将计算出的年龄放入集中缓存中,以便生成报表。
在一个实施例中,服务器在获取到待处理数据之后,可以直接对不同的待处理数据进行关联,得到关联结果;也可以在对待处理数据进行处理之后,对处理后数据进行关联,得到关联结果;还可以在对部分待处理数据进行处理后,将处理后数据和其余未处理的待处理数据进行关联,得到关联结果。服务器在对数据进行关联之后,将关联结果存入集中缓存中,以便生成报表。
S208,获取在报表配置页面配置的新报表样式。
S210,将处理后数据按照新报表样式生成报表。
在一个实施例中,新报表样式还配置了报表单元格和处理后数据之间的映射关系,该映射关系用字段元数据进行描述。服务器接收到报表生成请求之后,对报表生成请求进行解析,获得报表名称和报表编号中的至少一种,然后根据报表名称或报表编号获取对应的新报表样式,并读取报表元数据中字段元数据,然后根据新报表样式对应的字段元数据,将存放在集中缓存中的处理后数据排序输出到对应的报表单元格,生成新报表样式的报表。
在一个实施例中,在生成报表并将报表展示到前端页面之后,当服务器接收到对该报表的操作指令时,对该报表进行刷新、联合查询、导出和打印中的至少一种处理。
上述实施例中,服务器通过读取报表生成请求对应的报表元数据,其中报表元数据包括取数逻辑元数据和处理逻辑元数据;然后根据取数逻辑元数据从数据库中获取待处理数据,并按照处理逻辑元数据对其进行处理,得到处理后数据,然后获取在报表配置页面配置的新报表样式,并将处理后数据按照新报表样式生成报表。从而当用户需要使用新样式报表时,可以在报表配置页面进行报表的新样式配置,不需要二次开发即可得到新样式,进而根据配置的新样式生成报表,从而提高了报表生成的效率。
在一个实施例中,报表所要展示的数据需要通过对待处理数据进行多次处理之后才可以得到,如图3所示,S206具体可以包括以下步骤:
S302,按照处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果。
其中,分组是按照类别进行分组,类别根据具体场景可以是不同的数据科目,例如:性别、年龄段、数量和单价等。分组计算可以是分组求和、分组求平均值、分组计数、分组求最大值或最小值等。
在一个实施例中,服务器可以将缓存中的待处理数据中分批取出,根据处理逻辑元数据描述的处理手段和处理顺序对取出的待处理数据进行处理。
在一个实施例中,服务器从缓存中取出第一批待处理数据之后,根据处理逻辑元数据描述的处理手段对该批待处理数据进行分组,其中分组可以按照科目或者类别进行分组。然后对分组后的待处理数据进行计算,得到第一批分组计算结果。接着再从缓存中取出第二批待处理数据进行分组计算,得到第二批分组计算结果,依此类推,直至将缓存中所有待处理数据取出并获得分组计算结果。
例如:报表中要展示其中部分数据是甲公司YYYY年各分公司职员工资总额,根据取数逻辑元数据获取的待处理数据是甲公司YYYY年职员工资数据,该数据中包含有员工姓名、部门和员工在YYYY年总工资等信息,甲公司有A、B、C和D四个部门,缓存中存放有1400条服务器从数据库中所获取的职员工资数据。根据处理逻辑元数据描述的处理手段和处理顺序,服务器将缓存中存放的1400条待处理数据分批取出,并对每批所取出的待处理数据进行分组计算。服务器第一次从缓存中取出800条待处理数据,其中A部门有600条,B部门有200条,然后按照部门对该800条职员工资数据进行分组,得到A和B两个数据分组,然后对A组的600条工资数据和B组的200条工资数据进行求和计算,得到第一批各个分组的计算结果。接着服务器从缓存中取出第二小批职员工资数据,然后对第二批职员工资数据进行分组计算,依此类推,直至对将缓存中所有职员工资数据取出并进行分组计算得到分组计算结果。
S304,对所得的计算结果按照类别进行汇总,得到汇总数据。
在一个实施例中,服务器在对多批待处理数据进行分组计算得到多批分组计算结果之后,将所得的计算结果按照分组的类别进行汇总,得到汇总计算结果。其中,汇总具体是指:若分组计算是分组求和,则对应的汇总是将所有批次的计算结果继续求和,若分组计算是求平均值,则对应的汇总是再对所有批次的计算结果求平均值,若分组计算是求最大值或最小值,则对应的汇总是对所有批次的计算结果求最大值或最小值。
在一个实施例中,服务器在对每次计算所得的计算结果数据进行汇总得到汇总结果之后,将汇总结果存入集中缓存中,以便生成报表。
对于上述实施例进行举例说明:
多批分组计算:报表中要展示数据是甲公司YYYY年各分公司职员工资总额,根据取数逻辑元数据获取的待处理数据是甲公司YYYY年职员工资数据,该数据中包含有员工姓名、部门、员工YYYY年总工资等信息,甲公司有A、B、C和D四个部门,服务器从缓存中取出的第一批职员工资数据有800条,其中,A部门有600条,B部门有200条,然后按照部门将该批职员工资数据分成A和B两个数据分组,并对A组的600条工资数据和B组的200条工资数据进行求和计算,得到的计算结果记为A1和B1。服务器从缓存中取出的第二批职员工资数据有800条,其中,B部门有300条,C部门有400条,D部门有100条,然后按照部门将该批职员工资数据分成A、B和C三个数据分组,并对A、B和C三组的职员工资数据进行求和计算,得到的计算结果记为B2、C2和D2。服务器从缓存中取出的第三批职员工资数据有200条,然后按照部门将该批职员工资数据分成D组一个数据分组,并对D组的职员工资数据进行求和计算,得到的计算结果记为D3。
同组计算结果汇总:三批分组计算中,按照部门进行分组求和计算,计算结果为“A1、B1”、“B2、C2、D2”和“D3”,将三批计算结果汇总,即A组的汇总结果为“A1”,B组的汇总结果为“B1+B2”,C组的汇总结果为“C2”,D组的汇总结果为“D2+D3”。在得到汇总计算结果之后,将所得的A、B、C和D四个分组的汇总结果放入集中缓存中,以便生成报表。
上述实施例中,服务器按照处理逻辑元数据,分批从缓存中取出待处理数据,然后将取出的待处理数据按照类别进行分组计算,并对所得的计算结果按照分组类别进行汇总,提高了服务器对待处理数据的处理速度,并且在得到汇总数据之后将其放入集中缓存中,以便在生成报表时,直接将所得汇总数据直接输出,便可生成报表,从而提高了报表生成的效率。
作为一个示例,如图4所示,在报表配置界面,用户可以配置新的报表样式(即设计期报表),当新报表样式配置完成后,在展示的配置页面上,当用户点击配置保存按钮时,终端生成配置保存命令,并将该配置保存命令发送至服务器。服务器接收到配置保存命令之后,将用户配置的新报表样式和相应的取数逻辑和处理逻辑用JSON格式保存在数据库中,然后根据保存取数逻辑和处理逻辑生成报表元数据。
如图5所示,在报表新样式配置保存之后,用户可以通过URL(Uniform ResourceLocator,统一资源定位符)点击上述配置的报表名称,终端生成报表生成请求。服务器在接收到报表生成请求之后,对报表生成请求进行解析,获得报表名称和报表编号中的至少一种,然后根据报表名称或报表编号获取对应新报表样式和报表元数据;然后根据报表元数据中的取数逻辑元数据,从数据库中获取待处理数据;服务器在获取到待处理数据之后,对待处理数据进行处理,得到处理后数据,并将处理后数据放入集中缓存中;然后根据报表元数据中的字段元数据,服务器将集中缓存中的处理后数据映射到所获取的新报表样式中,从而生成报表。其中获取待处理数据、对待处理数据进行处理和将处理后数据输出可以在流式计算框架中完成,流式计算框架可以实现并行、关联、合并和统计汇总等计算。利用流式计算框架,在生成报表时,分批并行进行报表取数和计算。例如:流式计算框架中有A、B、C和D四个计算节点,其中A节点从数据库中取一小批数据放入内存中,进行计算,计算完后放入下一运算节点B,然后再取一小批数据进行计算;B节点在接收到数据后,进行汇总计算,计算完后把汇总结果放入计算节点C;C节点在接收到数据后存入集中缓存中;最终所有节点计算完后在D节点对缓存中的数据进行排序输出。
图2-5为一个实施例中报表生成方法的流程示意图。应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种报表生成装置,装置包括:报表元数据读取模块602,待处理数据获取模块604,待处理数据处理模块606,新报表样式获取模块608,报表生成模块610;其中:
报表元数据读取模块602,用于当接收到报表生成请求时,读取报表生成请求对应的报表元数据,报表元数据包括取数逻辑元数据和处理逻辑元数据;
待处理数据获取模块604,用于根据取数逻辑元数据从数据库中获取对应的待处理数据;
待处理数据处理模块606,用于按照处理逻辑元数据对待处理数据进行处理,得到处理后数据,处理逻辑元数据在报表配置页面进行配置所得;
新报表样式获取模块608,用于获取在报表配置页面配置的新报表样式;
报表生成模块610,用于将处理后数据按照新报表样式生成报表。
上述实施例中,服务器通过读取报表生成请求对应的报表元数据,其中报表元数据包括取数逻辑元数据和处理逻辑元数据;然后根据取数逻辑元数据从数据库中获取待处理数据,并按照处理逻辑元数据对其进行处理,得到处理后数据,然后获取在报表配置页面配置的新报表样式,并将处理后数据按照新报表样式生成报表。从而当用户需要使用新样式报表时,可以在报表配置页面进行报表的新样式配置,不需要二次开发即可得到新样式,进而根据配置的新样式生成报表,从而提高了报表生成的效率。
在一个实施例中,待处理数据获取模块604还用于:
根据取数逻辑元数据,通过多个线程从数据库中分批获取待处理数据;
上述实施例中,按照取数逻辑元数据,服务器采用多线程、分批从数据库中获取待处理数据,一方面提高了获取待处理数据的速度,另一方面还可以实现一边从数据库中获取待处理数据,一边对已经获取的待处理数据的进行处理,提高了数据处理的速度,进而提高了报表生成的效率。
在一个实施例中,如图7所示,装置还包括:报表配置模块612和报表元数据生成模块614;其中:
报表配置模块612:用于在报表配置页面配置报表显示界面、取数逻辑和处理逻辑;
报表元数据生成模块614:用于根据取数逻辑和处理逻辑生成报表元数据。
在一个实施例中,报表配置模块612还用于:
在报表配置页面配置报表显示界面;
根据所配置的报表显示界面中的数据字段确定目标数据和基础数据,目标数据为报表所要展示的数据,基础数据是数据库表存储的数据;
根据所确定的目标数据和基础数据获得取数逻辑和处理逻辑。
在一个实施例中,报表元数据还包括字段元数据;报表生成模块610还用于:
根据字段元数据,将处理后数据写入到新报表样式的表格中对应的字段上,得到对应的报表。
在一个实施例中,如图7所示,装置还包括:报表处理模块616;
报表处理模块616:用于当接收到对所生成的报表进行操作的指令时,对报表进行刷新、联查、导出和打印中的至少一种处理。
在一个实施例中,待处理数据处理模块606还用于:
按照处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果;
对所得的计算结果按照类别进行汇总,得到汇总数据。
上述实施例中,服务器按照处理逻辑元数据,分批从缓存中取出待处理数据,然后将取出的待处理数据按照类别进行分组计算,并对所得的计算结果按照分组类别进行汇总,提高了服务器对待处理数据的处理速度,并且在得到汇总数据之后将其放入集中缓存中,以便在生成报表时,直接将所得汇总数据直接输出,便可生成报表,从而提高了报表生成的效率。
图8示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图8所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现报表生成方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行报表生成方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的报表生成装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该报表生成装置的各个程序模块,比如,图6所示的报表元数据读取模块602,待处理数据获取模块604,待处理数据处理模块606,新报表样式获取模块608,报表生成模块610。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的报表生成方法中的步骤。
例如,图8所示的计算机设备可以通过如图6所示的报表生成装置中的报表元数据读取模块602执行S202。计算机设备可通过待处理数据获取模块604执行S204。计算机设备可通过待处理数据处理模块606执行S206。计算机设备可通过新报表样式获取模块608执行S208。计算机设备可通过报表生成模块610执行S210。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:当接收到报表生成请求时,读取报表生成请求对应的报表元数据,报表元数据包括取数逻辑元数据和处理逻辑元数据;根据取数逻辑元数据从数据库中获取对应的待处理数据;按照处理逻辑元数据对待处理数据进行处理,得到处理后数据,处理逻辑元数据在报表配置页面进行配置所得;获取在报表配置页面配置的新报表样式;将处理后数据按照新报表样式生成报表。
在一个实施例中,计算机程序被处理器执行根据取数逻辑元数据从数据库中获取对应的待处理数据的步骤时,使得处理器具体执行以下步骤:根据取数逻辑元数据,通过多个线程从数据库中分批获取待处理数据。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:在报表配置页面配置报表显示界面、取数逻辑和处理逻辑;根据取数逻辑和处理逻辑生成报表元数据。
在一个实施例中,计算机程序被处理器执行在报表配置页面配置报表显示界面、取数逻辑和处理逻辑的步骤,使得处理器具体执行以下步骤:在报表配置页面配置报表显示界面;根据所配置的报表显示界面中的数据字段确定目标数据和基础数据,目标数据为报表所要展示的数据,基础数据是数据库表存储的数据;根据所确定的目标数据和基础数据获得取数逻辑和处理逻辑。
在一个实施例中,报表元数据还包括字段元数据;计算机程序被处理器执行将处理后数据按照新报表样式生成报表的步骤时,使得处理器具体执行以下步骤:根据字段元数据,将处理后数据写入到新报表样式的表格中对应的字段上,得到对应的报表。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当接收到对所生成的报表进行操作的指令时,对报表进行刷新、联查、导出和打印中的至少一种处理。
在一个实施例中,计算机程序被处理器执行按照处理逻辑元数据对待处理数据进行处理的步骤时,使得处理器具体执行以下步骤:按照处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果;对所得的计算结果按照类别进行汇总,得到汇总数据。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:当接收到报表生成请求时,读取报表生成请求对应的报表元数据,报表元数据包括取数逻辑元数据和处理逻辑元数据;根据取数逻辑元数据从数据库中获取对应的待处理数据;按照处理逻辑元数据对待处理数据进行处理,得到处理后数据,处理逻辑元数据在报表配置页面进行配置所得;获取在报表配置页面配置的新报表样式;将处理后数据按照新报表样式生成报表。
在一个实施例中,计算机程序被处理器执行根据取数逻辑元数据从数据库中获取对应的待处理数据的步骤时,使得处理器具体执行以下步骤:根据取数逻辑元数据,通过多个线程从数据库中分批获取待处理数据。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:在报表配置页面配置报表显示界面、取数逻辑和处理逻辑;根据取数逻辑和处理逻辑生成报表元数据。
在一个实施例中,计算机程序被处理器执行在报表配置页面配置报表显示界面、取数逻辑和处理逻辑的步骤,使得处理器具体执行以下步骤:在报表配置页面配置报表显示界面;根据所配置的报表显示界面中的数据字段确定目标数据和基础数据,目标数据为报表所要展示的数据,基础数据是数据库表存储的数据;根据所确定的目标数据和基础数据获得取数逻辑和处理逻辑。
在一个实施例中,报表元数据还包括字段元数据;计算机程序被处理器执行将处理后数据按照新报表样式生成报表的步骤时,使得处理器具体执行以下步骤:根据字段元数据,将处理后数据写入到新报表样式的表格中对应的字段上,得到对应的报表。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当接收到对所生成的报表进行操作的指令时,对报表进行刷新、联查、导出和打印中的至少一种处理。
在一个实施例中,计算机程序被处理器执行按照处理逻辑元数据对待处理数据进行处理的步骤时,使得处理器具体执行以下步骤:按照处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果;对所得的计算结果按照类别进行汇总,得到汇总数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种报表生成方法,所述方法包括:
当接收到报表生成请求时,读取所述报表生成请求对应的报表元数据,所述报表元数据包括取数逻辑元数据和处理逻辑元数据;
根据所述取数逻辑元数据从数据库中获取对应的待处理数据;
按照所述处理逻辑元数据对所述待处理数据进行处理,得到处理后数据,所述处理逻辑元数据在报表配置页面进行配置所得;
获取在所述报表配置页面配置的新报表样式;
将所述处理后数据按照所述新报表样式生成报表。
2.根据权利要求1所述的方法,其特征在于,所述根据所述取数逻辑元数据从数据库中获取对应的待处理数据,包括:
根据所述取数逻辑元数据,通过多个线程从数据库中分批获取待处理数据;所述按照所述处理逻辑元数据对所述待处理数据进行处理包括:
按照所述处理逻辑元数据对每批待处理数据按照类别进行分组计算,得到计算结果;
对所得的计算结果按照所述类别进行汇总,得到汇总数据。
3.根据权利要求1所述的方法,其特征在于,在接收到报表生成请求之前,还包括:
在所述报表配置页面配置报表显示界面、取数逻辑和处理逻辑;
根据所述取数逻辑和所述处理逻辑生成报表元数据。
4.根据权利要求3所述的方法,其特征在于,所述在所述报表配置页面配置报表显示界面、取数逻辑和处理逻辑,包括:
在所述报表配置页面配置报表显示界面;
根据所配置的报表显示界面中的数据字段确定目标数据和基础数据,所述目标数据为报表所要展示的数据,所述基础数据是数据库表存储的数据;
根据所确定的目标数据和基础数据获得取数逻辑和处理逻辑。
5.根据权利要求1所述的方法,其特征在于,所述报表元数据还包括字段元数据;所述将所述处理后数据按照所述新报表样式生成报表,包括:
根据所述字段元数据,将所述处理后数据写入到所述新报表样式的表格中对应的字段上,得到对应的报表。
6.根据权利要求1至5中任一项所述的方法,其特征在于,将所述处理后数据按照所述新报表样式生成报表之后,还包括:
当接收到对所生成的报表进行操作的指令时,对所述报表进行刷新、联查、导出和打印中的至少一种处理。
7.一种报表生成装置,其特征在于,所述装置包括:
报表元数据读取模块,用于当接收到报表生成请求时,读取所述报表生成请求对应的报表元数据,所述报表元数据包括取数逻辑元数据和处理逻辑元数据;
待处理数据获取模块,用于根据所述取数逻辑元数据从数据库中获取对应的待处理数据;
待处理数据处理模块,用于按照所述处理逻辑元数据对所述待处理数据进行处理,得到处理后数据,所述处理逻辑元数据在报表配置页面进行配置所得;
新报表样式获取模块,用于获取在所述报表配置页面配置的新报表样式;
报表生成模块,用于将所述处理后数据按照所述新报表样式生成报表。
8.根据权利要求7所述的装置,其特征在于,还包括:
报表配置模块,在所述报表配置页面配置报表显示界面、取数逻辑和处理逻辑;
报表元数据生成模块,用于根据所述取数逻辑和所述处理逻辑生成报表元数据。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904968.XA CN110795475A (zh) | 2019-09-24 | 2019-09-24 | 报表生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904968.XA CN110795475A (zh) | 2019-09-24 | 2019-09-24 | 报表生成方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795475A true CN110795475A (zh) | 2020-02-14 |
Family
ID=69438739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910904968.XA Pending CN110795475A (zh) | 2019-09-24 | 2019-09-24 | 报表生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795475A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766910A (zh) * | 2021-01-21 | 2021-05-07 | 深圳市极致科技股份有限公司 | 单据构建方法、生成方法、装置、电子设备及存储介质 |
CN115796140A (zh) * | 2022-11-03 | 2023-03-14 | 广州天维信息技术股份有限公司 | 报告自动生成、报告模板配置方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877563A (zh) * | 2006-07-06 | 2006-12-13 | 北京北大方正电子有限公司 | 一种报表定义方法及系统 |
CN103984557A (zh) * | 2014-05-29 | 2014-08-13 | 中国银行股份有限公司 | 一种报表生成方法及装置 |
CN107609109A (zh) * | 2017-09-13 | 2018-01-19 | 山东浪潮云服务信息科技有限公司 | 一种报表生成方法、装置和系统 |
CN108804402A (zh) * | 2017-04-28 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 基于大数据平台的报表生成系统和方法 |
CN109766534A (zh) * | 2018-12-19 | 2019-05-17 | 益萃网络科技(中国)有限公司 | 报表生成方法、装置、计算机设备及可读存储介质 |
CN110222321A (zh) * | 2019-04-16 | 2019-09-10 | 中国平安人寿保险股份有限公司 | 报表生成方法、装置、计算机装置及计算机可读存储介质 |
-
2019
- 2019-09-24 CN CN201910904968.XA patent/CN110795475A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877563A (zh) * | 2006-07-06 | 2006-12-13 | 北京北大方正电子有限公司 | 一种报表定义方法及系统 |
CN103984557A (zh) * | 2014-05-29 | 2014-08-13 | 中国银行股份有限公司 | 一种报表生成方法及装置 |
CN108804402A (zh) * | 2017-04-28 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 基于大数据平台的报表生成系统和方法 |
CN107609109A (zh) * | 2017-09-13 | 2018-01-19 | 山东浪潮云服务信息科技有限公司 | 一种报表生成方法、装置和系统 |
CN109766534A (zh) * | 2018-12-19 | 2019-05-17 | 益萃网络科技(中国)有限公司 | 报表生成方法、装置、计算机设备及可读存储介质 |
CN110222321A (zh) * | 2019-04-16 | 2019-09-10 | 中国平安人寿保险股份有限公司 | 报表生成方法、装置、计算机装置及计算机可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766910A (zh) * | 2021-01-21 | 2021-05-07 | 深圳市极致科技股份有限公司 | 单据构建方法、生成方法、装置、电子设备及存储介质 |
CN112766910B (zh) * | 2021-01-21 | 2023-10-27 | 深圳市极致科技股份有限公司 | 单据构建方法、生成方法、装置、电子设备及存储介质 |
CN115796140A (zh) * | 2022-11-03 | 2023-03-14 | 广州天维信息技术股份有限公司 | 报告自动生成、报告模板配置方法和装置 |
CN115796140B (zh) * | 2022-11-03 | 2023-09-05 | 广州天维信息技术股份有限公司 | 报告自动生成、报告模板配置方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509485B (zh) | 数据的预处理方法、装置、计算机设备和存储介质 | |
CN110472114B (zh) | 异常数据预警方法、装置、计算机设备及存储介质 | |
CN109524072B (zh) | 电子病历生成方法、装置、计算机设备和存储介质 | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN111353286A (zh) | 表格文件处理方法、装置、计算机设备和存储介质 | |
CN110795475A (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
CN109242425A (zh) | 项目费用的归集分摊方法、装置、计算机设备和存储介质 | |
WO2020140662A1 (zh) | 数据表填补方法、装置、计算机设备和存储介质 | |
CN115544007A (zh) | 标签预处理方法、装置、计算机设备和存储介质 | |
CN111178830B (zh) | 成本的核算方法、装置、计算机设备和存储介质 | |
CN110543996A (zh) | 一种职位薪资评估方法、装置、服务器和存储介质 | |
CN116644729A (zh) | 表格文件处理方法、装置、计算机设备和存储介质 | |
CN111949550A (zh) | 自动生成测试数据的方法、装置、设备及存储介质 | |
CN110647350A (zh) | 接口文档生成方法、装置、计算机设备和存储介质 | |
CN114090589A (zh) | 基于HBase的数据查询方法、装置和计算机设备 | |
CN110555082B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN116401238A (zh) | 偏离度监测方法、装置、设备、存储介质和程序产品 | |
CN115857929A (zh) | 资源数据处理方法、装置、计算机设备和存储介质 | |
CN111651457B (zh) | 数据分组方法、装置、计算机设备及存储介质 | |
CN113095047A (zh) | 实验报告生成方法、装置、计算机设备和存储介质 | |
CN114064976A (zh) | 一种数据特征计算的方法、系统、电子装置和存储介质 | |
US11170164B2 (en) | System and method for cell comparison between spreadsheets | |
CN111666340A (zh) | 基于大数据的同步数据校对方法、装置和计算机设备 | |
CN116541454B (zh) | 事件配置方法、装置、计算机设备和存储介质 | |
CN111079435B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |