一种可配置的动态报表生成方法及系统的制作方法【
技术领域:
】[0001]本发明涉及报表处理
技术领域:
,尤其涉及一种可配置的动态报表生成方法及系统。【
背景技术:
】[0002]随着企业信息系统集成与企业电子商务系统建设的兴起,报表作为一种重要的信息载体在系统中有着极其重要的作用,而可配置实现的报表展示越来越被软件开发者关注。随着数据的增多,需求的提高,对报表的展示分析结果的应用也越来越多。[0003]但目前报表数据展示方法需要开发人员针对要展示的数据重复开发代码,开发效率低,代码复用率低,报表数据分析的效果不佳。【
发明内容】[0004]本发明所要解决的技术问题是针对现有技术的不足,提供一种可配置的动态报表生成方法及系统,实现批量配置出各种报表统计分析用的报表展示。[0005]本发明解决上述技术问题的技术方案如下:一种可配置的动态报表生成方法,包括如下步骤:[0006]步骤1,建立报表模板;[0007]步骤2,建立报表配置表和报表条件表,根据业务逻辑对报表配置表和报表条件表进行配置;[0008]步骤3,解析所述报表条件表,建立报表展示区域,自动生成查询页面;[0009]步骤4,接收用户在查询条件页面输入的查询条件,结合报表配置表和报表条件表生成查询语句;[0010]步骤5,在指定的数据库上执行查询语句,获得结果数据集;[0011]步骤6,根据获得的结果数据集和步骤1中建立的报表模板生成临时excel文件,保存在指定目录上。[0012]本发明的有益效果是:本发明能够以批量的可配置的方式自动化的展示报表统计数据,使用可配置的报表,提高统计分析报表的开发效率,减少重复代码的开发量,提高了代码复用性,提高报表数据分析效果。[0013]在上述技术方案的基础上,本发明还可以做如下改进。[0014]进一步,还包括下载所述临时excel文件到本地并在浏览器里显示。[0015]进一步,步骤1的具体实现为:在excel表格中制作报表模版,其中#S表示横向填充,每行数据从有#S的格子开始填充,依次搜寻本行所有列,如果格子里的值是&,则将数据源的下一列的值填充到所述格子中,否则不填充所述格子。[0016]进一步,步骤2中所述报表配置表的字段包括query_id、main_sql、table_sql、model_file、create_date和db_str;所述query_id代表报表分类ID,所述main_sql代表主SQL语句,所述table_sql代表获取动态表名的SQL,所述model_file代表所述报表对应的模板文件,所述create_date代表创建日期,db_str代表所述查询对应的数据库。[0017]进一步,报表配置表的字段还包括Issheet、is_guiding和name;所述Issheet代表是否匹配,所述is_guiding代表是否需要归档,所述name代表中文描述。[0018]进一步,步骤2中所述报表条件表的字段包括query_id、where_seq、where_type、chn_name、default_value和ref_sql;所述query_id代表查询ID,所述where_seq代表条件ID,所述where_type代表条件类型,所述chn_name代表中文名称,所述default_value代表默认值,所述ref_sql代表下拉框参考语句。[0019]进一步,步骤3的具体实现为:解析报表条件表中的配置信息,生成查询页面,接收用户输入的查询条件,替换报表配置表中sql查询语句的条件变量,生成查询语句。[0020]进一步,步骤4的具体实现为,根据报表条件表中的查询ID(query_id)获取对应的查询信息,根据用户输入的具体值,替换查询语句中的条件变量,生成查询语句。[0021]本发明解决上述技术问题的另一技术方案如下:一种可配置的动态报表生成系统,包括模板建立模块、配置表建立模块、条件表建立模块、查询页面生成模块、查询语句生成模块、查询执行模块和excel文件生成模块;[0022]所述模板建立模块,其用于建立报表模板;[0023]所述配置表建立模块,其用于建立报表配置表,根据业务逻辑对报表配置表进行配置;[0024]所述条件表建立模块,其用于建立报表条件表,根据业务逻辑对报表条件表进行配置;[0025]所述查询页面生成模块,其用于解析所述报表条件表,建立报表展示区域,自动生成查询页面;[0026]所述查询语句生成模块,其用于接收用户在查询条件页面输入的查询条件,结合报表配置表和报表条件表生成查询语句;[0027]所述查询执行模块,其用于在指定的数据库上执行查询语句,获得结果数据集;[0028]所述excel文件生成模块,其用于根据获得的结果数据集和步骤1中建立的报表模板生成临时excel文件,保存在指定目录上。【附图说明】[0029]图1为本发明所述一种可配置的动态报表生成方法流程图;[0030]图2为本发明所述一种可配置的动态报表生成系统框图。[0031]附图中,各标号所代表的部件列表如下:[0032]1、模板建立模块,2、配置表建立模块,3、条件表建立模块,4、查询页面生成模块,5、查询语句生成模块,6、查询执行模块,7、excel文件生成模块。【具体实施方式】[0033]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。[0034]如图1所示,一种可配置的动态报表生成方法,包括如下步骤:[0035]步骤1,建立报表模板;[0036]步骤2,建立报表配置表和报表条件表,根据业务逻辑对报表配置表和报表条件表进行配置;[0037]步骤3,解析所述报表条件表,建立报表展示区域,自动生成查询页面;[0038]步骤4,接收用户在查询条件页面输入的查询条件,结合报表配置表和报表条件表生成查询语句;[0039]步骤5,在指定的数据库上执行查询语句,获得结果数据集;[0040]步骤6,根据获得的结果数据集和步骤1中建立的报表模板生成临时excel文件,保存在指定目录上。[0041]上述技术方案还包括下载所述临时excel文件到本地并在浏览器里显示。[0042]步骤1的具体实现为:在excel表格中制作报表模版,其中#S表示横向填充,每行数据从有#S的格子开始填充,依次搜寻本行所有列,如果格子里的值是&,则将数据源的下一列的值填充到所述格子中,否则不填充所述格子。[0043]如表1所示,步骤2中所述报表配置表的字段包括query_id、main_sql、table_sql、model_file、create_date和db_str;所述query_id代表报表分类ID,所述main_sql代表主SQL语句,所述table_sql代表获取动态表名的SQL,所述model_file代表所述报表对应的模板文件,所述create_date代表创建日期,db_str代表所述查询对应的数据库。报表配置表的字段还包括Issheet、is_guiding和name;所述Issheet代表是否匹配,所述is_guiding代表是否需要归档,所述name代表中文描述。[0044]表1[0045][0046]其中model_file:是步骤1中所建立的报表模版;main_sql:主SQL语句,在数据查询时使用;Table_sql:如果表是当前第1页1 2