掌桥专利:专业的专利平台
掌桥专利
首页

报表的定制方法及装置

文献发布时间:2023-06-19 13:29:16


报表的定制方法及装置

技术领域

本公开涉及数据处理技术领域,具体涉及到一种报表的定制方法及装置。

背景技术

相关技术中,基于ECharts设计的报表通常是固定的,当对报表的需求发生变化,需要直接对后端的代码进行重新修改或者重新编写,采用该方式导致报表开发效率低,无法灵活地实现定制化。

发明内容

本公开的主要目的在于提供一种报表的定制方法及装置。

为了实现上述目的,根据本公开的第一方面,提供了一种报表的定制方法及装置,包括:基于报表的呈现需求信息,确定报表的基础代码;前端基于定制化的需求信息对报表的属性进行自定义,得到自定义代码;合并所述自定义代码以及所述基础代码,得到报表的定制化代码。

可选地,合并所述代码以及所述自定义代码,得到报表的定制化代码包括:遍历自定义代码的结构,判断遍历过程中得到的属性的值是否为预设类型;如果为预设类型,将属性的值覆盖至所述基础代码的预设位置处。

可选地,方法还包括:遍历自定义代码的结构,判断遍历过程中得到的属性的值是否为预设类型;如果为预设类型,判断所述基础代码预设位置处是否包含所述属性;如果不包含所述属性,则在预设位置处创建属性,并将所述值赋予创建的属性。

可选地,方法还包括:如果属性的值为对象,对所述对象进行遍历,得到对象中属性的值;如果属性的值为数组,对所述数组进行遍历,得到数组元素的值;如果对象中属性的值、或者数组元素的值为预设类型,将值覆盖至所述基础代码的预设位置处;如果对象中属性的值、或者数组元素的值为对象或数组,则针对对象属性的值、或数组元素继续遍历。

可选地,基于报表的呈现需求信息,确定报表的基础代码包括:基于报表的呈现需求信息,基于数据可视化图表库确定报表的基础代码。

根据本公开的第二方面,提供了一种报表的定制装置,包括:确定单元,被配置成基于报表的呈现需求信息,确定报表的基础代码;自定义单元,被配置成前端基于定制化的需求信息对报表的属性进行自定义,得到自定义代码;代码合并单元,被配置成合并所述自定义代码以及所述基础代码,得到报表的定制化代码。

可选地,装置还包括:遍历自定义代码的结构,判断遍历过程中得到的属性的值是否为预设类型;如果为预设类型,判断所述基础代码预设位置处是否包含所述属性;如果不包含所述属性,则在预设位置处创建属性,并将所述值赋予创建的属性。

根据本公开的第三方面,提供了一种计算机可读存储介质,存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面任意一项实现方式所述的报表的定制方法。

根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项实现方式所述的报表的定制方法。

在本公开实施例报表的定制方法及装置中,基于报表的呈现需求信息,确定报表的基础代码;前端基于定制化的需求信息对报表的属性进行自定义,得到自定义代码;合并自定义代码以及所述基础代码,得到报表的定制化代码。通过在前端自定义报表的内容,将自定义代码与报表的基础代码合并实现了报表的自定义,提高了自定义报表的灵活性,和自定义报表时代码的开发效率。进而解决了相关技术中在自定义报表时效率低的缺陷。

附图说明

为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本公开实施例的报表的定制方法;

图2是根据本公开实施例的报表的定制装置;

图3是根据本公开实施例的电子设备的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本公开中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本公开及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本公开中的具体含义。

此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。

需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。

根据本公开实施例,提供了一种报表的定制方法,如图1所示,该方法包括如下的步骤101至步骤103:

步骤101:基于报表的呈现需求信息,确定报表的基础代码。

作为本实施例一种可选的实现方式,基于报表的呈现需求信息,基于数据可视化图表库确定报表的基础代码。

在本实施例中,报表的呈现需求信息可以包括报表的颜色、大小、待呈现的数字等属性信息,可基于Echarts确定报表的基础代码。

步骤102:前端基于定制化的需求信息对报表的属性进行自定义,得到自定义代码。

在本实施例中,当需要自定义报表时,前端可自定义配置报表的任意属性、配置该属性的名称、或者该属性所控制的内容,得到自定义的代码。

步骤103:合并所述自定义代码以及所述基础代码,得到报表的定制化代码。

在本实施例中,可以将自定义的代码合并至基础代码中。自定义代码或者基础代码均可以是json格式的,其可包含多层结构,其层次结构可以由属性、值、对象、表等组成,其结构可以是多层的,例如包括属性对应的值、或者属性对应的对象-对象对应的属性-属性对应的值(或属性又对应的对象或者属性对应表)等等复杂层次结构组成,而自定义代码也可以是多层次结构,通过合并代码实现两结构体的合并。通过将自定义代码与基础代码合并,可实现自定义报表的目的。

作为本实施例一种可选的实现方式,合并所述代码以及所述自定义代码,得到报表的定制化代码包括:遍历自定义代码的结构,判断遍历过程中得到的属性值是否为预设类型;如果为预设类型,将属性的值覆盖至所述基础代码的预设位置处。

在本可选的实现方式中,通过递归遍历的方式,遍历自定义代码最外层的属性,得到属性的值,如果值属于数字、字符串等简单数据类型,则将该值覆盖至后端的基础代码的结构上(预设位置处)。

作为本实施例一种可选的实现方式,如果属性的值为对象,对所述对象进行遍历,得到对象中属性的值;和/或,如果属性的值为数组,对所述数组进行遍历,得到数组元素的值;如果对象中属性的值、或者数组元素的值为预设类型,将值覆盖至所述基础代码的预设位置处;如果对象中属性的值、或者数组元素的值为对象或数组,则针对对象属性的值、或数组元素继续遍历。

在本可选的实现方式中,如果属性的值属于对象,递归调用对象本身,可首先得到对象下最外层的属性的值,如果该值属于数值类型、字符串类型、或者布尔类型等简单数据类型,则将该值覆盖至后端的基础代码的预设位置处,否则继续按照递归遍历的方式确定属性的值,直至遍历得到所有预设类型的值。

同理,如果属性的值为数组,对所述数组进行遍历,得到数组的值;如果数组的值为对象或数组,则针对对象属性的值、或数组元素继续遍历,直至遍历得到所有预设类型的值。

作为本实施例一种可选的实现方式,遍历自定义代码的结构,判断遍历过程中得到的属性的值是否为预设类型;如果为预设类型,判断所述基础代码预设位置处是否包含所述属性;如果不包含所述属性,则在预设位置处创建属性,并将所述值赋予创建的属性。

在本可选的实现方式中,在遍历自定义代码得到属性的值后,将属性的值合并至基础代码中,由于自定义代码中可以自定义属性(可以是基础代码中不包含的属性)、或自定义属性的值,因此当合并至基础代码中时,可以判断预设位置处是否包含该属性,如果不包含该属性,则需创建该属性并将值赋予给该属性。如果包含该属性,则可直接将该属性的值覆盖原值。

上述方法可以应用至任何报表系统中,例如可以是问卷定制系统。

从以上的描述中,可以看出,本公开实现了如下技术效果:通过前端自定义报表的属性,并将自定义得到的代码与报表的基础代码合并,实现报表的自定义。提高了自定义报表的开发效率,并且通过前端可灵活实现报表的定制化,能够更高效地匹配用户对报表的个性化需求。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本公开实施例,还提供了一种用于实施上述报表的定制方法的装置,如图2所示,该装置包括:确定单元201,被配置成基于报表的呈现需求信息,确定报表的基础代码;自定义单元202,被配置成前端基于定制化的需求信息对报表的属性进行自定义,得到自定义代码;代码合并单元203,被配置成合并自定义代码以及基础代码,得到报表的定制化代码。

作为本实施例一种可选的实现方式,合并所述代码以及所述自定义代码,得到报表的定制化代码包括:遍历自定义代码的结构,判断遍历过程中得到的属性的值是否为预设类型;如果为预设类型,将属性的值覆盖至所述基础代码的预设位置处。

作为本实施例一种可选的实现方式,装置还包括:遍历自定义代码的结构,判断遍历过程中得到的属性的值是否为预设类型;如果为预设类型,判断所述基础代码预设位置处是否包含所述属性;如果不包含所述属性,则在预设位置处创建属性,并将所述值赋予创建的属性。

本公开实施例提供了一种电子设备,如图3所示,该电子设备包括一个或多个处理器31以及存储器32,图3中以一个处理器31为例。

该控制器还可以包括:输入装置33和输出装置34。

处理器31、存储器32、输入装置33和输出装置34可以通过总线或者其他方式连接,图3中以通过总线连接为例。

处理器31可以为中央处理器(CentralProcessingUnit,CPU)。处理器31还可以为其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器32作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本公开实施例中的控制方法对应的程序指令/模块。处理器31通过运行存储在存储器32中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的报表的定制方法。

存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置33可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置34可包括显示屏等显示设备。

一个或者多个模块存储在存储器32中,当被一个或者多个处理器31执行时,执行如图1所示的方法。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

相关技术
  • 具定制功能的报表文件产生器及报表文件产生方法
  • 报表的定制方法及装置
技术分类

06120113694124