CN108694214A - 数据报表的生成方法、生成装置、可读介质及电子设备 - Google Patents
数据报表的生成方法、生成装置、可读介质及电子设备 Download PDFInfo
- Publication number
- CN108694214A CN108694214A CN201710235667.3A CN201710235667A CN108694214A CN 108694214 A CN108694214 A CN 108694214A CN 201710235667 A CN201710235667 A CN 201710235667A CN 108694214 A CN108694214 A CN 108694214A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- query language
- querying condition
- data query
- 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
Abstract
本发明提供了一种数据报表的生成方法、生成装置、可读介质及电子设备,该生成方法包括:获取用户输入的数据查询语言;解析所述数据查询语言,以得到查询列字段和查询条件字段;获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值;基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。本发明的技术方案可以节省数据报表的开发时间,提高了数据报表的开发效率,并且能够灵活地进行配置,易于修改与维护。
Description
技术领域
本发明涉及数据报表技术领域,具体而言,涉及一种数据报表的生成方法、生成装置、可读介质及电子设备。
背景技术
报表系统最基本的功能是为用户提供有价值的数据查询和数据展现,对于数据查询来说,需要关注两个重点:数据来源和数据查询规则的制定;对于数据展现来说,需要关注数据的外观展示方式。数据来源、数据查询规则和外观展示方式这三个关注点涵盖了整个报表的生产环节和消费环节。
相关技术中提出的报表生成方案需要开发人员搭建后台服务,写出SQL(Structured Query Language,结构化查询语言),查询数据库,手工封装成实体数据对象,并编写业务逻辑代码把数据传输到前台页面,然后手工编写前台报表显示界面的代码。
可见,相关技术中提出的报表开发方案必须由开发人员手工开发调用,然后反复调试并修正,效率不高,而且带有个人编程习惯,无法统一编程风格,无论是开发成本,还是维护成本都比较高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种数据报表的生成方法、生成装置、可读介质及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的第一方面,提供了一种数据报表的生成方法,包括:获取用户输入的数据查询语言;解析所述数据查询语言,以得到查询列字段和查询条件字段;获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值;基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。
在本发明的一些实施例中,基于前述方案,获取用户输入的数据查询语言的步骤,包括:创建数据查询页面;检测所述用户在所述数据查询页面上选择的数据库类型,以及针对选择的数据库类型输入的数据查询语言。
在本发明的一些实施例中,基于前述方案,在解析所述数据查询语言的步骤之前,还包括:校验所述数据查询语言是否合法。
在本发明的一些实施例中,基于前述方案,解析所述数据查询语言,以得到所述查询列字段包括:将所述数据查询语言传递至语言解析工具中进行解析;接收所述语言解析工具返回的对所述数据查询语言进行解析得到的类;基于所述语言解析工具返回的类,获得所述查询列字段。
在本发明的一些实施例中,基于前述方案,解析所述数据查询语言,以得到所述查询条件字段包括:提取所述数据查询语言中所有处于参数声明开始字符和参数声明结束字符之间的参数;将提取出的参数作为所述查询条件字段。
在本发明的一些实施例中,基于前述方案,所述参数声明开始字符包括“@”,所述参数声明结束字符包括空格符、回车符、逗号符。
在本发明的一些实施例中,基于前述方案,基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表的步骤,包括:创建数据报表的展示界面;在所述展示界面上展示所述查询条件字段和所述查询列字段,并根据所述查询列字段在展现时的属性值和所述查询条件字段在展现时的属性值,将所述数据查询语言查询到的数据填充至所述展示界面上。
在本发明的一些实施例中,基于前述方案,在所述展示界面上展示所述查询条件字段包括:在所述展示界面上的第一位置创建第一文档片段;针对任一查询条件字段,创建第一DOM元素;根据所述任一查询条件字段的信息设置所述第一DOM元素的展现名称和框体格式;将所述第一DOM元素、所述第一DOM元素的展现名称和框体格式插入所述第一文档片段。
在本发明的一些实施例中,基于前述方案,还包括:创建针对所有查询条件字段的第一控件和第二控件,所述第一控件用于针对选择的查询条件字段执行查询操作,所述第二控件用于清除选择的查询条件字段。
在本发明的一些实施例中,基于前述方案,在所述展示界面上展示所述查询列字段包括:在所述展示界面上的第二位置创建第二文档片段;针对任一查询列字段,创建第二DOM元素;根据所述任一查询列字段的信息设置所述第二DOM元素的展现名称、字体属性,以及表头和/或表体格式;将所述第二DOM元素、所述第二DOM元素的展现名称、字体属性,以及表头和/或表体格式插入所述第二文档片段。
根据本发明的第二方面,还提出了一种数据报表的生成装置,包括:第一获取单元,用于获取用户输入的数据查询语言;解析单元,用于解析所述数据查询语言,以得到查询列字段和查询条件字段;第二获取单元,用于获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值;生成单元,用于基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。
根据本发明的第三方面,还提出了一种可读介质,其上存储有程序,该程序被处理器执行时实现如上述第一方面所述的数据报表的生成方法。
根据本发明的第四方面,还提出了一种电子设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述第一方面所述的数据报表的生成方法。
在本发明的一些实施例所提供的技术方案中,通过获取用户输入的数据查询语言,并对该数据查询语言进行解析得到查询列字段和查询条件字段,进而获得查询列字段的展现属性值和查询条件字段的展现属性值,以用于生成数据报表,使得用户只需输入相应的数据查询语言,便可以获得需要的数据结果,并且能转换为数据报表的形式进行展示,同时可以灵活地配置展现属性值,易于修改和维护,极大地简化了数据报表的开发过程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了根据本发明的实施例的数据报表的生成方法的流程示意图;
图2示出了根据本发明的实施例的数据报表的生成系统的整体架构示意图;
图3示出了根据本发明的实施例的展示查询列字段的各个属性的示意图;
图4示出了根据本发明的实施例的解析查询语言的业务序列示意图;
图5示出了根据本发明的实施例的数据查询页面的示意图;
图6示出了根据本发明的实施例的设置查询列字段的属性的界面示意图;
图7示出了根据本发明的实施例的设置查询条件字段的属性的界面示意图;
图8示意性示出了根据本发明的实施例的数据报表的生成装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性示出了根据本发明的实施例的数据报表的生成方法的流程图。
参照图1,根据本发明的实施例的数据报表的生成方法,包括:
步骤S102,获取用户输入的数据查询语言。
根据本发明的示例性实施例,步骤S102包括:创建数据查询页面;检测所述用户在所述数据查询页面上选择的数据库类型,以及针对选择的数据库类型输入的数据查询语言。
在该示例性实施例中,在数据查询页面中可以枚举多种数据库类型,进而用户可以选择相应的数据库类型,并输入数据查询语言。比如用户选择了关系型数据库,则输入的数据查询语言可以是SQL语言。
步骤S104,解析所述数据查询语言,以得到查询列字段和查询条件字段。
在本发明的示例性实施例中,在解析所述数据查询语言的步骤之前,还可以包括:校验所述数据查询语言是否合法。其中,当数据查询语言校验合法之后,再对数据查询语言进行解析。
以下分别说明如何解析得到查询列字段和查询条件字段:
根据本发明的示例性实施例,解析所述数据查询语言,以得到所述查询列字段包括:将所述数据查询语言传递至语言解析工具中进行解析;接收所述语言解析工具返回的对所述数据查询语言进行解析得到的类;基于所述语言解析工具返回的类,获得所述查询列字段。
作为本发明的一个具体实施例,若数据查询语言为SQL语言,则语言解析工具可以是JSqlParser。具体地,可以将SQL字符串传递给JSqlParser内置的工具类CCJSqlParserUtil的parse方法,此方法需要用try catch判断当前SQL字符串是否符合校验规则,符合的话会返回一组层次分明的java类。然后将返回的java类转换成PlainSelect类,并将此类中的SelectItem列表中的字段信息作为上述的查询列字段。
根据本发明的示例性实施例,解析所述数据查询语言,以得到所述查询条件字段包括:提取所述数据查询语言中所有处于参数声明开始字符和参数声明结束字符之间的参数;将提取出的参数作为所述查询条件字段。
作为本发明的一个具体实施例,若数据查询语言为SQL语言,则所述参数声明开始字符包括“@”,所述参数声明结束字符包括空格符、回车符、逗号符。
步骤S106,获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值。
在本发明的实施例中,获得查询列字段的展现属性值和查询条件字段的展现属性值可以是获得用户设置的展现属性值。比如,提供展现属性值的设置界面,以便用户在该设置界面中设置查询列字段和查询条件字段的展现属性值。
步骤S108,基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。
根据本发明的示例性实施例,步骤S108包括:创建数据报表的展示界面;在所述展示界面上展示所述查询条件字段和所述查询列字段,并根据所述查询列字段在展现时的属性值和所述查询条件字段在展现时的属性值,将所述数据查询语言查询到的数据填充至所述展示界面上。
在本发明的一些实施例中,基于前述方案,在所述展示界面上展示所述查询条件字段包括:在所述展示界面上的第一位置创建第一文档片段;针对任一查询条件字段,创建第一DOM(Document Object Model,文档对象模型)元素;根据所述任一查询条件字段的信息设置所述第一DOM元素的展现名称和框体格式;将所述第一DOM元素、所述第一DOM元素的展现名称和框体格式插入所述第一文档片段。
在本发明的一些实施例中,基于前述方案,还包括:创建针对所有查询条件字段的第一控件和第二控件,所述第一控件用于针对选择的查询条件字段执行查询操作,所述第二控件用于清除选择的查询条件字段。
在本发明的一些实施例中,基于前述方案,在所述展示界面上展示所述查询列字段包括:在所述展示界面上的第二位置创建第二文档片段;针对任一查询列字段,创建第二DOM元素;根据所述任一查询列字段的信息设置所述第二DOM元素的展现名称、字体属性,以及表头和/或表体格式;将所述第二DOM元素、所述第二DOM元素的展现名称、字体属性,以及表头和/或表体格式插入所述第二文档片段。
以下以数据查询语言是SQL语言为例,结合图2至图7对本发明的技术方案进行详细说明:
在本发明的一个实施例中,系统的整体架构如图2所示,主要是以界面操作作为报表的生产线,将报表生产中的三个关注点(即数据来源、数据查询规则和外观展示方式)分为三个功能模块:数据查询,数据封装,数据制表,并以这三个功能模块为基本单元,以实际业务驱动报表的生产,组成一条责任链,用来完成报表的开发。
以下针对这三个功能模块分别进行说明:
数据查询:
在本发明的实施例中,首先需要定义数据查询模板,数据查询模板涉及到两部分:数据的来源和作用于数据来源上的有价值的配置规则。其中,需要创建的数据查询页面就是这两者有机的结合。对于数据来源来说,MySQL、Oracle等关系型数据库和Elasticsearch(是一个基于Lucene的搜索服务器)都可以作为报表生产的数据来源地,而作用于其上的规则,就是对应各自的查询语言,如关系型数据库的SQL,Elasticsearch的DSL。因此当定义数据查询的时候,就需要明确的提供数据来源和查询语言,可以用枚举类型来表示数据来源(枚举值有:MySQL、Oracle、Elasticsearch),查询语言用字符串来表示。在本发明的实施例中,可以使用一个插件:Elasticsearch-sql,这个插件的作用是给予Elasticsearch提供SQL查询服务,通过这个插件,可以很方便的用SQL的方式查询Elasticsearch的数据,而不必困扰于Elasticsearch复杂的查询表达式,同时提供了超越SQL的功能,这样数据查询模板便收集了数据查询最重要的两个产生报表的关注点,而且数据查询语言统一封装成了SQL。
其次要校验查询语言,当定义好数据查询模板的时候,校验查询语言是否合法就是接下来的工作,这里需要使用JSqlParser,JSqlParser是一个基于JavaCC开发的语法解析器,它主要是用于语法解析,也可以利用它的解析功能来校验SQL。
再次要解析查询语言,具体地需要将查询语言解析为如下两部分:
1、查询列字段:这一部分为数据封装的封装列定义做准备,这里需要将字段的属性以数据库维度和外观维度进行抽象,抽象的属性有:字段的名称,字段的标题,字段的类型,字段的值,字段的宽度,字段的小数点位数,字段的默认值,字段的界面展示宽度,字段的界面展示颜色,字段的界面展示风格等,具体如图3所示。
2、查询条件字段:这一部分为数据封装的封装条件定义做准备,SQL解析过程中,条件的解析最为复杂。在本发明的实施例中,可以着重解决传参的问题,这样问题就可以简化成用实际填写的参数替换掉SQL中标记为@的参数声明,所以只需要提取表达式中的字段就可以了,具体业务序列图如图4所示,即将要解析的SQL传递至JSqlParser内置的工具类CCJSqlParserUtil的parse方法,并基于相应的方法获得字段项(也即查询列字段)和表达式(也即查询条件字段),然后封装成Field类返回。
对于数据查询,前后台代码处理逻辑如下:
(1)事先在数据库中创建报表定义表,用于在后续生成报表时使用,此表包含的字段可以如表1所示:
字段名称 | 字段类型 | 字段描述 |
ID | Bigint | 报表定义主键 |
Name | Varchar | 报表定义名称 |
Title | Varchar | 报表定义标题 |
SqlStr | Varchar | 报表模板sql |
SqlType | Varchar | Sql类型:mysql,oracle, |
表1Elasticsearch
同时,也可以在数据库中创建字段定义表,用于存储对SQL解析得到的查询列字段和查询条件字段,此表包含的字段可以如表2所示:
字段名称 | 字段类型 | 字段描述 |
ID | Bigint | 字段定义主键 |
Name | Varchar | 字段定义名称 |
Title | Varchar | 字段定义标题 |
FromTable | Varchar | 字段所属表 |
FieldType | Varchar | 字段的类型 |
FieldLength | int | 字段的宽度 |
DecimalPoint | int | 数值型字段小数点的位数 |
IsSelectField | int | 是列字段还是条件字段 |
Default | Varchar | 字段的默认值 |
表2
(2)创建数据查询页面,并创建SQL设置页签,具体如图5所示,这个页签保存数据查询中的数据源和SQL,用户可以在该页签上选择数据库类型,如MySQL、Oracle、Elasticsearch,并输入相应的SQL,点击保存。
(3)保存的请求传递到后台后,在已经设置好JSqlParser插件的开发环境里解析SQL,将SQL字符串传递给JSqlParser内置的工具类CCJSqlParserUtil的parse方法,此方法需要用try catch判断当前SQL字符串是否符合校验规则,符合的话会正确的返回一组层次分明的java类,不合符校验规则的话,代码指针跳转到catch中,直接返回错误信息给界面。
(4)因为数据查询只涉及到SQL的查询应用,所以需要将返回的java类转换成PlainSelect类,直接获得此类中的SelectItem列表,SQL中所有的查询列字段信息便保存在此列表中,保存到数据库字段定义表,在打开查询列设置页签的时候查询数据库字段定义表中本模板的所有的字段信息发送到前台界面。
(5)对于条件定义的提取,不需要使用JSqlParser插件,可以设置另外一套处理逻辑来实现对条件的提取。如截取SQL字符串中所有以@开始,以逗号或者空格或者回车结尾的参数,即提取出所有的标记为@的参数保存到数据库,在打开查询条件设置时,将本模板中的所有查询条件字段信息发送到前台界面。
数据封装:
数据查询已经为数据封装做好前期准备,所以这个阶段需要填充数据查询中所需要的必须信息,对于每个提取出来的查询列字段,需要设置字段的标题,字段的展示类型,字段的小数点位数,字段的默认值,字段的界面展示宽度,字段的界面展示颜色。
填充完每个查询列字段的属性后,设置SQL的查询条件字段所需要的参数,条件字段的提取在数据查询期间完成,对于数据查询中的SQL:select a,b,c from TABLE wherec=@c,会在参数设置页面自动提取出条件参数c。
前后台处理逻辑如下:
(1)创建查询列设置页签,将保存在数据库中本模板中数据查询解析出来的查询列字段信息展现在前台,具体如图6所示。
在图6中可以设置每个查询列字段的字段标题(数据封装前台展示使用),字段小数点位数(数据封装前台展示使用),字段默认值(数据封装前台展示使用),字段界面展示宽度,字段界面展示颜色,字段界面展示风格等,当设置完成之后,会将所有字段的设置信息更新到数据库字段表中。
(2)创建查询条件设置页签,在打开查询条件设置页签时,将数据库中关于本模板的所有查询条件定义字段查询出来并进行展示,具体如图7所示。在图7中,可以设置查询条件字段的标题、条件字段的类型和条件字段的默认值等,在设置完成之后,将所有条件字段的设置信息更新到数据库字段表中。
数据制表:
数据制表是在页面中对数据进行展示,它涉及到对数据的展示外观和展示方式的定制,通过前述的数据查询已经得到了报表需要展示的过滤条件字段和列定义字段,通过统一的外观处理模板可以展示所有的字段信息。在本发明的示例性实施例中,可以将界面上方的div块用于查询条件字段的展示,将界面下方的div块用于查询列字段的展示,处理逻辑如下:
发送请求消息,将所有的字段信息列表发送到前台界面,利用JavaScript获取所有的字段列表后,对于每一行字段列表需要做如下处理:
在界面上方,创建一个新的空的文档片段,用于查询条件字段的展示。具体地,对于每一个查询条件字段,创建DOM元素,根据查询条件字段的信息设置查询条件字段展现的名称和框体格式(下拉框还是输入框)并插入到文档片段中。同时,可以创建查询按钮和清除按钮,用于对于过滤条件的查询和清除。
在界面下方创建一个新的空的文档片段,用于查询列字段的标题展示。具体地,对于每一个查询列字段,创建DOM元素,根据查询列字段信息设置查询列定义字段展现的名称,字体颜色和表头列宽并插入到文档片段中(只有第一行列定义字段需要创建表头和表体),其余的行直接创建表体,并设置插入值的内容风格,如数值型字段小数的位数。
点击打开报表处理逻辑如下:
当用户点击打开报表按钮时,产生请求并发送到后台服务器,请求经过一系列过滤器到达报表分发器,报表分发器也是一个过滤器,它需要分析请求命令,初始化日志和参数,加载配置文件,装配和注册容器。
容器注册完成以后,根据请求命令调用相应的报表代理实例,报表代理查询数据库的具体SQL,根据数据库类型字段将SQL语句发送到不同的数据库查询(如果是Elasticsearch,需要利用Elasticsearch-sql将语句发送给Elasticsearch),然后将查询结果的每一个字段封装成Field类,每一行封装成一个List。
查询数据库里的字段定义表,将字段定义表的所有设置信息(如字段标题,字段小数点位数)迁移到上方查询出来的每一个字段对应的Field类里。然后将封装好的所有Field字段发送到界面,同时,利用JavaScript排版整个界面的布局。
图8示意性示出了根据本发明的实施例的数据报表的生成装置的框图。
参照图8,根据本发明的实施例的数据报表的生成装置800,包括:第一获取单元802、解析单元804、第二获取单元806和生成单元808。
具体地,第一获取单元802用于获取用户输入的数据查询语言;解析单元804用于解析所述数据查询语言,以得到查询列字段和查询条件字段;第二获取单元806用于获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值;生成单元808用于基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。
需要说明的是,上述数据报表的生成装置中各模块/单元的具体细节已经在对应的数据报表的生成方法中进行了详细的描述,因此此处不再赘述。
此外,本发明的示例性实施例中,还提供一种可读介质,其上存储有程序,该程序被处理器执行时实现如上述的数据报表的生成方法。
所述介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明的示例性实施例还提供了一种电子设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述的数据报表的生成方法。
本发明上述实施例的技术方案可以节省报表开发时间,并且可灵活配置,易于修改和维护,大大简化了报表生产过程,有利于公司统一管理标准。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (12)
1.一种数据报表的生成方法,其特征在于,包括:
获取用户输入的数据查询语言;
解析所述数据查询语言,以得到查询列字段和查询条件字段;
获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值;
基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。
2.根据权利要求1所述的数据报表的生成方法,其特征在于,获取用户输入的数据查询语言的步骤,包括:
创建数据查询页面;
检测所述用户在所述数据查询页面上选择的数据库类型,以及针对选择的数据库类型输入的数据查询语言。
3.根据权利要求1所述的数据报表的生成方法,其特征在于,在解析所述数据查询语言的步骤之前,还包括:
校验所述数据查询语言是否合法。
4.根据权利要求1所述的数据报表的生成方法,其特征在于,解析所述数据查询语言,以得到所述查询列字段包括:
将所述数据查询语言传递至语言解析工具中进行解析;
接收所述语言解析工具返回的对所述数据查询语言进行解析得到的类;
基于所述语言解析工具返回的类,获得所述查询列字段。
5.根据权利要求1所述的数据报表的生成方法,其特征在于,解析所述数据查询语言,以得到所述查询条件字段包括:
提取所述数据查询语言中所有处于参数声明开始字符和参数声明结束字符之间的参数;
将提取出的参数作为所述查询条件字段。
6.根据权利要求1至5中任一项所述的数据报表的生成方法,其特征在于,基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表的步骤,包括:
创建数据报表的展示界面;
在所述展示界面上展示所述查询条件字段和所述查询列字段,并根据所述查询列字段在展现时的属性值和所述查询条件字段在展现时的属性值,将所述数据查询语言查询到的数据填充至所述展示界面上。
7.根据权利要求6所述的数据报表的生成方法,其特征在于,在所述展示界面上展示所述查询条件字段包括:
在所述展示界面上的第一位置创建第一文档片段;
针对任一查询条件字段,创建第一DOM元素;
根据所述任一查询条件字段的信息设置所述第一DOM元素的展现名称和框体格式;
将所述第一DOM元素、所述第一DOM元素的展现名称和框体格式插入所述第一文档片段。
8.根据权利要求7所述的数据报表的生成方法,其特征在于,还包括:
创建针对所有查询条件字段的第一控件和第二控件,所述第一控件用于针对选择的查询条件字段执行查询操作,所述第二控件用于清除选择的查询条件字段。
9.根据权利要求6所述的数据报表的生成方法,其特征在于,在所述展示界面上展示所述查询列字段包括:
在所述展示界面上的第二位置创建第二文档片段;
针对任一查询列字段,创建第二DOM元素;
根据所述任一查询列字段的信息设置所述第二DOM元素的展现名称、字体属性,以及表头和/或表体格式;
将所述第二DOM元素、所述第二DOM元素的展现名称、字体属性,以及表头和/或表体格式插入所述第二文档片段。
10.一种数据报表的生成装置,其特征在于,包括:
第一获取单元,用于获取用户输入的数据查询语言;
解析单元,用于解析所述数据查询语言,以得到查询列字段和查询条件字段;
第二获取单元,用于获得所述查询列字段的展现属性值和所述查询条件字段的展现属性值;
生成单元,用于基于所述查询列字段的展现属性值和所述查询条件字段的展现属性值,根据所述数据查询语言查询到的数据生成数据报表。
11.一种可读介质,其上存储有程序,该程序被处理器执行时实现如权利要求1至9中任一项所述的数据报表的生成方法。
12.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如权利要求1至9中任一项所述的数据报表的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710235667.3A CN108694214A (zh) | 2017-04-12 | 2017-04-12 | 数据报表的生成方法、生成装置、可读介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710235667.3A CN108694214A (zh) | 2017-04-12 | 2017-04-12 | 数据报表的生成方法、生成装置、可读介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108694214A true CN108694214A (zh) | 2018-10-23 |
Family
ID=63843437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710235667.3A Pending CN108694214A (zh) | 2017-04-12 | 2017-04-12 | 数据报表的生成方法、生成装置、可读介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108694214A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299451A (zh) * | 2018-11-07 | 2019-02-01 | 用友网络科技股份有限公司 | 一种基于数据模型的查询系统及方法 |
CN109492056A (zh) * | 2018-10-24 | 2019-03-19 | 江苏满运软件科技有限公司 | 一种商业智能数据查询的方法和系统 |
CN109669949A (zh) * | 2018-12-27 | 2019-04-23 | 广州云趣信息科技有限公司 | 一种基于数据模型的动态报表生成方法和系统实现 |
CN109815281A (zh) * | 2019-01-28 | 2019-05-28 | 四川爱信诺航天信息有限公司 | 一种界面展示系统及方法 |
CN109885814A (zh) * | 2019-03-04 | 2019-06-14 | 上海携程商务有限公司 | 数据表图形生成系统、方法、设备及存储介质 |
CN110597842A (zh) * | 2019-07-22 | 2019-12-20 | 石化盈科信息技术有限责任公司 | 业务数据查询方法及系统 |
CN110929485A (zh) * | 2019-12-06 | 2020-03-27 | 中国银联股份有限公司 | 文件生成方法、装置、设备及介质 |
CN111079391A (zh) * | 2019-12-31 | 2020-04-28 | 恩亿科(北京)数据科技有限公司 | 一种报表的生成方法及装置 |
CN111881660A (zh) * | 2020-06-29 | 2020-11-03 | 金蝶医疗软件科技有限公司 | 报表生成方法、装置、计算机设备和存储介质 |
WO2020253059A1 (zh) * | 2019-06-18 | 2020-12-24 | 平安科技(深圳)有限公司 | 多级联动下拉框的实现方法、装置和计算机设备 |
CN112464633A (zh) * | 2020-11-04 | 2021-03-09 | 贝壳技术有限公司 | 模板生成方法、装置、电子设备及存储介质 |
CN115599818A (zh) * | 2022-10-20 | 2023-01-13 | 中电金信软件有限公司(Cn) | 一种数据查询方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727436A (zh) * | 2008-10-29 | 2010-06-09 | 华为技术有限公司 | 一种报表数据处理方法、报表系统以及相关装置 |
CN101799801A (zh) * | 2010-01-26 | 2010-08-11 | 中兴通讯股份有限公司 | 基于流量协议的自定义统计报表的实现方法和装置 |
CN101908040A (zh) * | 2010-07-01 | 2010-12-08 | 千乡万才科技(中国)有限公司 | 一种数据报表系统 |
US20120173522A1 (en) * | 2010-12-30 | 2012-07-05 | Stefan Girsig | Field extensibility for analytical reports |
CN104376068A (zh) * | 2014-11-07 | 2015-02-25 | 北京思特奇信息技术股份有限公司 | 一种基于动态报表模板的数据展现系统及方法 |
CN104714949A (zh) * | 2013-12-11 | 2015-06-17 | 航天信息股份有限公司 | 一种动态定制报表的方法 |
CN105843945A (zh) * | 2016-04-08 | 2016-08-10 | 联动优势科技有限公司 | 一种报表生成方法及系统 |
-
2017
- 2017-04-12 CN CN201710235667.3A patent/CN108694214A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727436A (zh) * | 2008-10-29 | 2010-06-09 | 华为技术有限公司 | 一种报表数据处理方法、报表系统以及相关装置 |
CN101799801A (zh) * | 2010-01-26 | 2010-08-11 | 中兴通讯股份有限公司 | 基于流量协议的自定义统计报表的实现方法和装置 |
CN101908040A (zh) * | 2010-07-01 | 2010-12-08 | 千乡万才科技(中国)有限公司 | 一种数据报表系统 |
US20120173522A1 (en) * | 2010-12-30 | 2012-07-05 | Stefan Girsig | Field extensibility for analytical reports |
CN104714949A (zh) * | 2013-12-11 | 2015-06-17 | 航天信息股份有限公司 | 一种动态定制报表的方法 |
CN104376068A (zh) * | 2014-11-07 | 2015-02-25 | 北京思特奇信息技术股份有限公司 | 一种基于动态报表模板的数据展现系统及方法 |
CN105843945A (zh) * | 2016-04-08 | 2016-08-10 | 联动优势科技有限公司 | 一种报表生成方法及系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492056A (zh) * | 2018-10-24 | 2019-03-19 | 江苏满运软件科技有限公司 | 一种商业智能数据查询的方法和系统 |
CN109299451A (zh) * | 2018-11-07 | 2019-02-01 | 用友网络科技股份有限公司 | 一种基于数据模型的查询系统及方法 |
CN109669949A (zh) * | 2018-12-27 | 2019-04-23 | 广州云趣信息科技有限公司 | 一种基于数据模型的动态报表生成方法和系统实现 |
CN109815281A (zh) * | 2019-01-28 | 2019-05-28 | 四川爱信诺航天信息有限公司 | 一种界面展示系统及方法 |
CN109885814A (zh) * | 2019-03-04 | 2019-06-14 | 上海携程商务有限公司 | 数据表图形生成系统、方法、设备及存储介质 |
WO2020253059A1 (zh) * | 2019-06-18 | 2020-12-24 | 平安科技(深圳)有限公司 | 多级联动下拉框的实现方法、装置和计算机设备 |
CN110597842A (zh) * | 2019-07-22 | 2019-12-20 | 石化盈科信息技术有限责任公司 | 业务数据查询方法及系统 |
CN110597842B (zh) * | 2019-07-22 | 2023-10-03 | 石化盈科信息技术有限责任公司 | 业务数据查询方法及系统 |
CN110929485B (zh) * | 2019-12-06 | 2023-09-19 | 中国银联股份有限公司 | 文件生成方法、装置、设备及介质 |
CN110929485A (zh) * | 2019-12-06 | 2020-03-27 | 中国银联股份有限公司 | 文件生成方法、装置、设备及介质 |
CN111079391A (zh) * | 2019-12-31 | 2020-04-28 | 恩亿科(北京)数据科技有限公司 | 一种报表的生成方法及装置 |
CN111079391B (zh) * | 2019-12-31 | 2024-01-19 | 恩亿科(北京)数据科技有限公司 | 一种报表的生成方法及装置 |
CN111881660A (zh) * | 2020-06-29 | 2020-11-03 | 金蝶医疗软件科技有限公司 | 报表生成方法、装置、计算机设备和存储介质 |
CN112464633A (zh) * | 2020-11-04 | 2021-03-09 | 贝壳技术有限公司 | 模板生成方法、装置、电子设备及存储介质 |
CN115599818B (zh) * | 2022-10-20 | 2023-08-25 | 中电金信软件有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN115599818A (zh) * | 2022-10-20 | 2023-01-13 | 中电金信软件有限公司(Cn) | 一种数据查询方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108694214A (zh) | 数据报表的生成方法、生成装置、可读介质及电子设备 | |
CN104881275B (zh) | 一种电子报表生成方法及装置 | |
CN107644323A (zh) | 一种面向业务流的智能审核系统 | |
US20050183002A1 (en) | Data and metadata linking form mechanism and method | |
US20080155519A1 (en) | Code translator | |
CN109766529B (zh) | 一种报表的生成方法及设备 | |
CN103810196A (zh) | 基于业务模型进行数据库性能测试的方法 | |
CN103077185A (zh) | 一种基于对象的自定义扩展信息的方法 | |
CN101788994A (zh) | 一种数据展示模型建立方法、数据展示方法及装置 | |
CN104714949A (zh) | 一种动态定制报表的方法 | |
CN104598635A (zh) | 一种基于xml描述的复杂文档自动生成方法 | |
WO2005055001A2 (en) | Method for assisting in automated conversion of data and associated metadata | |
CN104461531B (zh) | 一种报表系统自定义函数的实现方法 | |
CN111126019B (zh) | 基于模式定制的报表生成方法、装置和电子设备 | |
CN103593335A (zh) | 基于本体一致性验证推理的中文语义校对方法 | |
CN110427188B (zh) | 单测断言程序的配置方法、装置、设备及存储介质 | |
CN109299074A (zh) | 一种基于模板化数据库视图的数据校验方法及系统 | |
CN103678396B (zh) | 一种基于数据模型的数据备份方法和装置 | |
US9652478B2 (en) | Method and apparatus for generating an electronic document schema from a relational model | |
CN108766507A (zh) | 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法 | |
CN108664242A (zh) | 生成可视化界面的方法、装置、电子设备和可读存储介质 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN105556504A (zh) | 从物理流生成逻辑表示 | |
CN102866985B (zh) | 用于联机分析处理系统的数据格式化装置和方法 | |
CN103399746B (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: 20181023 |
|
RJ01 | Rejection of invention patent application after publication |