CN110019433B - 一种报表查询方法和装置 - Google Patents
一种报表查询方法和装置 Download PDFInfo
- Publication number
- CN110019433B CN110019433B CN201810002313.9A CN201810002313A CN110019433B CN 110019433 B CN110019433 B CN 110019433B CN 201810002313 A CN201810002313 A CN 201810002313A CN 110019433 B CN110019433 B CN 110019433B
- Authority
- CN
- China
- Prior art keywords
- query
- report
- sql
- condition
- query condition
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/24—Querying
- G06F16/248—Presentation of query results
Abstract
本发明公开了一种报表查询方法和装置。所述方法包括:接收查询请求,所述查询请求携带报表单据号;根据所述报表单据号初始化查询条件集;根据用户在所述查询条件集中选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句,所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号;根据所述SQL查询语句在所述报表数据库中查询相应的结果集。本发明可以使用户可以根据需求选择查询条件,根据查询条件动态拼写SQL查询语句进行结果集查询,达到无限制的多条件查询和SQL语句拼写最优的效果。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种报表查询方法和装置。
背景技术
报表就是用表格、图表等格式来显示数据。随着计算机的出现,通过计算机处理数据和界面设计的功能来生成、展示报表成为可能,大量的数据处理需求,催生了许多报表软件,报表软件的主要特点是数据动态化,格式多样化,并且实现报表数据和报表格式的完全分离,表头样式和数据都是事先固定好的,只有报表的内容是动态数据,用户可以只修改数据或者只修改格式。
现有的报表软件所提供的表头样式一般都是固定的,如果在进行列表查询货列表展示时涉及多条件查询,不能支持无限制的多条件查询,使用场合受限。
发明内容
本发明提供了一种报表查询方法和装置,以解决现有技术不支持无限制的多条件查询的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供一种报表查询方法,所述方法包括:
接收查询请求,所述查询请求携带报表单据号;
根据所述报表单据号初始化查询条件集;
根据用户在所述查询条件集中选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句,所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号;
根据所述SQL查询语句在所述报表数据库中查询相应的结果集。
另一方面,本发明提供一种报表查询装置,所述装置包括:
接收单元,用于接收查询请求,所述查询请求携带报表单据号;
初始化单元,用于根据所述报表单据号初始化查询条件集;
拼写单元,用于根据用户在所述查询条件集中选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句,所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号;
查询单元,用于根据所述SQL查询语句在所述报表数据库中查询相应的结果集。
本发明的有益效果是:本发明在报表数据库中注册SQL语句,根据查询请求携带的报表单据号动态初始化查询条件集,以使得用户可以根据需求选择查询条件,根据查询条件动态拼写SQL查询语句进行结果集查询,达到无限制的多条件查询和SQL语句拼写最优的效果,无需每种情况都设计一种SQL语句进行查询。本发明的报表查询方法具有操作简单便捷,符合用户习惯,适用面广的优势。
附图说明
图1为本发明实施例提供的报表查询方法流程图;
图2为本发明实施例提供的支持无限制多条件查询的列表示意图;
图3为本发明实施例提供的报表查询装置结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1为本发明实施例提供的报表查询方法流程图,如图1所示,本实施例的方法包括:
S100,接收查询请求,所述查询请求携带报表单据号。
S110,根据所述报表单据号初始化查询条件集。
本实施例中的报表单据号关联查询条件集,所述查询条件集包括所述报表单据号关联的全部查询条件信息。示例性地,如果报表为采购报表,若采购报表单据号对应的查询条件信息包括物品名称、物品型号、物品用途、物品价格,则根据该采购报表单据号初始化的查询条件集中包括上述物品名称、物品型号、物品用途、物品价格;如果报表为人员统计报表,若人员统计报表单据号对应的查询条件信息包括:员工姓名、员工性别、员工岗位、员工请假日期,则根据人员统计报表单据号初始化的查询条件集中包括上述员工姓名、员工性别、员工岗位、员工请假日期。
S120,根据用户在查询条件集中选择的查询条件信息和报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句;所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号。
其中,本实施例的报表数据库为支持SQL查询的数据库。
S130,根据所述SQL查询语句在所述报表数据库中查询相应的结果集。
本实施例在报表数据库中注册SQL语句,根据查询请求携带的报表单据号动态初始化查询条件集,以使得用户可以根据需求选择查询条件,根据查询条件动态拼写SQL查询语句进行结果集查询,达到无限制的多条件查询和SQL语句拼写最优的效果,无需每种情况都设计一种SQL语句进行查询。
本实施例的报表查询方法操作简单便捷,符合用户习惯,适用面广。
在本发明的一个实施例中,通过下述方法在报表数据库中注册SQL语句:
将预先写好的SQL语句按照Select字段、From字段、Where字段和Groupby字段进行拆分,并将拆分的数据保存到对应的四张excel表中,该四张excel表通过报表单据号关联,并分别对应于报表数据库中的主表、子表、关系表和查询条件表;将每张excel表对应的数据导入到报表数据库相应的表中。
实际应用中,二次开发人员预先写一个大而全的统计报表的SQL语句,将所写的SQL语句拆分到相应的excel表中,该四张excel表通过报表单据号关联,并且分别报表数据库中的主表(FX_ReportConfigGroupMain)、子表(FX_ReportConfigColSub)、关系表(FX_FxConrelationship)和查询条件表(FX_ConfRepGroupWhere),可以使用JSTL工具将每张excel表对应的数据导入到报表数据库相应的表中,完成SQL语句的注册,后续根据生成的查询字段和分组字段,将相应的字段封装成SQL查询语句进行数据查询。
在本发明的一个实施例中,本实施例通过下述方法初始化查询条件集:
根据初始化查询方法getSearchConditionByMenuCode()获取报表单据号对应的查询条件集;根据查询条件集息生成预显示表格,本实施例的预显示表格中每条查询条件设置查询关键字和查询值。
示例性的,可以预先初始化一个JTable预显示表格供用户显示,在JTable的查询区域显示查询条件集中的查询条件信息。如图2所示,在图2所示的表格的查询区域,设置有三列选择框,第一列选择框的个数对应于查询条件集包括的查询条件数,图2示例性示出3个查询条件;第二列选择框对应于其查询条件的关键字,如图2示出的关键字可以为“isanything”、“is”、“doesn’t equal”等11个关键字;第三列选择框对应于查询值,查询值根据具体应用场景设置。
如图2所示,本实施例中的预显示表格中设置有查询条件增加选项“+”和查询条件删除选项“-”,在用户点击查询条件增加选项“+”时,可以增加一条查询条件,及该查询条件对应的关键字和查询值;在用户点击查询条件删除选项“-”时,可以删除一条查询条件和该查询条件对应的关键字和查询值。本实施例中的预显示表格中还可以设置查询条件关系选项,如设置在图2中第二个查询条件选择框前的选择框,该查询条件关系选项取值可以为“与(如图2中的And)”或“或”,在该查询条件关系选项取值为“与”时,表明该查询条件与其前面的查询条件为与的关系,在该查询条件关系选项取值为“或”时,表明该查询条件与其前面的查询条件为与的关系。
相应的,在报表数据库中动态拼写SQL语句包括:
根据用户选择的查询条件、查询关键字和查询值生成分组信息和条件信息,根据报表单据号信息抽取用于拼写SQL查询语句的四个对象值,根据分组信息和条件信息调用语句查询方法getSQL,基于所述四个对象值拼写该查询请求对应的SQL查询语句。
本实施例可以调用数据查询方法queryData响应用户的选择操作,利用分组映射表属性groupMap生成上述查询条件、查询关键字和查询值对应的分组信息和条件信息。
在实际应用中,可以使用CORE JAVA SWING来实现上述报表查询方法,利用统一的父类来处理报表的多条件查询。本实施例结合用户对前台报表的选择操作所生成的信息和后台注册的SQL语句进行多条件的数据库查询。
示例性的,可以使用报表子类,如报表子类BookFileCountUI(该报表子类为报表嵌套类ReportNestedUI等抽象类的报表父类),根据报表单据号来抽取用于准备拼写SQL语句的四个对象值VO,即主表对象值ReportConfigGroupMainVO、子表对象值ReportConfigColSubVO、关系表对象值FxConrelationshipVO和查询条件对象值ConfRepGroupWhereVO,此时会利用报表工具JTable初始化一个预显示表格供用户显示,但初始化的该预显示表格此时显示的列为所有预显示列的大全集。
当用户打开报表生成查询请求时,本实施例根据查询请求携带报表单据号获取查询所有可查询的查询条件信息,在列表展示前完成初始化工作。用户可以点击如图2中的查询条件增加选项“+”来添加查询条件,用户可以根据需求选择查询条件的内容以及该查询条件对应的关键字和查询值。当用户点击查询按钮“Go”时,ReportNestedUI父类调用数据查询方法queryData响应用户的查询请求,利用分组表groupMap属性生成所述查询条件、查询关键字和查询值对应的分组信息和条件信息。
ReportNestedUI父类再根据生成的分组信息及条件信息,调用自身的SQL获取方法getSQL,经过报表类ReportUtilImpl中的询问嵌套方法queryNestedData()及嵌套类NestedSql的concatSQL方法获取相应的SQL查询语句,然后查询相应的结果集返回到ReportNestedUI的方法中,接着对结果集中的数据进行处理。
在对结果集中的数据处理中,可以使用Java工具包Bean封装结果集中的数据并返回到上述预显示表格中,完成多条件查询。
与上述方法实施例相对应的,本发明还提供了一种报表查询装置实施例。图3为本发明实施例提供的报表查询装置结构框图,如图3所示,该装置包括接收单元31、初始化单元32、拼写单元33和查询单元34;
接收单元31,用于接收查询请求,所述查询请求携带报表单据号;
初始化单元32,用于根据所述报表单据号初始化查询条件集;
拼写单元33,用于根据用户在所述查询条件集中选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句,所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号;
查询单元34,用于根据所述SQL查询语句在所述报表数据库中查询相应的结果集。
本实施例优选地,图3中的装置还包括注册导入单元;
该注册导入单元,用于将预先写好的SQL语句按照Select字段、From字段、Where字段和Groupby字段进行拆分,并将拆分的数据保存到对应的四张excel表中,该四张excel表通过报表单据号关联,并分别对应于报表数据库中的主表、子表、关系表和查询条件表;将每张excel表对应的数据导入到所述报表数据库相应的表中。
在本发明的一个实施例中,初始化单元32,用于根据初始化查询方法getSearchConditionByMenuCode()获取所述报表单据号对应的查询条件集;根据所述查询条件集息生成预显示表格,其中预显示表格中每条查询条件设置查询关键字和查询值。
在本发明的另一个实施例中,拼写单元33,用于根据用户选择的查询条件、查询关键字和查询值生成分组信息和条件信息,根据所述报表单据号信息抽取用于拼写SQL查询语句的四个对象值,以及根据分组信息和条件信息调用语句查询方法getSQL,基于所述四个对象值拼写该查询请求对应的SQL查询语句。
其中,拼写单元33,具体是调用数据查询方法queryData响应用户的选择操作,利用分组表groupMap属性生成所述查询条件、查询关键字和查询值对应的分组信息和条件信息。
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种报表查询方法,其特征在于,所述方法包括:
接收查询请求,所述查询请求携带报表单据号;
根据所述报表单据号初始化查询条件集,所述查询条件集包括所述报表单据号关联的全部查询条件信息;
根据用户在所述查询条件集中选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句,所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号;
根据所述SQL查询语句在所述报表数据库中查询相应的结果集;
其中,所述根据所述报表单据号初始化查询条件集,包括:
根据初始化查询方法getSearchConditionByMenuCode()获取所述报表单据号对应的查询条件集;
根据所述查询条件集生成预显示表格,所述预显示表格中设置有查询条件增加选项和查询条件删除选项,所述预显示表格的查询区域显示查询条件集中的查询条件信息,每条查询条件设置查询关键字和查询值。
2.根据权利要求1所述的报表查询方法,其特征在于,根据下述方法在所述报表数据库中注册SQL语句:
将预先写好的SQL语句按照Select字段、From字段、Where字段和Groupby字段进行拆分,并将拆分的数据保存到对应的四张excel表中,该四张excel表通过报表单据号关联,并分别对应于报表数据库中的主表、子表、关系表和查询条件表;
将每张excel表对应的数据导入到所述报表数据库相应的表中。
3.根据权利要求1所述的报表查询方法,其特征在于,所述根据用户选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,包括:
根据用户选择的查询条件、查询关键字和查询值生成分组信息和条件信息;
根据所述报表单据号信息抽取用于拼写SQL查询语句的四个对象值;
根据分组信息和条件信息调用语句查询方法getSQL,基于所述四个对象值拼写该查询请求对应的SQL查询语句。
4.根据权利要求3所述的报表查询方法,其特征在于,所述根据用户选择的查询条件、查询关键字和查询值生成分组信息和条件信息,包括:
调用数据查询方法queryData响应用户的选择操作,利用分组表groupMap属性生成所述查询条件、查询关键字和查询值对应的分组信息和条件信息。
5.一种报表查询装置,其特征在于,所述装置包括:
接收单元,用于接收查询请求,所述查询请求携带报表单据号;
初始化单元,用于根据所述报表单据号初始化查询条件集,所述查询条件集包括所述报表单据号关联的全部查询条件信息;
拼写单元,用于根据用户在所述查询条件集中选择的查询条件信息和所述报表单据号在报表数据库中动态拼写SQL语句,得到SQL查询语句,所述报表数据库中注册有SQL语句,每条SQL语句对应一报表单据号;
查询单元,用于根据所述SQL查询语句在所述报表数据库中查询相应的结果集;
其中所述初始化单元,用于根据初始化查询方法getSearchConditionByMenuCode()获取所述报表单据号对应的查询条件集;根据所述查询条件集生成预显示表格,所述预显示表格中设置有查询条件增加选项和查询条件删除选项,所述预显示表格的查询区域显示查询条件集中的查询条件信息,每条查询条件设置查询关键字和查询值。
6.根据权利要求5所述的报表查询装置,其特征在于,所述装置还包括注册导入单元;
所述注册导入单元,用于将预先写好的SQL语句按照Select字段、From字段、Where字段和Groupby字段进行拆分,并将拆分的数据保存到对应的四张excel表中,该四张excel表通过报表单据号关联,并分别对应于报表数据库中的主表、子表、关系表和查询条件表;将每张excel表对应的数据导入到所述报表数据库相应的表中。
7.根据权利要求5所述的报表查询装置,其特征在于,
所述拼写单元,用于根据用户选择的查询条件、查询关键字和查询值生成分组信息和条件信息,根据所述报表单据号信息抽取用于拼写SQL查询语句的四个对象值,以及根据分组信息和条件信息调用语句查询方法getSQL,基于所述四个对象值拼写该查询请求对应的SQL查询语句。
8.根据权利要求7所述的报表查询装置,其特征在于,
所述拼写单元,还用于调用数据查询方法queryData响应用户的选择操作,利用分组表groupMap属性生成所述查询条件、查询关键字和查询值对应的分组信息和条件信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002313.9A CN110019433B (zh) | 2018-01-02 | 2018-01-02 | 一种报表查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002313.9A CN110019433B (zh) | 2018-01-02 | 2018-01-02 | 一种报表查询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019433A CN110019433A (zh) | 2019-07-16 |
CN110019433B true CN110019433B (zh) | 2021-11-19 |
Family
ID=67187284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002313.9A Active CN110019433B (zh) | 2018-01-02 | 2018-01-02 | 一种报表查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019433B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259042B (zh) * | 2020-01-08 | 2022-05-31 | 智业软件股份有限公司 | 一种动态查询方法及系统 |
CN112287647A (zh) * | 2020-10-28 | 2021-01-29 | 中国农业银行股份有限公司 | 一种报表处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567539A (zh) * | 2011-12-31 | 2012-07-11 | 北京新媒传信科技有限公司 | 一种web智能报表的实现方法和系统 |
CN103488694A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 业务数据查询装置和业务数据查询方法 |
US8635251B1 (en) * | 2007-06-29 | 2014-01-21 | Paul Sui-Yuen Chan | Search and computing engine |
CN104714974A (zh) * | 2013-12-17 | 2015-06-17 | 航天信息股份有限公司 | 一种查询语句解析与再处理的方法和装置 |
-
2018
- 2018-01-02 CN CN201810002313.9A patent/CN110019433B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635251B1 (en) * | 2007-06-29 | 2014-01-21 | Paul Sui-Yuen Chan | Search and computing engine |
CN102567539A (zh) * | 2011-12-31 | 2012-07-11 | 北京新媒传信科技有限公司 | 一种web智能报表的实现方法和系统 |
CN103488694A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 业务数据查询装置和业务数据查询方法 |
CN104714974A (zh) * | 2013-12-17 | 2015-06-17 | 航天信息股份有限公司 | 一种查询语句解析与再处理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110019433A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230376487A1 (en) | Processing database queries using format conversion | |
US6993529B1 (en) | Importing data using metadata | |
US20090164414A1 (en) | Query response service for business objects | |
CN102541867A (zh) | 数据字典生成方法及系统 | |
CN106940721B (zh) | 一种自定义选择框的数据处理方法及系统 | |
US20130117346A1 (en) | Multi-client generic persistence for extension nodes | |
US9864794B2 (en) | Method and system for managing faceted data | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
US20120079009A1 (en) | Method and apparatus for choosing resources based on context and inheritance | |
US20200210640A1 (en) | Method and apparatus for displaying textual information | |
CN110019433B (zh) | 一种报表查询方法和装置 | |
CN107515866B (zh) | 一种数据操作方法、装置和系统 | |
CN111026931A (zh) | 一种数据查询方法、装置、设备及介质 | |
CN115081414B (zh) | 基于数据模型的电子表格生成方法、装置、设备及介质 | |
CN109213776B (zh) | 一种报表展现方法和装置 | |
US9031930B2 (en) | Data browser for group-by data access | |
US20200364220A1 (en) | Object-based query language conversion and enrichment for database queries | |
US20110078569A1 (en) | Value help user interface system and method | |
CN110362591B (zh) | 一种报表展现方法和装置 | |
CN113254519A (zh) | 多源异构数据库的访问方法、装置、设备和存储介质 | |
CN107391175B (zh) | 控件数据配置方法及计算机可读存储介质 | |
US8793272B2 (en) | Query transformation | |
US7617236B2 (en) | Method and system for displaying results of a dynamic search | |
US9146958B2 (en) | System and method for report to report generation | |
CN109213811B (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 | ||
CB02 | Change of applicant information |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Applicant after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A Room 601 Applicant before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |