著录项信息
专利名称 | 一种生成报表的方法 |
申请号 | CN201310460984.7 | 申请日期 | 2013-09-30 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2013-12-25 | 公开/公告号 | CN103473078A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/44 | IPC分类号 | G;0;6;F;9;/;4;4查看分类表>
|
申请人 | 南京朗睿软件科技有限公司 | 申请人地址 | 江苏省南京市建邺区云龙山路80号天泽星网大厦3楼c区
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 南京朗睿软件科技有限公司 | 当前权利人 | 南京朗睿软件科技有限公司 |
发明人 | 莫文飞;吴春雷;倪红波;戴叶飞 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 吴靖靓;骆苏华 |
摘要
本发明涉及一种生成报表的方法。该方法包括建立控件之间的关联关系,所述控件之间的关联关系包括控件适应的用户权限的关联;获取所述控件的数据流处理条件,所述控件的数据流处理条件受制于该控件所适应的用户权限;根据所述数据流处理条件处理数据流,以得到用于生成报表的数据。本发明能够建立用户权限与报表数据的处理关系,以提高生成报表的效率。
1.一种生成报表的方法,涉及与报表相关的控件,其特征在于,包括:
建立控件之间的关联关系,所述控件之间的关联关系包括控件适应的用户权限的关联;其中,所述建立控件之间的关联关系包括:设置所述控件之间的共用基类,所述共用基类定义了若干控件函数,所述控件函数包括数据流访问语言获取函数,所述控件的数据流处理条件集成于所述数据流访问语言;在所述控件中引入所述共用基类,至少在所述控件中引入所述共用基类的控件函数;
获取所述控件的数据流处理条件,所述控件的数据流处理条件受制于该控件所适应的用户权限;其中,所述数据流处理条件包括数据流筛选条件,所述数据流筛选条件受该控件的用户权限的限制,根据不同的用户访问权限,选择不同的数据流处理条件,以处理数据流;
根据所述数据流处理条件处理数据流,以得到用于生成报表的数据;
其中,所述共用基类包括:弹出画面控件标签基类、弹出画面省份控件标签基类,弹出画面控件标签基类和弹出画面省份控件标签基类中,包括控件基础标签基类相关属性的控件,继承了控件基础标签基类的通用控件属性;
包括所述弹出画面控件标签基类或弹出画面省份控件标签基类相关属性的控件,继承了弹出画面控件标签基类、弹出画面省份控件标签基类的定制化控件属性,所述弹出画面控件标签基类和弹出画面省份控件标签基类通过控件函数属性中的前台校验获取函数和后台校验获取函数定义引用控件的用户登录权限,通过控件函数属性中的数据流访问语言获取函数定义引用控件的用户访问权限。
2.如权利要求1所述的生成报表的方法,其特征在于,所述控件函数还包括:控件画面获取函数、前台校验获取函数、后台校验获取函数,以及控件拼接函数。
3.如权利要求1所述的生成报表的方法,其特征在于,所述获取所述控件的数据流处理条件包括:
执行所述控件的数据流访问语言获取函数,以获取所述控件的数据流访问语言;
读取所述控件的数据流访问语言中集成的数据流处理条件;
所述根据所述数据流处理条件处理数据流包括:
拼接所述控件的数据流处理条件;
根据拼接后的数据流处理条件处理数据流。
4.如权利要求3所述的生成报表的方法,其特征在于,所述根据拼接后的数据流处理条件处理数据流包括:
基于拼接后的数据流处理条件形成各控件的拼接数据流访问语言;
执行所述拼接数据流访问语言以处理数据流。
5.如权利要求3或4所述的生成报表的方法,其特征在于,
所述读取所述控件的数据流访问语言中集成的数据流处理条件包括:读取所述控件的数据流访问语言中集成的数据流筛选条件;
所述拼接所述控件的数据流处理条件包括:拼接所述控件的数据流筛选条件。
6.如权利要求5所述的生成报表的方法,其特征在于,所述数据流处理条件还包括数据流分组条件和数据流排序条件,所述读取所述控件的数据流访问语言中集成的数据流处理条件还包括:读取所述控件的数据流访问语言中集成的数据流分组条件和数据流排序条件;
所述拼接所述控件的数据流处理条件还包括:拼接所述控件的数据流分组条件和数据流排序条件。
7.如权利要求5所述的生成报表的方法,其特征在于,不同控件的数据流筛选条件是相异的。
8.如权利要求5所述的生成报表的方法,其特征在于,所述控件的数据流筛选条件随该控件所适应的用户权限的减小而增多。
9.如权利要求1所述的生成报表的方法,其特征在于,所述数据流访问语言为SQL语言。
10.如权利要求1所述的生成报表的方法,其特征在于,还包括:将用于生成报表的数据分批写入文件流,以导出报表文件。
11.如权利要求1所述的生成报表的方法,其特征在于,还包括:
读取报表画面参数;
基于所述用于生成报表的数据和报表画面参数生成报表画面,以显示报表。
一种生成报表的方法\n技术领域\n[0001] 本发明涉及计算机领域,特别涉及一种生成报表的方法。\n背景技术\n[0002] 报表是企业应用软件系统中不可缺少的一部分,通过计算机自动或辅助生成各种业务报表,可以实现业务的规范化管理,极大地提高了工作效率,加速了各行业信息化进程。\n[0003] 随着计算机各项业务的发展,业务人员需从各种不同的维度、指标去统计分析报表。然而每张不同维度、指标的报表都需单独开发,且开发需要一定的周期,无法准即时的满足业务人员的要求。故实现自动化报表成为一项至关重要的工作。\n[0004] 据调查,市面上开源的报表分析系统有:JasperSoft BI、SpagoBI、Wabacus框架等。这些系统提供即时报表、交互式查询及报表、仪表盘、产品报表、数据分析,以及数据整合等多种报表功能;可以单独部署使用,也可以集成到用户的其它系统中而共享通用的元数据、安全信息、仓库对象及计划任务等。\n[0005] 报表生成基于数据库中的数据流,包括报表数据流的获取。报表中还涉及可用于获取报表数据流的控件,报表的控件能够实现报表功能的整合,是报表用户界面上的一种与用户交互的对象,用户可操作控件来执行对报表数据的处理、报表设计、报表及报表数据的修改等操作。\n[0006] 根据业务人员的权限不同,如图1所示,现有技术生成报表的方法包括:\n[0007] 步骤S100,登陆报表页面,获得用户权限;\n[0008] 步骤S101,呼出与所述用户权限相关的控件;\n[0009] 步骤S102,获取所述控件的数据流处理条件;\n[0010] 步骤S103,根据所述数据流处理条件处理数据流,以得到用于生成报表的数据。\n[0011] 从步骤S100至S103可知,现有技术的报表系统能够根据用户权限呼出与所述用户权限相关的控件,通过是否呼出相应控件来限制用户权限,从而使得对于不同的用户权限,其可获取报表数据是有限的。\n[0012] 但是上述方式存在如下技术缺陷:\n[0013] 限制数据流的获取仅能与是否呼出控件相关,即仅能根据用户权限限制报表功能,但是,对于很多情况下,对用户呼出控件的权限限制会影响报表数据的处理方式,导致报表生成的效率降低;例如,在移动信息业务中,需要开发一张分省信息费日报报表,通过现有技术的系统配置维度指标,可以展示该报表,但是,业务人员的权限仅能够访问东北三省的业务数据,但相关控件却是包括能够访问所有省份的业务数据的权限的,则此时,该业务人员无法呼出该相关控件,由于缺失了一部分数据,导致报表无法有效生成。\n[0014] 另外,现有技术的报表系统在写入控件的时候,每个控件是分别写入至报表系统的,且控件之间的呼出权限是分别设置的,因而报表系统控件架构不仅庞大,也非常不合理,可扩展性很低。\n发明内容\n[0015] 本发明技术方案所解决的技术问题为:如何进一步建立用户权限与报表数据的处理关系,以提高生成报表的效率。\n[0016] 为了解决上述技术问题,本发明技术方案提供了一种生成报表的方法,涉及与报表相关的控件,包括:\n[0017] 建立控件之间的关联关系,所述控件之间的关联关系包括控件适应的用户权限的关联;\n[0018] 获取所述控件的数据流处理条件,所述控件的数据流处理条件受制于该控件所适应的用户权限;\n[0019] 根据所述数据流处理条件处理数据流,以得到用于生成报表的数据。\n[0020] 可选的,所述建立控件之间的关联关系包括:\n[0021] 设置所述控件之间的共用基类,所述共用基类定义了若干控件函数,所述控件函数包括数据流访问语言获取函数,所述控件的数据流处理条件集成于所述数据流访问语言;\n[0022] 在所述控件中引入所述共用基类。\n[0023] 可选的,至少在所述控件中引入所述共用基类的控件函数。\n[0024] 可选的,所述控件函数还包括:控件画面获取函数、前台校验获取函数、后台校验获取函数,以及控件拼接函数。\n[0025] 可选的,所述获取所述控件的数据流处理条件包括:\n[0026] 执行所述控件的数据流访问语言获取函数,以获取所述控件的数据流访问语言;\n[0027] 读取所述控件的数据流访问语言中集成的数据流处理条件;\n[0028] 所述根据所述数据流处理条件处理数据流包括:\n[0029] 拼接所述控件的数据流处理条件;\n[0030] 根据拼接后的数据流处理条件处理数据流。\n[0031] 可选的,所述根据拼接后的数据流处理条件处理数据流包括:\n[0032] 基于拼接后的数据流处理条件形成各控件的拼接数据流访问语言;\n[0033] 执行所述拼接数据流访问语言以处理数据流。\n[0034] 可选的,所述数据流处理条件包括数据流筛选条件,所述数据流筛选条件受该控件的用户权限的限制;\n[0035] 所述读取所述控件的数据流访问语言中集成的数据流处理条件包括:读取所述控件的数据流访问语言中集成的数据流筛选条件;\n[0036] 所述拼接所述控件的数据流处理条件包括:拼接所述控件的数据流筛选条件。\n[0037] 可选的,所述数据流处理条件还包括数据流分组条件和数据流排序条件,所述读取所述控件的数据流访问语言中集成的数据流处理条件还包括:读取所述控件的数据流访问语言中集成的数据流分组条件和数据流排序条件;\n[0038] 所述拼接所述控件的数据流处理条件还包括:拼接所述控件的数据流分组条件和数据流排序条件。\n[0039] 可选的,不同控件的数据流筛选条件是相异的。\n[0040] 可选的,所述控件的数据流筛选条件随该控件所适应的用户权限的减小而增多。\n[0041] 可选的,所述数据流访问语言为SQL语言。\n[0042] 可选的,所述生成报表的方法还包括:将用于生成报表的数据分批写入文件流,以导出报表文件。\n[0043] 可选的,所述生成报表的方法还包括:\n[0044] 读取报表画面参数;\n[0045] 基于所述用于生成报表的数据和报表画面参数生成报表画面,以显示报表。\n[0046] 本发明技术方案的有益效果至少包括:\n[0047] 不同于现有技术仅能根据用户权限限制报表功能,本发明技术方案通过建立控件之间的关联关系,特别是控件之间用户权限的关联,使报表系统的用户权限不仅仅局限于报表页面是否呼出控件,还通过制约控件中的数据流处理条件,以控制呼出控件的数据流处理;本发明技术方案中,报表不再粗犷地以报表数据流因控件被呼出而得到处理、或因控件未被呼出而无法得到处理的方式生成,而是可降低控件被呼出的门栏(可认为报表生成所需数据只要涉及某一被呼出控件的相关数据流,都可以呼出该控件,而非如现有技术,因为未具备全部访问控件数据流的权限,而不得呼出该控件)、优化地处理被获取的报表数据流作为报表生成要件,细分了报表数据的处理方式,从而提高了生成报表的有效性。\n[0048] 在可选方案中,控件之间的关联关系是通过共用基类的引用建立的;本发明技术方案在共用基类中所设置的数据流访问语言获取函数是基于用户权限的,所述数据流访问语言集成有对应控件的数据流处理条件,对应不同的用户权限,数据流访问语言获取函数所获取到的是与用户权限相关的数据流访问语言,且在可选方案中,所述数据流访问语言还可以是SQL语言(SQL文)。本发明技术方案通过设置共用基类,搭建了各控件的关联性,简化了控件程式,在写入报表系统时,控件的结构和框架都大大简便了;所述共用基类还提升了控件的依赖性和继承性:基于所述共用基类还可以在控件内改写或控制用户权限、属性及指标,实现自动化可配置报表功能,对于控件的扩展和控件属性的扩展都大有益处。\n附图说明\n[0049] 图1为现有技术一种生成报表的方法的流程示意图;\n[0050] 图2为本发明技术方案实施例1提供的一种生成报表的方法的流程示意图;\n[0051] 图3为本发明技术方案实施例1提供的一种建立控件之间的关联关系的方法流程示意图;\n[0052] 图4为本发明技术方案实施例1提供的一种报表控件设计架构的示意图;\n[0053] 图5为本发明技术方案实施例2提供的一种生成报表的方法的流程示意图;\n[0054] 图6为本发明技术方案实施例3中报表信息配置的配置画面示意图;\n[0055] 图7为本发明技术方案实施例3中控件呼出画面配置的配置画面示意图;\n[0056] 图8为本发明技术方案实施例3中控件呼出内容配置的配置画面示意图;\n[0057] 图9为本发明技术方案实施例3中控件数据流呈现画面配置的配置画面示意图;\n[0058] 图10为本发明技术方案实施例4提供的一种生成报表的方法的流程示意图。\n具体实施方式\n[0059] 为了使本发明的目的、特征和效果能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细说明。\n[0060] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其他方式来实施,因此本发明不受下面公开的具体实施例的限制。\n[0061] 实施例1\n[0062] 一种生成报表的方法,涉及与报表相关的控件,如图2所示,包括:\n[0063] 步骤S200,建立控件之间的关联关系。\n[0064] 所述控件之间的关联关系包括控件适应的用户权限的关联。\n[0065] 本步骤中,与报表相关的控件需要适应从报表页面上所登陆的用户的用户权限。\n与报表相关的控件可分为通用控件和定制化控件,所述通用控件可以认为是与用户登陆权限有关的固有控件,即仅需用户登陆成功,用户即可访问;而所述定制化控件为与用户权限相结合的非固有控件,即当用户登陆成功且用户具备访问权限,该控件才呼出页面并使用户访问。在本实施例中,可以认为,与报表相关的所有控件之间均具有关联关系,这种关联关系包括属性继承、属性依赖、属性引用及属性关联等关系中的至少一种,用户权限之间的关联属于所述属性关联,通用控件之间的用户权限关联体现在用户登陆权限的一致性:即只要用户登陆成功,用户被鉴定为注册用户,可被通用控件适应。定制化控件不仅具备用户登陆权限的一致性,还具有用户访问权限的一致性:即用户不仅得登陆成功,还得具备相关访问权限,才可被定制化控件适应。对于通用控件来说,其适应指该控件的呼出;对于定制化控件来说,其适应指该控件的呼出及该控件指向的数据流如何被呈现。\n[0066] 以移动信息业务为例(本实施例中的相关实例均是基于该移动信息业务):可以认为一般报表控件中,文本控件、普通日期控件、范围日期控件、月日期控件、周日期控件、下拉框控件、多选下拉框控件为通用控件;而业务控件、套餐包控件、渠道商控件、渠道控件、SP控件、独立包控件、推广类型控件、游戏玩家控件、省份控件、城市控件都为定制化控件,并与用户访问权限结合。本实施例的报表控件中,至少包括所述通用控件和若干定制化控件。\n[0067] 本实施例具体是通过设置控件之间的共用基类来建立控件之间的关联关系的,所述建立控件之间的关联关系,如图3所示,包括如下步骤:\n[0068] 步骤S300,设置所述控件之间的共用基类。\n[0069] 所述共用基类为BaseFieldTag类,此类为抽象类。该抽象类可以提供如下属性:控件名称、控件值、宽度、最大长度、组件类型、长度、Tab键索引、CSS样式、字段说明、依赖字段等。所述共用基类还可以定义如下控件函数(所述控件函数为抽象函数,也属于共用基类的属性,各实例化的控件继承后需进一步具体实现):\n[0070] 控件画面获取函数(比如,getHtml函数),用于获取控件画面HTML;\n[0071] 前台校验获取函数(比如,getValidateScriptMethod函数),用于获取控件JavaScript校验方法;\n[0072] 数据流访问语言获取函数(本实施例默认使用SQL语言作为所述数据流访问语言,因而该函数可以是getSql函数),用于获取控件查询条件SQL文;\n[0073] 后台校验获取函数(比如,validate函数),用于控件后台校验方法;\n[0074] HTML属性拼接函数(比如,prepareOtherAttributes函数),用于拼接控件其他HTML属性,不同组件根据各自需求可扩展;\n[0075] 控件拼接函数(比如,prepareOtherInputObj函数),用于拼接控件其他输入控件,不同控件根据各自需求可扩展。\n[0076] 从上述定义可知,所述控件函数包括数据流访问语言获取函数。数据流访问语言获取函数,即本实施例的getSql函数,用于获得用于选择记录集所记录的SQL文的字符串。\nSQL语言可以用于处理报表数据流以实现数据流的呈现,SQL语言集成了控件对控件所指向数据流的处理条件。本实施例的控件能够根据不同的用户权限,获取不同的SQL语言,从而以不同的数据流的处理条件处理数据流,以在控件的呼出界面上呈现被处理的数据流。\n[0077] 继续参考图3,所述建立控件之间的关联关系还包括如下步骤:\n[0078] 步骤S301,在所述控件中引入所述共用基类。\n[0079] 在本步骤中,所述在所述控件中引入所述共用基类实际是各控件对所述共用基类的属性继承,这种属性继承可以是继承共用基类中的若干属性。\n[0080] 在所述控件中引入所述共用基类还包括至少在所述控件中引入所述共用基类的控件函数,由此形成控件之间控件适应的用户权限的关联。\n[0081] 根据步骤S300至S301,得出报表控件设计架构的一个实例可以参考图4,包括:\n[0082] 第一共用基类,所述第一共用基类为控件基础标签基类,控件基础标签也即BaseFieldTag;\n[0083] 隐藏域控件标签,也即HiddenTag,包括所述第一共用基类内的相关属性;\n[0084] 多选下拉框控件标签,也即SelectMultipleTag,包括所述第一共用基类内的相关属性;\n[0085] 第二共用基类,所述第二共用基类为文本控件标签基类,文本控件标签也即BaseTextFieldTag,包括所述第一共用基类内的相关属性;\n[0086] 下拉框控件标签,也即SelectTag,包括所述第一共用基类内的相关属性;\n[0087] 日期范围控件标签,也即DateRangeTag,包括所述第一共用基类内的相关属性;\n[0088] 周日期控件标签,也即DateWeekTag,包括所述第二共用基类内的相关属性(第二共用基类内的相关属性当然可以包括第一共用基类内的相关属性,下同);\n[0089] 第三共用基类,所述第三共用基类为弹出画面控件标签基类,弹出画面控件标签也即BasePopupTag,包括所述第二共用基类内的相关属性;\n[0090] 普通文本框控件标签,也即TextTag,包括所述第二共用基类内的相关属性;\n[0091] 月份日期控件标签,也即DateMonthTag,包括所述第二共用基类内的相关属性;\n[0092] 日期控件标签,也即DateTag,包括所述第二共用基类内的相关属性;\n[0093] 第四共用基类,所述第四共用基类为弹出画面省份控件标签基类,弹出画面省份控件标签也即BaseNormalPopupTag,包括所述第二共用基类内的相关属性;\n[0094] 业务控件标签,也即ServiceTag,包括所述第三共用基类内的相关属性(第三共用基类内的相关属性当然可以包括第二共用基类内的相关属性,下同);\n[0095] 套餐包控件标签,也即PackageTag,包括所述第三共用基类内的相关属性;\n[0096] 渠道控件标签,也即ChannelTag,包括所述第三共用基类内的相关属性;\n[0097] 合作方控件标签,也即SpTag,包括所述第三共用基类内的相关属性;\n[0098] 渠道商控件标签,也即ChannelCorpTag,包括所述第三共用基类内的相关属性;\n[0099] 城市控件标签,也即CityTag,包括所述第四共用基类内的相关属性(第四共用基类内的相关属性当然可以包括第二共用基类内的相关属性,下同);\n[0100] 推广类型控件标签,也即ExtsTypeTag,包括所述第四共用基类内的相关属性;\n[0101] 省份控件标签,也即ProvinceTag,包括所述第四共用基类内的相关属性。\n[0102] 从图4的上述控件结构来看,各实例化控件可以对共用基类中的属性或部分属性进行实例化,继承或依赖所引用的共用基类中定义的属性,以建立控件间的关联关系。当然,实例化的控件除了对共用基类中定义的属性进行继承或依赖,还可以对各控件的属性进行引用,这种控件间的属性引用方式也可以建立控件间的关联关系:\n[0103] 继续参考图4,该报表控件设计架构还包括:\n[0104] 独立包控件标签,也即IndepPackageTag,包括所述套餐包控件内定义的相关属性(套餐包控件内定义的相关属性当然可以包括第三共用基类内的相关属性,下同);\n[0105] 游戏玩家控件标签,也即GamePlayerPackageTag,包括所述套餐包控件内定义的相关属性。\n[0106] 进一步对图4的报表控件设计架构进行分析:\n[0107] 在第一共用基类中,其属性包括控件函数及其他属性,包括所述第一共用基类相关属性的控件,主要继承了第一共用基类的通用控件属性,对于本实施例的用户权限特性来说,可以是用户登陆权限的继承,包括第一共用基类相关属性的控件之间具有用户登陆权限的关联性,用户登陆权限的关联性主要通过各控件引用第一共用基类控件函数属性中的前台校验获取函数和后台校验获取函数的实例化实现。\n[0108] 第二共用基类,基于第一共用基类,主要定义文本类控件,以时文本类控件可引用并实例化。\n[0109] 第三共用基类和第四共用基类中,其属性包括控件函数及其他属性,包括所述第一共用基类相关属性的控件,包括第三共用基类或第四共用基类相关属性的控件主要继承了定制化控件属性,对于本实施例的用户权限特性来说,具体是上述用户登陆权限和用户访问权限的继承,因而,包括第三共用基类或第四共用基类相关属性的控件之间不仅具有用户登陆权限,也具有用户访问权限的关联性;第三共用基类和第四共用基类主要涉及控件呼出画面的定义,其通过控件函数属性中的前台校验获取函数和后台校验获取函数定义了引用控件的用户登陆权限,通过控件函数属性中的数据流访问语言获取函数定义了引用控件的用户访问权限。\n[0110] 对于套餐包控件的相关分析同第三共用基类和第四共用基类。\n[0111] 本实施例中,所述数据流访问语言主要集成了数据流处理条件,对于本领域普通技术人员可以理解的是,报表数据流信息是庞大的,对于定制化控件来说,其对应的数据流如仅能够被获取或为不被获取,则会大大增加系统及数据库的处理负担,并且,也不利于数据获取的有效性,因此,数据流处理条件可以包括数据流筛选条件、数据流分组条件及数据流排序条件,可以根据不同的用户访问权限,选择不同的数据流处理条件,以处理数据流,并在控件的呼出画面上进行呈现,以加快系统处理效率,也进一步增加安全性和可靠性。\n[0112] 继续参考图2,本实施例的生成报表的方法还包括:\n[0113] 步骤S201,获取所述控件的数据流处理条件。\n[0114] 从对步骤S200的论述可知,所述控件的数据流处理条件受制于该控件所适应的用户权限:实质上,对于具有用户访问权限的控件,针对不同用户,对其数据流的访问权限是不同的,这体现在该控件内执行函数所获取的数据流访问语言是不同的,不同的数据流访问语言中集成有与当前用户访问权限有关的数据流处理条件。因而,步骤S201的执行是通过执行控件中的数据流访问语言获取函数得到的,具体包括步骤:\n[0115] 执行所述控件的数据流访问语言获取函数,以获取所述控件的数据流访问语言;\n[0116] 读取所述控件的数据流访问语言中集成的数据流处理条件。\n[0117] 继续参考图2,本实施例的生成报表的方法还包括:\n[0118] 步骤S202,根据所述数据流处理条件处理数据流,以得到用于生成报表的数据。\n[0119] 对于同一报表页面具有多个呼出控件时,所述根据所述数据流处理条件处理数据流可以包括:\n[0120] 拼接所述控件的数据流处理条件;\n[0121] 根据拼接后的数据流处理条件处理数据流。\n[0122] 所述根据拼接后的数据流处理条件处理数据流可以进一步包括:基于拼接后的数据流处理条件形成各控件的拼接数据流访问语言;以及,执行所述拼接数据流访问语言以处理数据流。\n[0123] 从上述分析还可知,所述数据流处理条件包括数据流筛选条件、数据流分组条件和数据流排序条件。\n[0124] 对于数据流处理条件中的数据流筛选条件:\n[0125] 所述读取所述控件的数据流访问语言中集成的数据流处理条件包括:读取所述控件的数据流访问语言中集成的数据流筛选条件;\n[0126] 所述拼接所述控件的数据流处理条件包括:拼接所述控件的数据流筛选条件。\n[0127] 所述根据拼接后的数据流处理条件处理数据流包括:根据拼接后的数据流筛选条件对控件对应的数据流进行筛选。\n[0128] 可以认为,用户访问权限制约的是数据流处理条件中的数据流筛选条件,比如,对于用户A,若其为a省用户,那么,在呼出城市控件等与省份相关的控件画面时,该控件获取的数据流访问语言中集成的数据流筛选条件即为“a省城市”,若对于用户B,其为b省用户,那么,在呼出城市控件等与省份相关的控件画面时,该控件获取的数据流访问语言中集成的数据流筛选条件即为“b省城市”。对于用户C,若其既为a省用户也为b省用户,那么在在呼出城市控件等与省份相关的控件画面时,该控件获取的数据流访问语言中集成的数据流筛选条件即为“a省城市&b省城市”。\n[0129] 对于数据流处理条件中的数据流分组条件和数据流排序条件,所述读取所述控件的数据流访问语言中集成的数据流处理条件还包括:读取所述控件的数据流访问语言中集成的数据流分组条件和数据流排序条件;\n[0130] 所述拼接所述控件的数据流处理条件还包括:拼接所述控件的数据流分组条件和数据流排序条件;\n[0131] 所述根据拼接后的数据流处理条件处理数据流还包括:根据拼接后的数据流分组条件和数据流排序条件对筛选后数据流进行分组和排序。\n[0132] 需要说明的是:\n[0133] 1、对于本实施例而言,实例化的控件所继承的是共用基类或控件中的抽象属性或抽象函数,因而各控件中,与用户权限相关的数据流筛选条件是相异的。\n[0134] 2、在控件的实例化中,同一控件的数据流筛选条件可以随该控件所适应的用户权限的减小而增多,也可以随该控件所适应的用户权限而相互不同。\n[0135] 3、本实施例所述的数据流访问语言可以为SQL语言,上述数据流筛选条件集成于SQL语言中的where条件部分,上述数据流分组条件和数据流排序条件则分别集成于SQL语言中的分组、排序部分。所述拼接所述控件的数据流处理条件指拼接各控件所获取SQL语言,包括拼接各控件所获取SQL语言的where条件部分(即拼接所述控件的数据流处理条件)和拼接各控件所获取SQL语言中的分组、排序部分(即拼接所述控件的数据流分组条件和数据流排序条件)。\n[0136] 实施例2\n[0137] 一种生成报表的方法,如图5所示,包括:\n[0138] 步骤S400,建立控件之间的关联关系;\n[0139] 步骤S401,登陆报表页面,获得用户权限;\n[0140] 步骤S402,呼出与所述用户权限相关的控件;\n[0141] 步骤S403,获取所呼出控件的数据流处理条件;\n[0142] 步骤S404,根据所述数据流处理条件处理数据流,以得到用于生成报表的数据。\n[0143] 步骤S400、S403及S404的相关技术内容可以参考步骤S200至S202,本实施例不再赘述。\n[0144] 实施例3\n[0145] 一种生成报表的方法,可以包括如实施例1或实施例2的实现步骤。但是,在本实施例的生成报表的方法还包括:\n[0146] 配置报表和报表控件。\n[0147] 本实施例增添了配置报表和报表控件的步骤,该步骤可以是执行实施例1所述步骤和实施例2所述步骤之前的预处理步骤,也可以是上述执行过程中的处理步骤;配置报表和报表控件的步骤主要包括:报表信息配置、控件呼出画面配置、控件呼出内容配置及控件数据流呈现画面配置,以移动信息业务报表及报表控件的配置为例:\n[0148] 报表信息配置包括:如图6所示的配置画面10,在区域100配置报表标题,在区域\n101配置对应数据库表名,在区域102确定是否导出Excel,在区域103确定是否有清单以及清单参数、对应清单报表ID,在区域104预留2个按钮以自定义扩展相应操作。\n[0149] 控件呼出画面配置包括:如图7所示的配置画面20,是一个字段弹出画面的参数配置,在区域200中配置查询结果列表中点击需要弹出画面的字段(本实施例为Popup字段),在区域201中配置弹出画面传递的参数,在区域202中配置弹出画面报表ID。\n[0150] 控件呼出内容配置,控件呼出内容配置实质为与控件相关的、对数据库的查询条件的配置,包括:如图8所示的配置画面30,在区域300中配置查询字段(数据库表字段),在区域301中配置显示内容,在区域302中配置对应的使用控件(使用控件可以包括文本框、普通时间、周时间、月时间、范围时间、下拉框、省份、城市、渠道商、渠道、SP、套餐包、业务、游戏玩家、独立包、推广类型、多选下拉框、隐藏域等控件),在区域303中配置依赖字段,在区域304中配置匹配规则,在区域305中配置优先级,在区域306中配置是否必须校验等。继续参考图8,当所配置的控件(使用控件)是范围日期控件,还可以在区域307中设置日期范围,如只可选择近30天;如果是周日期,则可以设置从周一到周日算一周,或者周二到下周一算一周等,比如图8中,设置了序号为1的使用控件呼出内容的配置,其在区域307中设置日期范围为23天。当使用控件还包括下拉框的配置,则可以在区域308设置下拉框的内容。\n[0151] 控件数据流呈现画面配置,也即控件的显示结果信息配置,包括:如图9所示的配置画面40,在区域400中选择配置查询结果所显示的字段,在区域401中配置被选中字段对应报表头名称,在区域402中配置被选中字段是否始终展示,在区域403中配置被选中字段的依赖展示字段,在区域404中配置被选中字段是否排序展示,在区域405中配置被选中字段的排序优先级,在区域406中配置被选中字段是否分组展示,分别在区域407至区域409配置被选中字段是否统计、选择字段函数、展示顺序。\n[0152] 上述配置完成后,将配置数据插入报表主表、字段弹出画面参数信息表、查询条件信息表、查询结果信息表,并可通过主表ID关联,所述报表主表指示报表信息配置,所述字段弹出画面参数信息表指示控件呼出画面配置,所述查询条件信息表指示控件呼出内容配置,所述查询结果信息表指示控件数据流呈现画面配置。\n[0153] 实施例4\n[0154] 一种生成报表的方法,如图10所示,包括:\n[0155] 步骤S500,建立控件之间的关联关系;\n[0156] 步骤S501,获取所呼出控件的数据流处理条件;\n[0157] 步骤S502,根据所述数据流处理条件处理数据流,以得到用于生成报表的数据;\n[0158] 步骤S503,通过报表配置信息,获取报表列名称。\n[0159] 当报表列名称对应的配置信息为导出,则执行步骤S504,当报表列名称对应的配置信息为报表,则执行步骤S505。\n[0160] 步骤S504,将用于生成报表的数据分批写入文件流,以导出报表文件。\n[0161] 步骤S505,读取报表画面参数,基于所述用于生成报表的数据和报表画面参数生成报表画面,以显示报表。\n[0162] 步骤S500至S502的相关技术内容可以参考步骤S200至S202,本实施例不再赘述。\n[0163] 结合实施例1的相关论述可知,步骤S502的执行过程是执行集成有数据流处理条件的SQL语言,以获得数据流的处理结果集,该处理结果集即为用于生成报表的数据。\n[0164] 需要说明的是:\n[0165] 步骤S504中,所述将用于生成报表的数据分批写入文件流,以导出报表文件,实际上为把步骤S502的处理结果集分批写入文件流并导出文件的过程。\n[0166] 步骤S505中,所述基于所述用于生成报表的数据和报表画面参数生成报表画面,以显示报表,进一步包括如下过程:\n[0167] 读取下钻、清单详情画面参数,拼接报表列弹出画面链接;\n[0168] 渲染画面,并基于所述用于生成报表的数据展示报表。\n[0169] 本实施例的其他内容还可以参考实施例1至实施例3的分析。\n[0170] 另一则有关本发明技术方案应用例可以包括如下过程:登陆报表页面,获得用户权限;呼出与所述用户权限相关的控件,所呼出的控件之间由于执行步骤S500因而具有关联关系;基于所呼出的控件获取报表明细ID,所述控件与报表的配置关系可参考实施例3;\n根据报表明细ID所指向的报表配置的接收参数字段;获取报表查询结果画面报表明细链接中的参数,并拼接执行控件函数所得SQL语言中的where条件;获取报表明细ID所指向的报表配置中的查询结果内容、分组、排序,并基于所述分组排序拼接SQL语言中的分组和排序部分,完成拼接SQL语言;执行拼接后的SQL语言,获取数据流的处理结果集,渲染生成明细画面,并显示报表。\n[0171] 本发明技术方案通过自动化数据报表控件的模式,用控件来生成各种查询条件,并初始化报表,查询时通过控件生成报表,具体可分为以下几大模块,可用以别实现实施例\n1至实施例4的过程:\n[0172] 报表配置模块:用于配置报表、报表明细数据源,自动化数据报表控件依赖关系;\n查询结果的内容、分组、排序;报表明细画面参数;实施例3配置报表和报表控件的步骤可以通过报表配置模块实现。\n[0173] 自动化数据报表控件模块及报表页面初始化引擎模块:用于读取报表配置的查询条件信息,实例化数据报表控件;生成各种类型查询条件HTML代码、Javascrip校验代码来初始化报表,并生成后台校验代码以及查询条件SQL文;实施例1的步骤S200可以通过自动化数据报表控件模块及报表页面初始化引擎模块实现。\n[0174] 报表页面查询引擎模块:用于通过读取报表配置的查询结果内容,拼接查询SQL文中的查询结果;通过读取自动化数据报表控件中的SQL条件,拼接SQL文中的查询条件;通过读取报表配置的分组、排序拼接SQL文中的分组、排序。结合以上拼接出来的SQL,查询数据库,检索出结果。实施例1的步骤S201和S202可以通过自动化数据报表控件及报表页面初始化引擎模块实现。\n[0175] 报表查询结果生成引擎及导出模块:用于通过读取报表配置的查询结果内容,生成报表查询结果画面;读取报表明细画面参数,拼接报表列弹出画面链接;如果为导出,则把查询结果分批写入文件流导出文件。实施例4的步骤S504、及步骤S505的部分过程可以通过报表查询结果生成引擎及导出模块实现。\n[0176] 报表明细生成引擎模块:用于配置查询结果内容、分组、排序;查询条件参数,与源画面配置的参数保持一致。最终生成SQL,查询结果,生成报表明细画面。实施例4的步骤S505的显示报表的过程可以通过报表明细生成引擎模块实现。\n[0177] 在一个报表的建模实例中,本实施例的报表控件以控件模块的形式被建立,所述自动化数据报表控件模块包括:\n[0178] 文本框控件查询条件模块,用于生成文本框类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,文本框控件查询条件模块对应实施例1中所述的普通文本框控件标签。\n[0179] 下拉框控件查询条件模块,用于生成下拉框类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,下拉框控件查询条件模块对应实施例1中所述的下拉框控件标签。\n[0180] 隐藏域控件查询条件模块,用于生成隐藏域类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,隐藏域控件查询条件模块对应实施例1中所述的隐藏域控件标签。\n[0181] 普通日期控件查询条件模块,用于生成年月日日期类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,普通日期控件对应实施例1中所述的日期控件标签。\n[0182] 范围日期控件查询条件模块,用于生成范围日期类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,范围日期控件查询条件模块对应实施例1中所述的日期范围控件标签。\n[0183] 月份控件查询条件模块,用于生成月份日期类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,月份控件查询条件模块对应实施例1中所述的月份日期控件标签。\n[0184] 周日期控件查询条件模块,用于生成周日期类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,周日期控件查询条件模块对应实施例1中所述的周日期控件标签。\n[0185] 省份控件查询条件模块,用于生成省份类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,省份控件查询条件模块对应实施例1中所述的省份控件标签。\n[0186] 城市控件查询条件模块,用于生成城市类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文,并且城市的数据权限需参照省份控件的数据权限;其中,城市控件查询条件模块对应实施例1中所述的城市控件标签。\n[0187] 渠道商控件查询条件模块,用于生成渠道商类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,渠道商控件查询条件模块对应实施例1中所述的渠道商控件标签。\n[0188] 渠道控件查询条件模块,用于生成渠道类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文,并且渠道的数据权限需参照渠道商控件的数据权限;其中,渠道控件查询条件模块对应实施例1中所述的渠道控件标签。\n[0189] 套餐包控件查询条件模块,用于生成套餐包类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文。如果套餐包控件不依赖其他控件,则显示所有套餐包数据,如果依赖SP或渠道,则套餐包的数据权限需参照SP或渠道控件的数据权限;其中,套餐包控件查询条件模块对应实施例1中所述的套餐包控件标签。\n[0190] SP控件查询条件模块,用于生成SP类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,SP控件查询条件模块对应实施例1中所述的合作方控件标签。\n[0191] 业务控件查询条件模块,用于生成业务类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文。如果业务控件不依赖其他控件,则显示所有业务数据,如果依赖SP或渠道,则业务的数据权限需参照SP或渠道控件的数据权限;其中,业务控件查询条件模块对应实施例1中所述的业务控件标签。\n[0192] 游戏玩家控件查询条件模块,用于生成游戏玩家类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,游戏玩家控件查询条件模块对应实施例1中所述的游戏玩家控件标签。\n[0193] 独立包控件查询条件模块,用于生成独立包类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,独立包控件查询条件模块对应实施例1中所述的独立包控件标签。\n[0194] 推广类型控件查询条件模块,用于生成推广类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,推广类型控件查询条件模块对应实施例1中所述的推广类型控件标签。\n[0195] 多选下拉框控件查询条件模块,用于生成多选下拉框类型查询条件HTML代码、Javascript校验代码、后台校验代码以及SQL文;其中,多选下拉框控件查询条件模块对应实施例1中所述的多选下拉框控件标签。\n[0196] 本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
法律信息
- 2021-09-14
未缴年费专利权终止
IPC(主分类): G06F 9/44
专利号: ZL 201310460984.7
申请日: 2013.09.30
授权公告日: 2017.10.17
- 2017-10-17
- 2014-01-22
实质审查的生效
IPC(主分类): G06F 9/44
专利申请号: 201310460984.7
申请日: 2013.09.30
- 2013-12-25
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-07-11
|
2011-12-21
| | |
2
| | 暂无 |
2011-02-14
| | |
3
| |
2005-03-02
|
2004-09-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |