本发明专利技术公开了一种通用报表列表组件,其特征在于:所述通用报表列表组件包括:工具模块,核心模块,持久模块,虚拟文件模块;所述工具模块包括:全局变量单元:用于承载组件所需要的所有公共变量及内存缓存数据;样式管理单元:对列表页面的样式转换进行支持;所述核心模块包括:控件创建单元:负责对于页面上的下拉,文本控件的创建;解析单元:对客户端浏览器发起的本组件的AJAX请求和页面请求进行解析;图形创建单元:负责对页面中的图形元素的生成;核心分发单元:统一管理客户端浏览器发起的请求,交给其他模块;本发明专利技术解决了后台门户列表页面及报表页面开发速度缓慢,开发复杂等问题。
【技术实现步骤摘要】
本专利技术涉及一种通用列表组件。
技术介绍
现今各类B/S系统层出不穷,其便捷性和维护性都大幅度优于C/S系统。这其中前台门户有较为成熟的CMS等技术架 构,但作为功能较为灵活多变的管理(后台)门户却没有与之匹配的高速开发架构。报表列表作为管理(后台)门户的主体构成,作者认为针对这种复用度较高的元素有必要抽象提取成为一个全新的组件。这种组件的优势在于对于后台门户中的报表列表提供高速开发的同时,也兼顾良好的界面外观及功能扩展。
技术实现思路
本专利技术是一种高度封装的,针对后台门户通用的通用报表列表组件。为了达到以上目的,本专利技术采用以下技术方案一种通用报表列表组件,其特征在于 所述通用报表列表组件包括工具模块,核心模块,持久模块,虚拟文件模块;所述工具模块包括 全局变量单元用于承载组件所需要的所有公共变量及内存缓存数据; 样式管理单元对列表页面的样式转换进行支持;所述核心模块包括 控件创建单元负责对于页面上的下拉,文本控件的创建; 解析单元对客户端浏览器发起的本组件的AJAX请求和页面请求进行解析; 图形创建单元负责对页面中的图形元素的生成; 核心分发单元统一管理客户端浏览器发起的请求,交给其他模块;所述持久模块包括 数据源实体对象单元用于承载数据源; 动态代理单元用与对数据源进行切面的事务管理; iBatis持久支持单元用于本组件与iBatis进行整合的支持;所述虚拟文件模块包括 虚拟文件加载单元用于将组件内的虚拟文件加载到内存中,在浏览器客户端发起请求的同时得到相应地址的请求时返回数据流。所述全局变量单元包括常规全局变量,内存常驻高速缓存变量; 所述常规全局变量提供工程启动路径,ibatis配置参数及存储配置信息的变量; 所述内存常驻高速缓存变量包括页面模板的缓存,反射方法利用Map键值对的形式缓存起来,键为访问路径,值为字节数组,便于以后请求高速取出。所述分页条控件创建器创建分页条控件。所述解析单元包括导出Excel解析单元针对页面模板,自动生成需要导出的数据源模型。利用前台JS代码实现用户导出设置界面,让用户指定需要导出的列及列的颜色,再根据用户的选择导出 Excel ; 最终页面生成解析单元根据浏览器客户端相应进行对模板页面的封装,最终反馈给浏览器客户端,返回的页面留有上次用户录入的查询条件,同时还支持对模板中配置的javascript代码的转换并呈现到前台页面适当的位置,以及对模板中指定JAVA方法的反射调用,还可以解析权限配置,提供给不同权限使用者所视效果不同的结果; 级联请求解析单元根据下拉列表组件返回的异步请求,返回级联数据。本专利技术的有益效果是解决了后台门户列表页面及报表页面开发速度缓慢,开发复杂等问题,包括Excel导出功能不需要编写额外的代码;点列头进行排序也不需要过多的设置,仅仅需要 在SQL增加按ID排序的功能即可,开发人员无需特别的设置即可实现列表的Excel导出,统计图表生成的功能。只需加上特定的SQL条件即可完成全列手动可选排序效果。并且无需额外配置,查询条件可保存,并且仅需要通过简单的配置,数据源就可实现热切换。附图说明图I为本专利技术的模块关系示意 图2为本专利技术配合spring, ibatis等框架的数据流转图。具体实施例方式下面结合附图和具体实施例对本专利技术做进一步的说明一种通用报表列表组件包括核心模块,其中的核心分发器用户获取浏览器客户端的请求区别其类型交由下面的各个解析器处理,这里解析又分为导出Excel解析器,它主要帮助组件根据列表的配置自动的导出Excel,不必编写和列表显示类似的导出Excel的代码;最终页面生成解析器,它就是解析生成最终报表列表页面的核心部分,在对模板进行解析后开始对呈现的页面进行拼装,其中又包括对权限的解析,对自定义javascript的组装,及对自定义JAVA方法的反射调用;级联请求解析器,是专门对于下拉框控件组合级联的方式进行的特殊封装,它的作用是让下拉框可以通过异步的方式获取数据,并且只需要指定上级ID及级联字段就可以相当简单的完成一系列复杂的级联编码。如图I红色部分所示,用户通过浏览器访问项目时,被本专利技术的核心分发器所拦截,根据请求URL判断其类型如果URL是以〃greenreport/(不包含引号)关键词开头的(项目名除外),则为本专利技术的请求,再继续判断剩余的URL段,如果是以exportExcel/(不包含引号)关键词开头的URL则为导出EXCEL请求,就交给excel解析模块处理;如果是以cascadeCombobox /〃(不包含引号)关键词开头的则为级联请求,将交由级联请求解析器处理;其他的请求则统一交由最终页面解析器处理。如果不是以〃greenreport/〃关键词开头的则放过该请求,不做任何处理。持久模块,它的作用是隐藏底层细节,让核心模块层专注于业务逻辑,在扩展性方便,也兼容多种持久模式。它又分为iBatis持久支持模块,它让组件能够在SPRING容器内和ibatis无缝兼容;jdbc持久支持模块,它可以让组件在没有其他持久框架支持的情况下顺利运行;数据源实体对象,是对数据源的一个抽象体,能够在多数据源或者数据源热切换中起到关键作用。如图I灰色部分所示,用户请求到达任一解析器,在需要查询数据库时,通过ibatis持久模块,则会去调用一个ibatis的SQLMAP配置,产生若干次查询,最后返回数据到发起请求的解析器;通过jdbc持久模块,则会利用XML列表报表模板里面配置的SQL直接查询,同样返回结果到发起请求的解析器。区分使用哪种查询模式是根据是否含有ibatis注入实体来自动判断的。虚拟文件模块,它让所有非JAVA代码的零散文件在最终发布的时候都能整合到一个JAR包内,增加系统的IO性能,及发布效率。在运行过程中,由于采用了缓存的机制也能很大程度的提高系统的访问效率。如图I蓝色模块所示,在最终页面解析生成请求中需要用到XML列表报表模板,在请求很多时,每次都I/o无疑会降低系统性能,因此在这里设计虚拟文件加载器,如果·该模板文件已经被读取过一次,则下次请求将可直接访问全局变量容器中的字节数组来进行解析。当然还可以为该模块配置其他的缓存算法。另外本专利技术在前台展示上会使用到j query, jqueryui, HighCharts这些JS及图片这些零碎的文件,将他们封装到一个文件里,无疑会提高I/O性能,同时由于其本身容量也不大,因此本专利技术选择在项目启动时就将他们加载进内存进行缓存。工具模块,它主要为上述最终页面生成解析器提供支持,其中样式管理器,在最终页面生成器生成HTML页面的时候,它可以切换其展示样式;全局变量容器则主要为虚拟文件模块提供支持,它最大的作用就是把一些需要缓存的文件(包括JS文件,CSS样式,样式图片)以Map的形式缓存起来,在需要用到的时候,就可以高效的取出,避免重复10。本文档来自技高网...
【技术保护点】
一种通用报表列表组件,其特征在于:所述通用报表列表组件包括:工具模块,核心模块,持久模块,虚拟文件模块;????所述工具模块包括:???????全局变量单元:用于承载组件所需要的所有公共变量及内存缓存数据;???????样式管理单元:对列表页面的样式转换进行支持;????所述核心模块包括:???????控件创建单元:负责对于页面上的下拉,文本控件的创建;???????解析单元:对客户端浏览器发起的本组件的AJAX请求和页面请求进行解析;???????图形创建单元:负责对页面中的图形元素的生成;???????核心分发单元:统一管理客户端浏览器发起的请求,交给其他模块;????所述持久模块包括:???????数据源实体对象单元:用于承载数据源;???????动态代理单元:用与对数据源进行切面的事务管理;???????iBatis持久支持单元:用于本组件与iBatis进行整合的支持;????所述虚拟文件模块包括:???????虚拟文件加载单元:用于将组件内的虚拟文件加载到内存中,在浏览器客户端发起请求的同时得到相应地址的请求时返回数据流。
【技术特征摘要】
1.一种通用报表列表组件,其特征在于 所述通用报表列表组件包括工具模块,核心模块,持久模块,虚拟文件模块;所述工具模块包括 全局变量单元用于承载组件所需要的所有公共变量及内存缓存数据; 样式管理单元对列表页面的样式转换进行支持;所述核心模块包括 控件创建单元负责对于页面上的下拉,文本控件的创建; 解析单元对客户端浏览器发起的本组件的AJAX请求和页面请求进行解析; 图形创建单元负责对页面中的图形元素的生成; 核心分发单元统一管理客户端浏览器发起的请求,交给其他模块;所述持久模块包括 数据源实体对象单元用于承载数据源; 动态代理单元用与对数据源进行切面的事务管理; iBatis持久支持单元用于本组件与iBatis进行整合的支持;所述虚拟文件模块包括 虚拟文件加载单元用于将组件内的虚拟文件加载到内存中,在浏览器客户端发起请求的同时得到相应地址的请求时返回数据流。2.如权利要求I所述的通用报表列表组件,其特征在于 所述全局变量单元包括常规全局变量,内存常驻高速缓存变量; 所述常规全局变量提...
【专利技术属性】
技术研发人员:缪秦,
申请(专利权)人:重庆亚德科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。