CN111291542B - 报告生成方法、系统、可读存储介质及计算机设备 - Google Patents
报告生成方法、系统、可读存储介质及计算机设备 Download PDFInfo
- Publication number
- CN111291542B CN111291542B CN202010400073.5A CN202010400073A CN111291542B CN 111291542 B CN111291542 B CN 111291542B CN 202010400073 A CN202010400073 A CN 202010400073A CN 111291542 B CN111291542 B CN 111291542B
- Authority
- CN
- China
- Prior art keywords
- index
- tree
- target
- input data
- report
- 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
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种报告生成方法、系统、可读存储介质及计算机设备,所述报告生成方法包括:获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入;通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算;当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标;根据所述目标指标中的目标结论性数据生成报告。本发明能够解决现有技术灵活度不够,在代码在编辑完成后,无法对结论性文字或逻辑进行修改的问题。
Description
技术领域
本发明涉及软件技术领域,特别是涉及一种报告生成方法、系统、可读存储介质及计算机设备。
背景技术
在编写报告时,会根据数据的不同编写不同的结论性文字,例如:本月pm2.5指数相比上周提高,外出请注意防护。这种文本存在逻辑关系,需要根据pm2.5在本月及上月的数据进行逻辑判断,从而输出以上文字。
目前主流的做法是采用代码实现,利用代码逻辑实现输出不同的文本结论。这种方法虽然能够实现,但是灵活度不够,代码在编辑完成后,是不能够再继续修改,因此未来如果需要修改结论性文字或是逻辑修改,就无能为力。
发明内容
为此,本发明的一个目的在于提出一种报告生成方法,以解决现有技术灵活度不够,在代码在编辑完成后,无法对结论性文字或逻辑进行修改的问题。
本发明提供一种报告生成方法,包括:
获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入;
通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算;
当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标;
根据所述目标指标中的目标结论性数据生成报告。
根据本发明提供的报告生成方法,用户可以先通过指标编辑器输入指标,并以此构建指标树,当需要生成报告中,输入目标输入数据,即可根据指标树计算出对应的目标指标,得出目标结论性数据,并生成报告,由于指标编辑是在系统部署完成后编辑的,而不是开发阶段,因此可以临时进行修改结论性文字或逻辑,提高了报告输出的灵活性。此外,指标编辑器在编辑结论时能够编写逻辑代码,能够根据不同的数据进行逻辑判断,生成不同的结论内容,实用性更强。
另外,根据本发明上述的报告生成方法,还可以具有如下附加的技术特征:
进一步地,通过所述指标编辑器获取所述指标,并对所述指标进行解析,以生成指标树的步骤具体包括:
在指标关系解析器中使用脚本引擎编译,在返回的对象中,描述未识别的变量;
通过获取指标库以获取未识别变量的表达式,通过不断递归以生成指标树。
进一步地,所述指标树为树形结构,所述指标树中的每个节点包含当前节点的表达式和未识别的变量节点。
进一步地,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标的步骤具体包括:
通过指标计算器遍历所述指标树,调用脚本引擎执行未识别变量的表达式,获取该未识别变量的变量值、上层的表达式依赖子节点的变量值,从而由下向上不断计算出位于顶层的、所述目标输入数据对应的目标指标的值。
进一步地,所述指标计算器通过广度优先算法遍历所述指标树。
本发明的另一个目的在于提出一种报告生成系统,以解决现有技术灵活度不够,在代码在编辑完成后,无法对结论性文字或逻辑进行修改的问题。
一种报告生成系统,所述系统包括:
获取模块,用于获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入;
解析模块,用于通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算;
计算模块,用于当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标;
生成模块,用于根据所述目标指标中的目标结论性数据生成报告。
根据本发明提供的报告生成系统,用户可以先通过指标编辑器输入指标,并以此构建指标树,当需要生成报告中,输入目标输入数据,即可根据指标树计算出对应的目标指标,得出目标结论性数据,并生成报告,由于指标编辑是在系统部署完成后编辑的,而不是开发阶段,因此可以临时进行修改结论性文字或逻辑,提高了报告输出的灵活性。此外,指标编辑器在编辑结论时能够编写逻辑代码,能够根据不同的数据进行逻辑判断,生成不同的结论内容,实用性更强。
另外,根据本发明上述的报告生成系统,还可以具有如下附加的技术特征:
进一步地,所述解析模块包括:
编译单元,用于在指标关系解析器中使用脚本引擎编译,在返回的对象中,描述未识别的变量;
递归单元,用于通过获取指标库以获取未识别变量的表达式,通过不断递归以生成指标树。
进一步地,所述指标树为树形结构,所述指标树中的每个节点包含当前节点的表达式和未识别的变量节点。
进一步地,所述计算模块具体用于:
通过指标计算器遍历所述指标树,调用脚本引擎执行未识别变量的表达式,获取该未识别变量的变量值、上层的表达式依赖子节点的变量值,从而由下向上不断计算出位于顶层的、所述目标输入数据对应的目标指标的值。
进一步地,所述指标计算器通过广度优先算法遍历所述指标树。
本发明还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。
附图说明
本发明实施例的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明第一实施例的报告生成方法的流程图;
图2是某个指标树的部分示意图;
图3是根据本发明第二实施例的报告生成系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明进行描述前,首先对以下技术用语进行说明:
指标:一段逻辑脚本,在报告编辑器中以占位形式插入,最终被解析成一段文本。
指标树:指标脚本可通过变量引用其他指标,形成树形结构,同层级节点可并行计算。
指标库:由多个指标构成,除了报告本身包含指标,还有供多个报告复用的指标库。
指标编辑器:用于编辑指标脚本内容,提供语法提示和检查、预览结果等功能。
报告编辑器:一个类Word的文本编辑器,除静态内容,还可以插入指标和动态图表。
请参阅图1,本发明第一实施例提出的报告生成方法,包括步骤S101~S104。
S101,获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入。
其中,用户通过指标编辑器输入的指标例如是:指标A:"结论1":"结论2"。“”为输入数据,"结论1"和"结论2"为结论性数据。逻辑信息为:若满足本月PM2.5>上月PM2.5,则对应"结论1",若不满足本月PM2.5>上月PM2.5,则对应"结论2"。
S102,通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算。
其中,步骤S102具体包括:
在指标关系解析器中使用脚本引擎编译,在返回的对象中,描述未识别的变量;
通过获取指标库以获取未识别变量的表达式,通过不断递归以生成指标树,所述指标树为树形结构,所述指标树中的每个节点包含当前节点的表达式和未识别的变量节点。例如:本月PM2.5和上月PM2.5是未识别的变量,再通过获取指标库获取未识别变量的表达式,不断递归生成指标树。
其中,指标树描述的是多个指标之间的依赖层级关系(某个指标依赖其他指标的执行结果),图2展示了某个指标树的一部分(分支):
指标树的生成过程如下:
1.从报告中获取一个指标内容开始编译,获得依赖指标名;
2.通过依赖指标名从报告指标库中获取依赖指标内容并编译,再次获得新的依赖项;
3.重复步骤2递归编译,直到所有依赖项被找到,本分支生成完毕;
4.回到步骤1,继续从报告中获取下一个被插入指标,开始生成新的分支。
最终,生成一颗包含整个报告所需执行的指标树,通过分析此树可进一步生成执行计划。
在本发明中,指标树所起到的作用包括:
1.检查错误:包括语法错误、缺失依赖、循环依赖(例如,A依赖B,而B又依赖A);
2.通过分析指标间的关系构建执行计划,并行处理指标内容,加快报告生成速度。
S103,当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标。
其中,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标的步骤具体包括:
通过指标计算器遍历所述指标树,调用脚本引擎执行未识别变量的表达式,获取该未识别变量的变量值、上层的表达式依赖子节点的变量值,从而由下向上不断计算出位于顶层的、所述目标输入数据对应的目标指标的值。
具体实施时,指标计算器可以通过广度优先算法遍历所述指标树。
S104,根据所述目标指标中的目标结论性数据生成报告。
根据本实施例提供的报告生成方法,用户可以先通过指标编辑器输入指标,并以此构建指标树,当需要生成报告中,输入目标输入数据,即可根据指标树计算出对应的目标指标,得出目标结论性数据,并生成报告,由于指标编辑是在系统部署完成后编辑的,而不是开发阶段,因此可以临时进行修改结论性文字或逻辑,提高了报告输出的灵活性。此外,指标编辑器在编辑结论时能够编写逻辑代码,能够根据不同的数据进行逻辑判断,生成不同的结论内容,实用性更强。
请参阅图3,基于同一发明构思,本发明第二实施例提出的报告生成系统,所述系统包括:
获取模块,用于获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入;
解析模块,用于通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算;
计算模块,用于当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标;
生成模块,用于根据所述目标指标中的目标结论性数据生成报告。
本实施例中,所述解析模块包括:
编译单元,用于在指标关系解析器中使用脚本引擎编译,在返回的对象中,描述未识别的变量;
递归单元,用于通过获取指标库以获取未识别变量的表达式,通过不断递归以生成指标树。
本实施例中,所述指标树为树形结构,所述指标树中的每个节点包含当前节点的表达式和未识别的变量节点。
本实施例中,所述计算模块具体用于:
通过指标计算器遍历所述指标树,调用脚本引擎执行未识别变量的表达式,获取该未识别变量的变量值、上层的表达式依赖子节点的变量值,从而由下向上不断计算出位于顶层的、所述目标输入数据对应的目标指标的值。
本实施例中,所述指标计算器通过广度优先算法遍历所述指标树。
根据本实施例的报告生成系统,用户可以先通过指标编辑器输入指标,并以此构建指标树,当需要生成报告中,输入目标输入数据,即可根据指标树计算出对应的目标指标,得出目标结论性数据,并生成报告,由于指标编辑是在系统部署完成后编辑的,而不是开发阶段,因此可以临时进行修改结论性文字或逻辑,提高了报告输出的灵活性。此外,指标编辑器在编辑结论时能够编写逻辑代码,能够根据不同的数据进行逻辑判断,生成不同的结论内容,实用性更强。
此外,本发明的实施例还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一实施例中所述方法的步骤。
此外,本发明的实施例还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一实施例中所述方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (8)
1.一种报告生成方法,其特征在于,所述方法包括:
获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入;
通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算;
当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标;
根据所述目标指标中的目标结论性数据生成报告;
其中,通过所述指标编辑器获取所述指标,并对所述指标进行解析,以生成指标树的步骤具体包括:
在指标关系解析器中使用脚本引擎编译,在返回的对象中,描述未识别的变量;
通过获取指标库以获取未识别变量的表达式,通过不断递归以生成指标树。
2.根据权利要求1所述的报告生成方法,其特征在于,所述指标树为树形结构,所述指标树中的每个节点包含当前节点的表达式和未识别的变量节点。
3.根据权利要求2所述的报告生成方法,其特征在于,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标的步骤具体包括:
通过指标计算器遍历所述指标树,调用脚本引擎执行未识别变量的表达式,获取该未识别变量的变量值、上层的表达式依赖子节点的变量值,从而由下向上不断计算出位于顶层的、所述目标输入数据对应的目标指标的值。
4.根据权利要求3所述的报告生成方法,其特征在于,所述指标计算器通过广度优先算法遍历所述指标树。
5.一种报告生成系统,其特征在于,所述系统包括:
获取模块,用于获取用户通过指标编辑器输入的指标,所述指标为预设字符的逻辑脚本,所述指标包括输入数据、结论性数据以及两者的逻辑信息,所述指标在报告编辑器中以占位形式插入;
解析模块,用于通过指标编译器获取所述指标,并对所述指标进行解析,以生成指标树,所述指标树中同层级节点可并行计算;
计算模块,用于当接收到目标输入数据时,通过指标计算器遍历所述指标树,以计算出所述目标输入数据对应的目标指标;
生成模块,用于根据所述目标指标中的目标结论性数据生成报告;
所述解析模块包括:
编译单元,用于在指标关系解析器中使用脚本引擎编译,在返回的对象中,描述未识别的变量;
递归单元,用于通过获取指标库以获取未识别变量的表达式,通过不断递归以生成指标树。
6.根据权利要求5所述的报告生成系统,其特征在于,所述指标树为树形结构,所述指标树中的每个节点包含当前节点的表达式和未识别的变量节点。
7.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4任意一项所述的方法。
8.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010400073.5A CN111291542B (zh) | 2020-05-13 | 2020-05-13 | 报告生成方法、系统、可读存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010400073.5A CN111291542B (zh) | 2020-05-13 | 2020-05-13 | 报告生成方法、系统、可读存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291542A CN111291542A (zh) | 2020-06-16 |
CN111291542B true CN111291542B (zh) | 2020-09-11 |
Family
ID=71022690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010400073.5A Active CN111291542B (zh) | 2020-05-13 | 2020-05-13 | 报告生成方法、系统、可读存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291542B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541335B (zh) * | 2020-12-24 | 2023-09-01 | 北京百度网讯科技有限公司 | 生成解读文本的方法、装置、电子设备及存储介质 |
CN115408499B (zh) * | 2022-11-02 | 2023-02-07 | 思创数码科技股份有限公司 | 政务数据分析报告图表自动化分析解读方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359284A (zh) * | 2018-09-25 | 2019-02-19 | 深圳市稳大网络技术有限公司 | 一种报告处理方法、装置及终端设备 |
CN109684621A (zh) * | 2018-12-25 | 2019-04-26 | 国电大渡河大岗山水电开发有限公司 | 一种设备运行分析报告生成及审核流程方法 |
CN111143981B (zh) * | 2019-12-18 | 2023-09-22 | 北京临近空间飞艇技术开发有限公司 | 虚拟试验模型验证系统及方法 |
-
2020
- 2020-05-13 CN CN202010400073.5A patent/CN111291542B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111291542A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100054B (zh) | 一种面向数据管控的程序静态分析方法和系统 | |
CN110998516B (zh) | 用于异构编程数据处理系统的自动化依赖性分析器 | |
US8392873B2 (en) | Methods and apparatus for implementing model-based software solution development and integrated change management | |
US9524279B2 (en) | Help document animated visualization | |
KR101307711B1 (ko) | 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 | |
CN111291542B (zh) | 报告生成方法、系统、可读存储介质及计算机设备 | |
US20070282593A1 (en) | Hierarchical state machine generation for interaction management using goal specifications | |
CN109491658A (zh) | 计算机可执行代码数据的生成方法及装置 | |
US20050188323A1 (en) | Template creation apparatus and creation method | |
Vermolen et al. | Heterogeneous coupled evolution of software languages | |
US10915302B2 (en) | Identification and visualization of associations among code generated from a model and sources that affect code generation | |
Söderberg et al. | Incremental evaluation of reference attribute grammars using dynamic dependency tracking | |
CN111124379A (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN112306486B (zh) | 一种界面生成方法、装置、服务器及存储介质 | |
Seidl et al. | Incremental abstract interpretation | |
CN114791808A (zh) | 一种数据流图生成方法及装置 | |
Poetzsch-Heffter | Prototyping realistic programming languages based on formal specifications | |
Dijkstra et al. | Building javascript applications with haskell | |
CN111651160B (zh) | 插件构建、网页设计的方法和装置 | |
Rodríguez-Cerezo et al. | A systematic approach to the implementation of attribute grammars with conventional compiler construction tools | |
CN118567820B (zh) | 一种任务编排实现方法及装置、电子设备、存储介质 | |
CN115562649B (zh) | 一种计算机混合程序语言源代码辅助编写方法及系统 | |
CN114675833A (zh) | 基于iOS的属性声明代码的自动生成方法及装置 | |
Grammes | Formal Operations for SDL Language Profiles | |
Arteca | Formal semantics and mechanized soundness proof for fast gradually typed JavaScript |
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 |