CN116402038B - 报告生成方法、装置、电子设备及存储介质 - Google Patents
报告生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116402038B CN116402038B CN202310679178.2A CN202310679178A CN116402038B CN 116402038 B CN116402038 B CN 116402038B CN 202310679178 A CN202310679178 A CN 202310679178A CN 116402038 B CN116402038 B CN 116402038B
- Authority
- CN
- China
- Prior art keywords
- target
- sub
- module
- target variable
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 239000000758 substrate Substances 0.000 claims 2
- 239000000523 sample Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- 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)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请公开了一种报告生成方法、装置、电子设备及存储介质。该方法包括:获取与报告的种类对应的目标格式文档模板,目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种;获取用于生成报告的多个目标变量;基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告。
Description
技术领域
本申请涉及报告生成领域,具体涉及一种报告生成方法、装置、电子设备及存储介质。
背景技术
随着金融行业的迅猛发展,用户数量也是与日俱增,在为用户汇报收益、市场情况,提供周期性报告时,每个人的报告内容均不相同,这为报告的生成带来了很大难度。
目前,一般是给定一个统一的MSWord(Microsoft Office Word)文档模板,并在文档需要填空的位置填入占位符,这样一来MSWord文档对应的XML(Extensible MarkupLanguage)文件中需要填空的位置就会被占位符占据;然后在生成报告时,将数据直接对照XML文件中的占位符进行替换,即可完成文档模板的数据填入操作,随之生成报告。但是,由于用于生成每个报告的内容均不相同,如果依据统一的MSWord文档模板来固定生成报告,那最终得到报告的版式千篇一律,比较单一,且报告中的内容所呈现出来的效果并不美观,进而不能满足用户的个性化需求。
发明内容
本申请提供了一种报告生成方法、装置、电子设备及存储介质,使得生成的报告的版式是个性化且美观的,满足用户的个性化需求。
第一方面,本申请提供一种报告生成方法,该方法包括:
获取与报告的种类对应的目标格式文档模板,其中,目标格式文档模板是通过对与报告的种类对应的预设文档模板进行格式转换得到的,目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种;
获取用于生成报告的多个目标变量;
基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;
基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;
基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告。
第二方面,本申请提供一种报告生成装置,该装置包括:获取单元和处理单元;
获取单元,用于获取与报告的种类对应的目标格式文档模板,其中,目标格式文档模板是通过对与报告的种类对应的预设文档模板进行格式转换得到的,目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种;
获取单元,用于获取用于生成报告的多个目标变量;
处理单元,用于基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;
处理单元,用于基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;
处理单元,用于基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告。
第三方面,本申请提供一种电子设备,包括:处理器和存储器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。
第五方面,本申请提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。
实施本申请,具有如下有益效果:
首先获取与报告的种类对应的目标格式文档模板和用于生成报告的多个目标变量;然后基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;再基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;然后基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告,也即是说,我们在获取到文档模板之后,基于用于生成报告的目标变量从文档模板包括的所有子模块中提取到对应的多个子模块,然后基于个性化的配置条件、目标变量和与目标变量对应的子模块,来动态生成每个子模块对应的个性化的模块样式,进而生成个性化的报告,避免了直接基于给定的文档模板生成样式固定的/单一的报告,提升了报告的美观度和多样化,进而满足用户的个性化需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种报告生成的场景示意图;
图2为本申请实施例提供的一种报告生成方法的流程示意图;
图3为本申请实施例提供的一种目标模块样式为限高样式的示意图;
图4为本申请实施例提供的一种目标模块样式为限宽样式的示意图;
图5为本申请实施例提供的一种报告生成装置的功能单元组成框图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1为本申请实施例提供的一种报告生成的场景示意图,该场景是报告生成装置依据本申请提供的报告生成方法来生成报告,具体而言:报告生成装置本地部署有与本申请提供的报告生成方法对应的功能,则报告生成装置可以在本地执行报告生成方法来生成报告;或者,报告生成装置可以调用服务器来执行报告生成方法,即报告生成装置获取到报告生成/导出命令时,向服务器发送报告生成命令,然后服务器执行本申请的报告生成方法来生成报告,再将生成的报告发送给报告生成装置本地。另外,报告生成装置可以是一种终端设备,比如为电脑、平板电脑、智能手机、可穿戴设备、个人数字助理等设备。应说明,本申请图1主要以报告生成装置本地执行报告生成方法来生成报告这一方式为示例进行说明。
如图1所示,报告生成装置上部署有虚拟功能按钮:“生成报告”,该虚拟功能按钮所实现的功能与本申请提供的报告生成方法相对应;当用户想要基于某些内容/变量(即图1中“生成报告”虚拟功能按钮上方矩形中的“AAAA”、“AAAA”、“AAAA”)来综合生成报告时,可以点击“生成报告”这一虚拟功能按钮,然后依据本申请的报告生成方法来生成报告,具体地:
报告生成装置获取与报告的种类对应的目标格式文档模板和应用生成报告的多个目标变量,其中,目标格式文档模板是通过对与报告的种类对应的预设文档模板进行格式转换得到的,比如预设文档模板为Word格式的转换为XML格式;目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种,应说明,在报告生成装置获取与报告的种类对应的目标格式文档模板之前,预先将会根据每种报告的类型来设定一个包括多种类型的子模块的预设文档模板,也即是说,对于一个目标类型下的报告而言,仅需要构建一个与该目标类型对应的一个预设文档模板,这一个预设文档模板就包括了这一目标类型下的所有报告所需要的子模块的样式,这样前期不需要针对目标类型下的每个报告均设定一个文档模板,减轻了准备工作的负担。
然后,报告生成装置基于多个目标变量,从预设文档模板包括的多个子模块中获取与多个目标变量对应的多个第一子模块;再基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;最后基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告;在生成报告之后可以导出报告呈现给用户参考。应说明,由于上述示例中本申请的目标格式文档模板为XML格式,因此,比如在导出报告时,报告生成装置可以基于JavaScript的Blob函数,将XML格式的报告保存为编码格式为“text/plain;charset=utf-8”形式,并以Word文档的格式导出,即呈现出Word文档格式的报告,正如图1给出的示例所示,该Word文档格式的报告的第一行为“标题”,后面内容依次为“1、AAAAA”和“2、AAAAA”,应说明,图1示出的报告的形式仅是为了便于理解给出的一种简单示例。
可以看出,在本申请实施例中,通过获取与报告的种类对应的目标格式文档模板和用于生成报告的多个目标变量;然后基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;再基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;然后基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告,也即是说,我们在获取到文档模板之后,基于用于生成报告的目标变量从文档模板包括的所有子模块中提取到对应的多个子模块,然后基于个性化的配置条件、目标变量和与目标变量对应的子模块,来动态生成每个子模块对应的个性化的模块样式,进而生成个性化的报告,避免了直接基于给定的文档模板生成样式固定的/单一的报告,保证了报告的美观度和多样性,进而满足用户的个性化需求。
参阅图2,图2为本申请实施例提供的一种报告生成方法的流程示意图,该方法应用于上述的报告生成装置,方法包括但不限于步骤201-205:
201:获取与报告的种类对应的目标格式文档模板。
其中,目标格式文档模板是通过对与报告的种类对应的预设文档模板进行格式转换得到的,比如,预设文档模板是Word模板,然后进行格式转换,转换成XML格式;目标格式文档模板包括多个子模块,可以理解为,由于目标格式文档模板是与报告的一个种类对应,即该目标格式文档模板中的多个子模块是该种类下的所有报告中的模块的一个并集;每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种,也即是说,某个子模块可以既是必选类型又是固定数量类型,也可以既是必选类型又是动态数量类型,也可以既是可选类型又是固定数量类型,还可以既是可选类型又是动态数量类型。应说明,必选类型的子模块表示一个种类下的所有报告均包括该子模块(比如对于一个金融产品的介绍报告,那么该报告中必然会包括金融产品的名称/标题这一模块),可选类型下的子模块表示该子模块只是部分报告所包括的模块,固定数量类型下表示报告中该类型下的子模块的数量是固定的(比如一个报告中名称属性对应的模块,一般设定只需要一行表格来展示),动态数量类型表示报告中该子模块的数量是动态的(比如一个报告中的关于某产品的功能用途的介绍,根据需求可以设定用10行表格进行展示,也可以设定用8行表格进行展示,等等)。
需要说明的是,本方案中通过将多个子模块划分为第一类型和/或第二类型,便于后续基于目标变量获取对应的多个第一子模块时更具有参考性,进而基于不同类型的子模块可以按需确定不同的模块样式,进而生成多样化、个性化的报告。
进一步地,在获取到目标格式文档模板之后,需要将目标格式文档模板中的每个子模块中填入变量的位置挖空,并填入对应的第二占位符;将多个子模块从父级容器中的剥离;剥离之后,将父级容器挖空,并填入对应的第三占位符。
202:获取用于生成报告的多个目标变量。
其中,多个目标变量可以理解为是最终用于生成报告的内容,比如文本、数据、图片等等。
203:基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块。
由于已经将多个子模块从父级容器中剥离出来,则可以基于多个目标变量从多个子模块中获取与每个目标变量对应的第一子模块。
204:基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式。
在一种可选的实施例中,针对第一目标变量,若与第一目标变量对应的第一配置条件为第一目标变量的展示区域的高度和报告的页面高度的比例为第一比例,其中,第一目标变量为多个目标变量中的任意一个,则步骤203可以具体包括:
首先基于页面高度和第一比例,确定展示区域的高度,其中,展示区域包括n个第二子模块,每个第二子模块为多个第一子模块中与第一目标变量对应的子模块,n为整数,且n≥1;然后基于展示区域的高度的单位和页面高度的单位之间的换算关系、n和展示区域的高度,确定每个第二子模块的行高;最后基于第一目标变量对应的n个第二子模块和每个第二子模块的行高,确定与第一目标变量对应的目标模块样式。其中,每个第二子模块的行高可以通过公式(1)得到:
(1)
其中,为每个第二子模块的行高,/>为展示区域的高度,/>为展示区域的高度的单位和页面高度的单位之间的换算关系,/>为第二子模块的数量。
示例性的,若报告采取的页面大小为A4纸大小(即210mm×297mm),即页面高度为297mm,若假设展示区域的高度占页面高度的60%,则可以求出展示区域的高度;然后基于展示区域包括的n个第二子模块,即该展示区域的第一目标变量需要n行第二子模块来展示,比如需要一个n行的表格来展示;然后便可以依据公式(1)求出每行第二子模块的高度,在得到第二子模块的数量以及每个第二子模块的行高,则可以确定第一目标变量对应的目标模块样式,此时该目标模块样式可以理解为是限高样式,即将第一目标变量使用限定高度的展示区域进行展示。
应说明,在传统的生成报告方式中,模板中提供的针对某一目标变量对应的第一子模块的样式是固定的,但是实际情况中文案的长度不同,即文案越多,需要的行数也会越多,相应就会存在跨页等现象,不能满足实际需求中的文案紧凑性和美观度,而本方案通过确定展示区域的高度以及每行的行高,使得无论文案多或者少,也无论行数是多或少,通过调整行高使得在固定的展示区域中将文案合理展示出来,不会存在跨页等现象,保证了紧凑性和美观度。
示例性的,参阅图3,图3为本申请实施例提供的一种目标模块样式为限高样式的示意图,如图3所示,假设给定展示区域的高度为H,需要在该展示区域均匀分布8行子模块,且子模块的高度为h1,由于H≠8×h1,则需要对高度为h1的子模块的行高进行调整,即基于本申请公式(1)的原理确定子模块的新的行高为h2,即展示区域可以均匀分布展示8行行高为h2的子模块,此时H=8×h2。
在一种可选的实施例中,针对第二目标变量,若与第二目标变量对应的第一配置条件为第二目标变量在一行目标宽度的第三子模块中展示,其中,第二目标变量为多个目标变量中的任意一个,第二目标变量包括一种或多种字符(比如汉字、数字、符号等),步骤203还可以具体包括:
获取预设字体和预设字号;基于预设字体和预设字号,确定一种或多种字符中每种字符的平均宽度;从第二目标变量中获取每种字符的第一数量;基于每种字符的平均宽度、每种字符的第一数量和目标宽度,确定第二目标变量对应的目标字号;基于第二目标变量对应的目标字号,确定与第二目标变量对应的目标模块样式。其中,第二目标变量对应的目标字号可以通过公式(2)得到:
(2)
其中,为第二目标变量对应的目标字号,/>为预设字号,/>为第二目标变量包括的字符的种类数量,/>为/>种字符中的第/>种字符的平均宽度,/>为第/>种字符对应的权重系数,/>为目标宽度,/>为向下取整函数,/>为预设值。比如一段文案需要在一行中展示(即指定展示的目标宽度),而文案字数过多时会发生换行,则可以通过公式(2)的原理确定目标字号(即此时这种情况可以理解为缩小字号)使得一行可以完全展示这一段文案;同理,对于一个字数较少的文案,比如一个标题也需要在一行中展示,则可以通过公式(2)的原理确定标题对应的目标字号(即此时这种情况可以理解为是放大字号),使得标题以目标字号在一行中展示。
需要说明的是,对于一些变量需要在一行中进行展示的需求(比如标题、内容上有关联不希望被拆分看的文案,等等),则可以根据公式(2)的原理确定出变量对应的目标字号进行展示,这一样式可以理解为限宽样式,不仅保证了变量在内容上的关联和紧凑型,还实现了个性化的模块样式,进而满足用户的个性化需求。
示例性的,参阅图4,图4为本申请实施例提供的一种目标模块样式为限宽样式的示意图,如图4所示,对于给定预设字体和预设字号的情况下,文案“对于产品A,我们认为它所具备的特征有:”是在两行中展示出来的,出现了跨行的情况;而实际应用中,为了美观和内容的紧凑性,需要将该文案在一行中展示出来,则可以根据公式(2)的原理确定出文案对应的目标字号,最终以目标字号将文案“对于产品A,我们认为它所具备的特征有:”在一行中进行展示即得到图4所示的效果,当然,图4仅是为了便于理解作为的一种示例呈现。
因此,在确定每个目标变量对应的目标模块样式之后,需要将目标格式文档中与每个目标变量对应的目标模块样式挖空并填入对应的第一占位符,比如,对于一个目标变量A(假设为一段文案)需要在固定展示高度用10行来展示,则可以基于公式(1)确定每行的高度,同时如果这段文案中有部分文案还需要一行中的目标宽度中展示,则基于公式(2)确定这部分文案的目标字号,最后形成一个限高且限宽的目标模块样式,然后将该目标变量A对应的限高且限宽的目标模块样式挖空并填入对应的第一占位符。也即是说,可以依据目标变量对应的配置条件灵活地为目标变量确定一个对应的目标模块样式,即动态生成一个目标模块样式,而不是直接预先在模板中给定固定的样式,进而使得生成的报告更加多样化。
205:基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告。
也即是说,由于上述获取到了多个目标变量对应的第一子模块,且每个第一子模块填入变量的位置被挖空填入了第二占位符,以及每个目标变量对应的目标模块样式被挖空填入了对应的第一占位符,因此,后续在生成报告时,则可以分别替换对应的占位符,以生成报告,具体而言:
首先使用与每个目标变量对应的目标模块样式替换目标格式文档模板中与该目标模块样式对应的第一占位符,以及使用每个目标变量替换与每个目标变量对应的第一子模块中的第二占位符,得到与每个目标变量对应的第四子模块,也即是说,此时每个第四子模块是以目标模块样式填入了对应的目标变量之后的模块,比如一个第四子模块中填入了50行的文案,这50行文案是一个限高样式,且有一行文案,比如标题是按照限宽样式展示的。
需要说明的是,当第三目标变量为图片时,其中,第三目标变量为多个目标变量中的任意一个,首先可以为第三目标变量设置第一子标签和第二子标签,其中,第一子标签包括第三目标变量的名称和存储路径,第二子标签用于对第一子标签进行引用得到第三目标变量;然后基于第一子标签和第二子标签,得到第三目标变量;最后使用第三目标变量替换与第三目标变量对应的第一子模块中的第二占位符,得到第三目标变量对应的第四子模块。同理,当有多种图片需要嵌入时,为每张图片均设置对应的第一子标签和第二子标签,每张图片的第一子标签和第二子标签具有对应关系,任意两张图片对应的第一子标签中的名称属性和存储路径不同,以便第二子标签进行引用时可以准确获取到正确的图片。
然后,将多个目标变量对应的多个第四子模块进行拼接,得到目标模块,也即是说,在所有目标变量以对应的目标模块样式填入至第一子模块之后的所有第四子模块拼接起来,可以是按照预设顺序,得到目标模块,可以通俗理解为,一本书有多个章节,每个章节可以对应为填入目标变量之后的第四子模块,然后将多个章节拼接,便得到完整的一本书,即本方案中的目标模块;最后使用目标模块替换目标格式文档模板中的父级容器对应的第三占位符,生成报告,也即是说,通过将多个第四子模块拼接之后作为一个整体即目标模块来直接替换父级容器对应的第三占位符,可以实现一次性将不同类别、不同样式的模块和不同数量的模块直接填入父级容器中,得到完整的报告,这一拼接作为整体插入的方式相比于传统单独将多个不同的模块插入的方式,不仅加快了插入的效率,进而加快了报告生成效率,还避免了模块插入到错误位置的情况出现。
可以看出,在本申请实施例中,通过获取与报告的种类对应的目标格式文档模板和用于生成报告的多个目标变量;然后基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;再基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式,比如需要在给定的展示区域的高度内展示的目标变量,通过计算出展示区域中每行子模块的行高来展示,即得到的是限高样式,还比如针对部分文案需要在一行中进行展示,即得到的是限宽样式,也即是说,基于每个目标变量对应的配置条件来为目标变量动态、灵活地生成对应的模块样式,进而基于多样化的模块样式可以得到多样化、个性化的报告;然后基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告,也即是说,我们在获取到文档模板之后,基于用于生成报告的目标变量从文档模板包括的所有子模块中提取到对应的多个子模块,然后基于个性化的配置条件、目标变量和与目标变量对应的子模块,来动态生成每个子模块对应的个性化的模块样式,进而生成个性化的报告,避免了直接基于给定的文档模板生成样式固定的/单一的报告,提升了报告的美观度和多样化,进而满足用户的个性化需求。
参阅图5,图5为本申请实施例提供的一种报告生成装置的功能单元组成框图。报告生成装置500包括:获取单元501和处理单元502;
获取单元501,用于获取与报告的种类对应的目标格式文档模板,其中,目标格式文档模板是通过对与报告的种类对应的预设文档模板进行格式转换得到的,目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种;
获取单元501,用于获取用于生成报告的多个目标变量;
处理单元502,用于基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;
处理单元502,用于基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;
处理单元502,用于基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告。
在本申请的一个实施方式中,针对第一目标变量,若与第一目标变量对应的第一配置条件为第一目标变量的展示区域的高度和报告的页面高度的比例为第一比例,其中,第一目标变量为多个目标变量中的任意一个,在基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式方面,处理单元502,具体用于:
基于页面高度和第一比例,确定展示区域的高度,其中,展示区域包括n个第二子模块,每个第二子模块为多个第一子模块中与第一目标变量对应的子模块,n为整数,且n≥1;
基于展示区域的高度的单位和页面高度的单位之间的换算关系、n和展示区域的高度,确定每个第二子模块的行高;
基于第一目标变量对应的n个第二子模块和每个第二子模块的行高,确定与第一目标变量对应的目标模块样式。
在本申请的一个实施方式中,处理单元502,具体用于:
确定每个第二子模块的行高可以通过公式(3)得到:
(3)
其中,为每个第二子模块的行高,/>为展示区域的高度,/>为展示区域的高度的单位和页面高度的单位之间的换算关系,/>为第二子模块的数量。
在本申请的一个实施方式中,针对第二目标变量,若与第二目标变量对应的第一配置条件为第二目标变量在一行目标宽度的第三子模块中展示,其中,第二目标变量为多个目标变量中的任意一个,第二目标变量包括一种或多种字符,第三子模块为多个第一子模块中与第二目标变量对应的子模块,在基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式方面,处理单元502,具体用于:
获取预设字体和预设字号;
基于预设字体和预设字号,确定一种或多种字符中每种字符的平均宽度;
从第二目标变量中获取每种字符的第一数量;
基于每种字符的平均宽度、每种字符的第一数量和目标宽度,确定第二目标变量对应的目标字号;
基于第二目标变量对应的目标字号,确定与第二目标变量对应的目标模块样式。
在本申请的一个实施方式中,在基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告方面,处理单元502,具体用于:
使用与每个目标变量对应的目标模块样式替换目标格式文档模板中与该目标模块样式对应的第一占位符,以及使用每个目标变量替换与每个目标变量对应的第一子模块中的第二占位符,得到与每个目标变量对应的第四子模块;
将多个目标变量对应的多个第四子模块进行拼接,得到目标模块;
使用目标模块替换目标格式文档模板中的父级容器对应的第三占位符,生成报告。
在本申请的一个实施方式中,当第三目标变量为图片时,其中,第三目标变量为多个目标变量中的任意一个,在使用每个目标变量替换与每个目标变量对应的第一子模块中的第二占位符,得到与每个目标变量对应的第四子模块方面,处理单元502,具体用于:
为第三目标变量设置第一子标签和第二子标签,其中,第一子标签包括第三目标变量的名称和存储路径,第二子标签用于对第一子标签进行引用得到第三目标变量;
基于第一子标签和第二子标签,得到第三目标变量;
使用第三目标变量替换与第三目标变量对应的第一子模块中的第二占位符,得到第三目标变量对应的第四子模块。
在本申请的一个实施方式中,在使用与每个目标变量对应的目标模块样式替换目标格式文档模板中与该目标模块样式对应的第一占位符之前方面,处理单元502,具体用于:
将每个子模块中填入变量的位置挖空,并填入对应的第二占位符;
将多个子模块从父级容器中剥离;
将父级容器挖空,并填入第三占位符。
具体实现中,本发明实施例中所描述的获取单元501和处理单元502可执行本发明实施例提供的报告生成方法的所有实施例中所描述的所有实现方式,在此不再赘述。
参阅图6,图6为本申请实施例提供的一种电子设备的结构示意图。如图6所示,电子设备600包括收发器601、处理器602和存储器603。它们之间通过总线604连接。存储器603用于存储计算机程序和数据,并可以将存储器603存储的数据传输给处理器602。
处理器602用于读取存储器603中的计算机程序执行以下操作:
控制收发器601获取与报告的种类对应的目标格式文档模板,其中,目标格式文档模板是通过对与报告的种类对应的预设文档模板进行格式转换得到的,目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,第一类型为可选类型和必选类型中的任意一种,第二类型为固定数量类型和动态数量类型中的任意一种;
控制收发器601获取用于生成报告的多个目标变量;
基于多个目标变量,从多个子模块中获取与多个目标变量对应的多个第一子模块;
基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;
基于每个目标变量、与每个目标变量对应的目标模块样式、多个第一子模块,生成报告。
具体地,上述收发器601可为图5的实施例的报告生成装置500的获取单元501,上述处理器602可以为图5的实施例的报告生成装置500的处理单元502。
具体实现中,本发明实施例中所描述的收发器601、处理器602、存储器603可执行本发明实施例提供的报告生成方法的所有实施例所描述的所有实现方式,在此不再赘述。
应理解,本申请中的电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(MobileInternet Devices,简称:MID)或穿戴式设备等。上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备。在实际应用中,上述电子设备还可以包括:智能车载终端、计算机设备等等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种报告生成方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种报告生成方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory ,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种报告生成方法,其特征在于,所述方法包括:
获取与报告的种类对应的目标格式文档模板,其中,所述目标格式文档模板是通过对与所述报告的种类对应的预设文档模板进行格式转换得到的,所述目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,所述第一类型为可选类型和必选类型中的任意一种,所述第二类型为固定数量类型和动态数量类型中的任意一种;
获取用于生成所述报告的多个目标变量;
基于所述多个目标变量,从所述多个子模块中获取与所述多个目标变量对应的多个第一子模块;
基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;
基于每个目标变量、与每个目标变量对应的目标模块样式、所述多个第一子模块,生成所述报告,具体包括:
使用与每个目标变量对应的目标模块样式替换所述目标格式文档模板中与该目标模块样式对应的第一占位符,以及使用每个目标变量替换与每个目标变量对应的第一子模块中的第二占位符,得到与每个目标变量对应的第四子模块;
将所述多个目标变量对应的多个第四子模块进行拼接,得到目标模块;
使用所述目标模块替换所述目标格式文档模板中的父级容器对应的第三占位符,生成所述报告。
2.根据权利要求1所述的方法,其特征在于,
针对第一目标变量,若与所述第一目标变量对应的第一配置条件为所述第一目标变量的展示区域的高度和所述报告的页面高度的比例为第一比例,其中,所述第一目标变量为所述多个目标变量中的任意一个,所述基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式,包括:
基于所述页面高度和所述第一比例,确定所述展示区域的高度,其中,所述展示区域包括n个第二子模块,每个第二子模块为所述多个第一子模块中与所述第一目标变量对应的子模块,n为整数,且n≥1;
基于所述展示区域的高度的单位和所述页面高度的单位之间的换算关系、n和所述展示区域的高度,确定每个第二子模块的行高;
基于所述第一目标变量对应的n个第二子模块和每个第二子模块的行高,确定与所述第一目标变量对应的目标模块样式。
3.根据权利要求2所述的方法,其特征在于,每个第二子模块的行高通过以下公式得到:
其中,为每个第二子模块的行高,/>为所述展示区域的高度,/>为所述展示区域的高度的单位和所述页面高度的单位之间的换算关系,/>为第二子模块的数量。
4.根据权利要求1所述的方法,其特征在于,
针对第二目标变量,若与所述第二目标变量对应的第一配置条件为所述第二目标变量在一行目标宽度的第三子模块中展示,其中,所述第二目标变量为所述多个目标变量中的任意一个,所述第二目标变量包括一种或多种字符,所述第三子模块为所述多个第一子模块中与所述第二目标变量对应的子模块,所述基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式,包括:
获取预设字体和预设字号;
基于所述预设字体和所述预设字号,确定所述一种或多种字符中每种字符的平均宽度;
从所述第二目标变量中获取每种字符的第一数量;
基于每种字符的平均宽度、每种字符的第一数量和所述目标宽度,确定所述第二目标变量对应的目标字号;
基于所述第二目标变量对应的目标字号,确定与所述第二目标变量对应的目标模块样式。
5.根据权利要求1-4任一项所述的方法,其特征在于,
当第三目标变量为图片时,其中,所述第三目标变量为所述多个目标变量中的任意一个,所述使用每个目标变量替换与每个目标变量对应的第一子模块中的第二占位符,得到与每个目标变量对应的第四子模块,包括:
为所述第三目标变量设置第一子标签和第二子标签,其中,所述第一子标签包括所述第三目标变量的名称和存储路径,所述第二子标签用于对所述第一子标签进行引用得到所述第三目标变量;
基于所述第一子标签和所述第二子标签,得到所述第三目标变量;
使用所述第三目标变量替换与所述第三目标变量对应的第一子模块中的第二占位符,得到所述第三目标变量对应的第四子模块。
6.根据权利要求5所述的方法,其特征在于,
在使用与每个目标变量对应的目标模块样式替换所述目标格式文档模板中与该目标模块样式对应的第一占位符之前,所述方法还包括:
将每个子模块中填入变量的位置挖空,并填入对应的第二占位符;
将所述多个子模块从所述父级容器中剥离;
将所述父级容器挖空,并填入所述第三占位符。
7.一种报告生成装置,其特征在于,所述装置包括:获取单元和处理单元;
所述获取单元,用于获取与报告的种类对应的目标格式文档模板,其中,所述目标格式文档模板是通过对与所述报告的种类对应的预设文档模板进行格式转换得到的,所述目标格式文档模板包括多个子模块,每个子模块的类型包括第一类型和/或第二类型,所述第一类型为可选类型和必选类型中的任意一种,所述第二类型为固定数量类型和动态数量类型中的任意一种;
所述获取单元,用于获取用于生成所述报告的多个目标变量;
所述处理单元,用于基于所述多个目标变量,从所述多个子模块中获取与所述多个目标变量对应的多个第一子模块;
所述处理单元,用于基于每个目标变量和与每个目标变量对应的第一配置条件,确定与每个目标变量对应的目标模块样式;
所述处理单元,用于基于每个目标变量、与每个目标变量对应的目标模块样式、所述多个第一子模块,生成所述报告,具体包括:
使用与每个目标变量对应的目标模块样式替换所述目标格式文档模板中与该目标模块样式对应的第一占位符,以及使用每个目标变量替换与每个目标变量对应的第一子模块中的第二占位符,得到与每个目标变量对应的第四子模块;
将所述多个目标变量对应的多个第四子模块进行拼接,得到目标模块;
使用所述目标模块替换所述目标格式文档模板中的父级容器对应的第三占位符,生成所述报告。
8.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310679178.2A CN116402038B (zh) | 2023-06-09 | 2023-06-09 | 报告生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310679178.2A CN116402038B (zh) | 2023-06-09 | 2023-06-09 | 报告生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116402038A CN116402038A (zh) | 2023-07-07 |
CN116402038B true CN116402038B (zh) | 2023-08-18 |
Family
ID=87009090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310679178.2A Active CN116402038B (zh) | 2023-06-09 | 2023-06-09 | 报告生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116402038B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779949A (zh) * | 2021-09-17 | 2021-12-10 | 北京天融信网络安全技术有限公司 | 一种报告生成方法、装置、电子设备、存储介质及系统 |
CN115618838A (zh) * | 2022-09-27 | 2023-01-17 | 中国建设银行股份有限公司 | 报告生成方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346803B2 (en) * | 2003-12-12 | 2013-01-01 | Knapp Investment Company Limited | Dynamic generation of target files from template files and tracking of the processing of target files |
-
2023
- 2023-06-09 CN CN202310679178.2A patent/CN116402038B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779949A (zh) * | 2021-09-17 | 2021-12-10 | 北京天融信网络安全技术有限公司 | 一种报告生成方法、装置、电子设备、存储介质及系统 |
CN115618838A (zh) * | 2022-09-27 | 2023-01-17 | 中国建设银行股份有限公司 | 报告生成方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116402038A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7865544B2 (en) | Method and system for providing XML-based asynchronous and interactive feeds for web applications | |
WO2017088509A1 (zh) | 一种页面定制化的方法和装置 | |
US20020174145A1 (en) | Automatic data formatting using a hypertext language | |
US8930824B2 (en) | Facilitating propagation of user interface patterns or themes | |
US20140101539A1 (en) | Website presenting method and browser | |
WO2017028611A1 (zh) | 一种表单实现方法及装置 | |
CN104820589B (zh) | 一种动态适配网页的方法及其装置 | |
CN106503212A (zh) | 一种网页元素样式的设置方法及装置 | |
CN103336794B (zh) | 用于在目标页面中提供对应呈现信息的方法与设备 | |
JP2014524623A (ja) | テンプレートファイルの処理方法及び装置 | |
CN108121539B (zh) | 组件处理方法和装置 | |
CN105989126B (zh) | 一种网页显示方法及装置 | |
CN110708423A (zh) | 消息内容展示方法、装置及存储介质 | |
CN106790276A (zh) | 一种基于浏览器协议的跨浏览器数据交互方法和装置 | |
US10628526B2 (en) | Providing suggested diagrammatic representations of user entered textual information | |
CN104965813B (zh) | 文字素材的处理方法和装置 | |
CN115526160A (zh) | 富文本处理方法、装置、设备及存储介质 | |
CN113360106B (zh) | 一种网页打印方法和装置 | |
CN113297425B (zh) | 文档转换方法、装置、服务器及存储介质 | |
CN107423342A (zh) | 页面数据查询方法和装置 | |
CN116402038B (zh) | 报告生成方法、装置、电子设备及存储介质 | |
CN112115399A (zh) | 基于css的改变页面主题的方法、装置、电子设备和计算机可读介质 | |
CN114491354A (zh) | 一种页面生成方法、装置及计算机可读存储介质 | |
CN103885988B (zh) | 输出内容的方法及装置、内容输出系统 | |
CN105373560A (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 |