CN111159183B - 报表生成方法、电子装置及计算机可读存储介质 - Google Patents
报表生成方法、电子装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111159183B CN111159183B CN201911328365.6A CN201911328365A CN111159183B CN 111159183 B CN111159183 B CN 111159183B CN 201911328365 A CN201911328365 A CN 201911328365A CN 111159183 B CN111159183 B CN 111159183B
- Authority
- CN
- China
- Prior art keywords
- data
- report
- preset dimension
- preset
- business type
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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)
- 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
本发明涉及数据处理技术领域,揭露了一种报表生成方法,该方法包括:根据各种业务类型报表对应的各个预设维度组合的key值计算各个预设维度组合的哈希值,从宽表中抓取所述预设维度组合的数据并存储至其哈希值对应的内存存储地址中,响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据,将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。本发明还提出一种电子装置以及一种计算机可读存储介质。本发明解决了报表生成效率低、不易扩展的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种报表生成方法、电子装置及计算机可读存储介质。
背景技术
随着移动互联、云计算、大数据等互联网技术的快速发展,数据报表作为一种重要的信息载体,不仅具有研究与分析的价值,同时能对各项决策提供参考和指导。随着业务场景的复杂化,越来越多的数据报表需要关联多表来制作,这就需要用代码描述其中复杂的逻辑关系,需要专业的软件开发人员来开发完成,从而导致报表生成效率低,且用户难以自己生成报表,不利于拓展应用。
发明内容
鉴于以上内容,有必要提供一种报表生成方法,旨在解决报表生成效率低、不易扩展的问题。
本发明提供的报表生成方法,包括:
获取步骤:获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中;
存储步骤:获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中;
响应步骤:响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据;
生成步骤:将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。
可选的,所述获取步骤还包括:
为各种业务类型报表分别分配一个预设位数的字符串作为各种业务类型报表的key值,并将所述各种业务类型报表的key值写入所述宽表中各种业务类型报表数据的预设栏位以进行报表类型标识。
可选的,所述存储步骤还包括:
若从宽表中抓取的某一预设维度组合对应的数据的数据量大于预设阈值,则增加所述预设维度组合的key值的位数以防止所述预设维度组合对应的数据存储至其哈希值对应的内存存储地址时溢出。
可选的,所述哈希值的计算公式为:H(k)=a*k+b,其中,H(k)为预设维度组合的哈希值,k为预设维度组合的key值,a、b为常量。
可选的,所述预设维度组合的key值包括所述预设维度组合对应的业务类型报表的key值及所述预设维度组合中的每个预设维度字段的key值。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的报表生成程序,所述报表生成程序被所述处理器执行时实现如下步骤:
获取步骤:获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中;
存储步骤:获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中;
响应步骤:响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据;
生成步骤:将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。
可选的,所述获取步骤还包括:
为各种业务类型报表分别分配一个预设位数的字符串作为各种业务类型报表的key值,并将所述各种业务类型报表的key值写入所述宽表中各种业务类型报表数据的预设栏位以进行报表类型标识。
可选的,所所述存储步骤还包括:
若从宽表中抓取的某一预设维度组合对应的数据的数据量大于预设阈值,则增加所述预设维度组合的key值的位数以防止所述预设维度组合对应的数据存储至其哈希值对应的内存存储地址时溢出。
可选的,所述哈希值的计算公式为:H(k)=a*k+b,其中,H(k)为预设维度组合的哈希值,k为预设维度组合的key值,a、b为常量。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有报表生成程序,所述报表生成程序可被一个或者多个处理器执行,以实现上述报表生成方法的步骤。
相较现有技术,本发明通过根据各种业务类型报表对应的各个预设维度组合的key值计算各个预设维度组合的哈希值,从宽表中抓取所述预设维度组合的数据并存储至其哈希值对应的内存存储地址中,响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个哈希值对应的内存存储地址中的数据,将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表,从而解决了报表生成效率低、不易扩展的问题。
附图说明
图1为本发明电子装置一实施例的示意图;
图2为图1中的报表生成程序一实施例的程序模块图;
图3为本发明报表生成方法一实施例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有报表生成程序10,所述报表生成程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及报表生成程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该非易失性存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。本实施例中,存储器11的可读存储介质通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的报表生成程序10的代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行报表生成程序10等。
网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。
可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
在本发明的一实施例中,所述报表生成程序10被所述处理器12执行时实现如下获取步骤、存储步骤、响应步骤及生成步骤。
获取步骤:获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中。
例如,业务类型报表包括:手机销售收入报表、内耗支出报表、保费收入报表等。
所述数据筛选规则包括待筛选的源表的名称及各源表中待筛选的维度字段,每种业务类型报表对应一个数据筛选规则。以业务类型报表为保费收入报表为例,其数据筛选规则可以用下表1表示:
业务类型报表 | 待筛选的源表名称 | 待筛选的维度字段 |
保费收入报表 | 保险费信息表 | 预缴转入 |
保费收入报表 | 保险费信息表 | 首期保费 |
保费收入报表 | 费用综合信息表 | 续期保费 |
表1
通常情况下,人们对各类报表的需求是规律的,例如,按照日、周、月来周期性的生成报表。电子装置1根据各业务类型报表对应的预先设置的时间周期(例如,每月1日0:00)和对应的数据筛选规则定时筛选目标数据,并将目标数据写入宽表中。
以业务类型报表为保费收入报表、当前筛选数据的时间点为2019/2/1 0:00(时间周期为每月)为例,电子装置1需从保险费信息表中筛选出2019/1/1~2019/1/31期间“预缴转入”和“首期保费”两个维度字段相关的每条数据,从费用综合信息表中筛选出2019/1/1~2019/1/31期间“续期保费”这个维度字段相关的每条数据。
例如,保险费用信息表如下表2所示:
表2
费用综合信息表如下表3所示:
表3
在本发明的一个实施例中,所述获取步骤还包括:
为各种业务类型报表分别分配一个预设位数的字符串作为各种业务类型报表的key值,并将所述各种业务类型报表的key值写入所述宽表中各种业务类型报表数据的预设栏位以进行报表类型标识。
将保费收入报表对应的key值和筛选出来的数据写入宽表,所述宽表如下表4所示:
表4
表4中,key值为3T的内耗支出报表对应的相关数据为宽表中原有数据,key值为5B的保费收入报表对应的相关数据为本次新写入的数据。
本实施例中,电子装置1将某种业务类型报表对应的数据写入宽表前,会先将宽表中该业务类型报表对应的历史数据清除。清除宽表中该业务类型报表对应的历史数据可释放存储空间,且避免了数据杂乱而导致的二次筛选。
存储步骤:获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中。
维度组合是由预设的多个关键维度名称对应的关键维度字段组合得到的,在维度组合对应的业务类型报表相关的每个数据库表(源表、宽表)中都包含所述多个关键维度名称。本实施例中,将业务类型加入维度组合并放置于维度组合的第一位,以便于与其他业务类型报表对应的维度组合进行区分,且可快速与宽表中的数据进行匹配,维度组合中其余维度字段无顺序要求。
以业务类型为保费收入为例,其对应的关键维度名称为险种、销售渠道、投保地、支付方式、费用类别,故保费收入报表对应的维度组合包括:
维度组合1:保费收入+重疾险+会面销售+投保地-深圳+柜台现金+首期保费维度组合2:保费收入+重疾险+会面销售+投保地-深圳+柜台现金+预缴转入维度组合3:保费收入+车险+会面销售+投保地-深圳+柜台现金+首期保费维度组合4:保费收入+车险+会面销售+投保地-深圳+柜台现金+预缴转入维度组合5:保费收入+重疾险+网络销售+投保地-深圳+柜台现金+首期保费维度组合6:保费收入+重疾险+网络销售+投保地-深圳+柜台现金+预缴转入
……
电子装置1预先为每个维度字段分配一个预设位数(例如,2位)的字符串作为其key值,例如,保费收入报表对应的各个维度字段的key值如下表5所示:
维度字段 | key值 | 维度字段 | key值 | 维度字段 | key值 |
重疾险 | 11 | 电话销售 | 23 | 预缴转入 | 51 |
车险 | 12 | 投保地-深圳 | 31 | 首期保费 | 52 |
养老险 | 13 | 投保地-上海 | 32 | 续期保费 | 53 |
寿险 | 14 | 投保地-广州 | 33 | ||
会面销售 | 21 | 柜台现金 | 41 | ||
网络销售 | 22 | 网上转账 | 42 |
表5
所述预设维度组合的key值包括所述预设维度组合对应的业务类型报表的key值及所述预设维度组合中的每个预设维度字段的key值。本实施例中,采用预设符号(例如,下划线)作为连接符将多个维度字段对应的key值进行拼接。
以保费收入报表为例,其维度组合对应的key值为:
维度组合1:5B_11_21_31_41_52
维度组合2:5B_11_21_31_41_51
维度组合3:5B_12_21_31_41_52
维度组合4:5B_12_21_31_41_51
维度组合5:5B_11_22_31_41_52
维度组合6:5B_11_22_31_41_51
……
所述哈希值的计算公式为:H(k)=a*k+b,式中,k为预设维度组合的key值,H(k)为预设维度组合的哈希值,a、b为常量。本实施例中,利用key值计算哈希值时,先将key值转换为ASCII码后再进行计算。
电子装置1计算得出某一维度组合的哈希值后,将宽表中与该维度组合匹配的数据写入该维度组合的哈希值对应的内存存储地址中。因维度组合是根据关键维度字段确定的,宽表中的每条数据包含更多的维度字段,故一个维度组合可能对应多条数据(例如,宽表中还包括“部门”这个维度名称,可能销售一部有一条符合维度组合1的数据,销售二部也有一条符合维度组合1的数据),此时将该维度组合对应的多条数据皆存储至该维度组合的哈希值对应的内存存储地址中。
本实施例中,若宽表中某一个维度组合对应的数据的数据量过大,为避免数据存储至哈希值对应的内存存储地址时数据溢出,或者与内存中下一个哈希值对应的存储地址中的数据重合,可通过增加维度组合中各个维度字段的key值的位数来增大哈希值间的差值,从而避免数据溢出或重叠。
根据哈希值对应的内存存储地址将宽表中的各种业务类型报表、各个维度组合的数据分别存储于不同的存储地址,可提高后续数据查询、读取的效率。将数据存储至内存中,可达到快速读取的目的。
响应步骤:响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据。
生成步骤:将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。
电子装置1读取到内存中的数据后,将每条数据的维度字段和指标值填入表单模板中对应的位置生成目标报表。
以业务类型报表为保费收入报表为例,其对应的目标报表如下表6所示:
表6
由上述实施例可知,本发明提出的电子装置1,首先,根据各种业务类型报表对应的各个预设维度组合的key值计算各个预设维度组合的哈希值,从宽表中抓取所述预设维度组合的数据并存储至其哈希值对应的内存存储地址中;然后,响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个哈希值对应的内存存储地址中的数据,将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表,从而解决了报表生成效率低、不易扩展的问题。
在其他实施例中,报表生成程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述报表生成程序10在电子装置1中的执行过程。
如图2所示,为图1中的报表生成程序10一实施例的程序模块图。
在本发明的一个实施例中,报表生成程序10包括获取模块110、存储模块120、响应模块130及生成模块140,示例性地:
所述获取模块110,用于获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中。
所述存储模块120,用于获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中;
所述响应模块130,用于响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据;
所述生成模块140,用于将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。
上述获取模块110、存储模块120、响应模块130及生成模块140等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
如图3所示,为本发明报表生成方法一实施例的流程图,该报表生成方法包括步骤S1-S4。
S1、获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中。
例如,业务类型报表包括:手机销售收入报表、内耗支出报表、保费收入报表等。
所述数据筛选规则包括待筛选的源表的名称及各源表中待筛选的维度字段,每种业务类型报表对应一个数据筛选规则。以业务类型报表为保费收入报表为例,其数据筛选规则可以用上表1表示。
通常情况下,人们对各类报表的需求是规律的,例如,按照日、周、月来周期性的生成报表。电子装置1根据各业务类型报表对应的预先设置的时间周期(例如,每月1日0:00)和对应的数据筛选规则定时筛选目标数据,并将目标数据写入宽表中。
以业务类型报表为保费收入报表、当前筛选数据的时间点为2019/2/1 0:00(时间周期为每月)为例,电子装置1需从保险费信息表中筛选出2019/1/1~2019/1/31期间“预缴转入”和“首期保费”两个维度字段相关的每条数据,从费用综合信息表中筛选出2019/1/1~2019/1/31期间“续期保费”这个维度字段相关的每条数据。
例如,保险费用信息表如上表2所示。
费用综合信息表如上表3所示。
在本发明的一个实施例中,所述步骤S1还包括:
为各种业务类型报表分别分配一个预设位数的字符串作为各种业务类型报表的key值,并将所述各种业务类型报表的key值写入所述宽表中各种业务类型报表数据的预设栏位以进行报表类型标识。
将保费收入报表对应的key值和筛选出来的数据写入宽表,所述宽表如上表4所示。
表4中,key值为3T的内耗支出报表对应的相关数据为宽表中原有数据,key值为5B的保费收入报表对应的相关数据为本次新写入的数据。
本实施例中,电子装置1将某种业务类型报表对应的数据写入宽表前,会先将宽表中该业务类型报表对应的历史数据清除。清除宽表中该业务类型报表对应的历史数据可释放存储空间,且避免了数据杂乱而导致的二次筛选。
S2、获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中。
维度组合是由预设的多个关键维度名称对应的关键维度字段组合得到的,在维度组合对应的业务类型报表相关的每个数据库表(源表、宽表)中都包含所述多个关键维度名称。本实施例中,将业务类型加入维度组合并放置于维度组合的第一位,以便于与其他业务类型报表对应的维度组合进行区分,且可快速与宽表中的数据进行匹配,维度组合中其余维度字段无顺序要求。
以业务类型为保费收入为例,其对应的关键维度名称为险种、销售渠道、投保地、支付方式、费用类别,故保费收入报表对应的维度组合包括:
维度组合1:保费收入+重疾险+会面销售+投保地-深圳+柜台现金+首期保费维度组合2:保费收入+重疾险+会面销售+投保地-深圳+柜台现金+预缴转入维度组合3:保费收入+车险+会面销售+投保地-深圳+柜台现金+首期保费维度组合4:保费收入+车险+会面销售+投保地-深圳+柜台现金+预缴转入维度组合5:保费收入+重疾险+网络销售+投保地-深圳+柜台现金+首期保费维度组合6:保费收入+重疾险+网络销售+投保地-深圳+柜台现金+预缴转入
……
电子装置1预先为每个维度字段分配一个预设位数(例如,2位)的字符串作为其key值,例如,保费收入报表对应的各个维度字段的key值如上表5所示。
所述预设维度组合的key值包括所述预设维度组合对应的业务类型报表的key值及所述预设维度组合中的每个预设维度字段的key值。本实施例中,采用预设符号(例如,下划线)作为连接符将多个维度字段对应的key值进行拼接。
以保费收入报表为例,其维度组合对应的key值为:
维度组合1:5B_11_21_31_41_52
维度组合2:5B_11_21_31_41_51
维度组合3:5B_12_21_31_41_52
维度组合4:5B_12_21_31_41_51
维度组合5:5B_11_22_31_41_52
维度组合6:5B_11_22_31_41_51
……
所述哈希值的计算公式为:H(k)=a*k+b,式中,k为预设维度组合的key值,H(k)为预设维度组合的哈希值,a、b为常量。本实施例中,利用key值计算哈希值时,先将key值转换为ASCII码后再进行计算。
电子装置1计算得出某一维度组合的哈希值后,将宽表中与该维度组合匹配的数据写入该维度组合的哈希值对应的内存存储地址中。因维度组合是根据关键维度字段确定的,宽表中的每条数据包含更多的维度字段,故一个维度组合可能对应多条数据(例如,宽表中还包括“部门”这个维度名称,可能销售一部有一条符合维度组合1的数据,销售二部也有一条符合维度组合1的数据),此时将该维度组合对应的多条数据皆存储至该维度组合的哈希值对应的内存存储地址中。
本实施例中,若宽表中某一个维度组合对应的数据的数据量过大,为避免数据存储至哈希值对应的内存存储地址时数据溢出,或者与内存中下一个哈希值对应的存储地址中的数据重合,可通过增加维度组合中各个维度字段的key值的位数来增大哈希值间的差值,从而避免数据溢出或重叠。
根据哈希值对应的内存存储地址将宽表中的各种业务类型报表、各个维度组合的数据分别存储于不同的存储地址,可提高后续数据查询、读取的效率。将数据存储至内存中,可达到快速读取的目的。
S3、响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据。
S4、将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。
电子装置1读取到内存中的数据后,将每条数据的维度字段和指标值填入表单模板中对应的位置生成目标报表。
以业务类型报表为保费收入报表为例,其对应的目标报表如上表6所示。
由上述实施例可知,本发明提出的报表生成方法,首先,根据各种业务类型报表对应的各个预设维度组合的key值计算各个预设维度组合的哈希值,从宽表中抓取所述预设维度组合的数据并存储至其哈希值对应的内存存储地址中;然后,响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个哈希值对应的内存存储地址中的数据,将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表,从而解决了报表生成效率低、不易扩展的问题。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括报表生成程序10,所述报表生成程序10被处理器执行时实现如下操作:
获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中;
获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中;
响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据;
将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表。
本发明之计算机可读存储介质的具体实施方式与上述报表生成方法以及电子装置的具体实施方式大致相同,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种报表生成方法,应用于电子装置,其特征在于,所述方法包括:
获取步骤:获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中;
存储步骤:获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中;
响应步骤:响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据;
生成步骤:将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表;
其中,所述预设维度组合的key值包括所述预设维度组合对应的业务类型报表的key值及所述预设维度组合中的每个预设维度字段的key值;
所述获取步骤还包括:为各种业务类型报表分别分配一个预设位数的字符串作为各种业务类型报表的key值,并将所述各种业务类型报表的key值写入所述宽表中各种业务类型报表数据的预设栏位以进行报表类型标识;为每个预设维度字段分配一个预设位数的字符串作为每个预设维度字段的key值;
所述哈希值的计算公式为:H(k)=a*k+b,其中,H(k)为预设维度组合的哈希值,k为预设维度组合的key值,a、b为常量。
2.如权利要求1所述的报表生成方法,其特征在于,所述存储步骤还包括:
若从宽表中抓取的某一预设维度组合对应的数据的数据量大于预设阈值,则增加所述预设维度组合的key值的位数以防止所述预设维度组合对应的数据存储至其哈希值对应的内存存储地址时溢出。
3.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的报表生成程序,所述报表生成程序被所述处理器执行时实现如下步骤:
获取步骤:获取多种业务类型报表中的每种业务类型报表对应的数据筛选规则,每隔预设时间,根据各种业务类型报表对应的数据筛选规则从对应的待筛选源表中筛选数据,并将筛选得到的数据写入宽表中;
存储步骤:获取每种业务类型报表对应的多个预设维度组合及各个预设维度组合的key值,根据各个预设维度组合的key值计算各个预设维度组合的哈希值,从所述宽表中抓取各个预设维度组合对应的数据并存储至其哈希值对应的内存存储地址中;
响应步骤:响应用户生成某一业务类型报表的请求,获取所述业务类型报表对应的各个预设维度组合的key值,并计算所述各个预设维度组合的哈希值,逐一读取所述各个预设维度组合的哈希值对应的内存存储地址中的数据;
生成步骤:将所读取的数据写入所述业务类型报表对应的表单模板中生成目标报表;
其中,所述预设维度组合的key值包括所述预设维度组合对应的业务类型报表的key值及所述预设维度组合中的每个预设维度字段的key值;
所述获取步骤还包括:为各种业务类型报表分别分配一个预设位数的字符串作为各种业务类型报表的key值,并将所述各种业务类型报表的key值写入所述宽表中各种业务类型报表数据的预设栏位以进行报表类型标识;为每个预设维度字段分配一个预设位数的字符串作为每个预设维度字段的key值;
所述哈希值的计算公式为:H(k)=a*k+b,其中,H(k)为预设维度组合的哈希值,k为预设维度组合的key值,a、b为常量。
4.如权利要求3所述的电子装置,其特征在于,所述存储步骤还包括:
若从宽表中抓取的某一预设维度组合对应的数据的数据量大于预设阈值,则增加所述预设维度组合的key值的位数以防止所述预设维度组合对应的数据存储至其哈希值对应的内存存储地址时溢出。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有报表生成程序,所述报表生成程序可被一个或者多个处理器执行,以实现如权利要求1至2任一项所述的报表生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911328365.6A CN111159183B (zh) | 2019-12-20 | 2019-12-20 | 报表生成方法、电子装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911328365.6A CN111159183B (zh) | 2019-12-20 | 2019-12-20 | 报表生成方法、电子装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159183A CN111159183A (zh) | 2020-05-15 |
CN111159183B true CN111159183B (zh) | 2023-08-22 |
Family
ID=70557592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911328365.6A Active CN111159183B (zh) | 2019-12-20 | 2019-12-20 | 报表生成方法、电子装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159183B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131220B (zh) * | 2020-09-15 | 2024-03-15 | 北京奇艺世纪科技有限公司 | 数据报表处理方法及装置 |
CN114077457A (zh) * | 2021-10-09 | 2022-02-22 | 上海易校信息科技有限公司 | 一种逐个批量加载报表的方法 |
CN117453964B (zh) * | 2023-10-08 | 2024-04-30 | 北京融和云链科技有限公司 | 基于模板的数据结构获取和目标模板生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2465584A1 (en) * | 2003-04-29 | 2004-10-29 | Cognos Incorporated | System and method of formulating queries in relational databases |
CN109657214A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 报表生成方法、装置、终端及存储介质 |
CN109656986A (zh) * | 2018-10-09 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种业务数据汇总的辅助方法、装置及电子设备 |
CN110309496A (zh) * | 2019-06-24 | 2019-10-08 | 招商局金融科技有限公司 | 数据汇总方法、电子装置及计算机可读存储介质 |
CN110457666A (zh) * | 2019-08-19 | 2019-11-15 | 亿企赢网络科技有限公司 | 一种报表生成方法、系统及电子设备和存储介质 |
-
2019
- 2019-12-20 CN CN201911328365.6A patent/CN111159183B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2465584A1 (en) * | 2003-04-29 | 2004-10-29 | Cognos Incorporated | System and method of formulating queries in relational databases |
CN109657214A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 报表生成方法、装置、终端及存储介质 |
CN109656986A (zh) * | 2018-10-09 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种业务数据汇总的辅助方法、装置及电子设备 |
CN110309496A (zh) * | 2019-06-24 | 2019-10-08 | 招商局金融科技有限公司 | 数据汇总方法、电子装置及计算机可读存储介质 |
CN110457666A (zh) * | 2019-08-19 | 2019-11-15 | 亿企赢网络科技有限公司 | 一种报表生成方法、系统及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111159183A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159183B (zh) | 报表生成方法、电子装置及计算机可读存储介质 | |
CN112613917B (zh) | 基于用户画像的信息推送方法、装置、设备及存储介质 | |
CN112541745A (zh) | 用户行为数据分析方法、装置、电子设备及可读存储介质 | |
CN111914135A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN112418798A (zh) | 信息审核方法、装置、电子设备及存储介质 | |
WO2019085463A1 (zh) | 部门需求的推荐方法、应用服务器及计算机可读存储介质 | |
CN113792089B (zh) | 基于人工智能的非法行为检测方法、装置、设备及介质 | |
CN113946690A (zh) | 潜在客户挖掘方法、装置、电子设备及存储介质 | |
CN112860737B (zh) | 数据查询方法、装置、电子设备及可读存储介质 | |
CN116757812A (zh) | 检测异常数据的方法、装置、电子设备及存储介质 | |
CN110309496B (zh) | 数据汇总方法、电子装置及计算机可读存储介质 | |
CN111723210A (zh) | 存储数据表的方法、装置、计算机设备及可读存储介质 | |
CN113434542A (zh) | 数据关系识别方法、装置、电子设备及存储介质 | |
CN113515703A (zh) | 信息推荐方法、装置、电子设备及可读存储介质 | |
CN111131393B (zh) | 用户活跃度数据统计方法、电子装置及存储介质 | |
CN114911479A (zh) | 基于配置化的界面生成方法、装置、设备及存储介质 | |
CN114169306A (zh) | 一种生成电子回执单的方法、装置、设备及可读存储介质 | |
CN109885710B (zh) | 基于差分演化算法的用户画像刻画方法及服务器 | |
CN113761873A (zh) | Pdf解析方法、装置、电子设备及可存储介质 | |
CN113157890A (zh) | 智能问答方法、装置、电子设备及可读存储介质 | |
CN113869455A (zh) | 无监督聚类方法、装置、电子设备及介质 | |
CN113360505B (zh) | 基于时序数据的数据处理方法、装置、电子设备及可读存储介质 | |
CN116384948B (zh) | 一种标讯项目所在地的抽取方法、装置、设备及介质 | |
CN110765118B (zh) | 一种数据的修订方法、修订装置及可读存储介质 | |
CN113438221B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |