本发明专利技术公开了一种基于非线性报表生成方法的数据关联方法,属于报表制作技术领域。在现有的非线性报表生成方法中,当进行多数据集关联计算时,即使报表中多个子格与某主格的关联关系完全相同,计算时也要进行多次完全一样的条件过滤,因此运算的效率较低。本发明专利技术所述的方法,在报表设计时通过在主格上添加附加数据集,在子格运算时可以直接使用主格的运算结果而无须再次运算,从而减少了过滤次数,提高了运算效率。
【技术实现步骤摘要】
本专利技术属于报表制作
,具体涉及一种基于非线性报表生成方法的数据关联方法。
技术介绍
报表是单位和部门运营管理指标的阶段性反映,是相关负责人监控业务运行状况、进行决策的重要依据。随着信息系统的应用,计算机自动计算和生成报表逐步取代了传统的手工统计方式,极大的提高了工作效率,增加了准确程度。目前,用于制作报表的工具软件可分为两类:一类是以微软公司的Excel为代表的静态报表制作工具,其特征是绘制的报表是静态的,不会与数据库中的数据联动而自动增加或减少行列数及改变其中的数据;另一类则是动态报表制作工具,能够与数据库(主要是关系型数据库)关联,动态地从数据库中获取数据并根据用户事先绘制好的报表模板和参数自动生成不同布局(行、列等)和统计内容的报表。这样,计算方案相同的报表只需要绘制一次,可以极大地减少报表生成的工作量并提高工作效率。中国专利技术专利申请(公开日:2007年8月22日,公开号:CN101021839A)公开了一种非线性报表生成方法,该方法便是一种动态生成报表的方法,主要包括以下步骤:(1)确定报表运算时需要用到的数据集;(2)在静态报表中确定某些单元格为扩展格,即主动扩展复制的单元格,并设置其扩展方向;(3)设置所有单元格的左主格和上主格,即该单元格在纵向和横向扩展时需要跟随的扩展格;(4)在各单元格内填入运算表达式;(5)对报表进行扩展和计算,即可得到生成后的实际报表。该方法的步骤(1)中所述的“数据集”可以理解为一个由有列名和列数-->据类型的数据构成的二维矩阵,是报表数据的组织形式,如在关系数据库中使用SELECT语句返回的结果集(可以是多表叉乘的SELECT),数据集的行相当于数据表的一条记录,而列则对应了该数据表的字段。采用上述非线性报表生成方法可以很方便地设计生成动态报表,特别能够处理传统工具难以处理的多数据集关联报表。然而在进行多数据集关联计算时,当子格表达式中涉及的数据集与主格不同时,必须采用条件表达式描述两者之间的关联关系。在现实的报表中经常会有连续多个子格与某主格的关联关系完全相同,这时该方法虽然仍可行,但实际操作则比较繁琐,要求用户重复地填入多个一样的条件表达式。同时多个子格计算时也要进行多次完全一样的条件过滤,因此运算的效率较低。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的是提供一种基于非线性报表生成方法的数据关联方法,该方法能够提高报表的运算效率。为了实现上述目的,本专利技术采用的技术方案是,一种基于非线性报表生成方法的数据关联方法,包括如下步骤:(1)确定报表运算时需要用到的数据集;(2)在静态报表中确定某些单元格为扩展格,即主动扩展复制的单元格,并设置其扩展方向;(3)设置所有单元格的左主格和上主格,即该单元格在纵向和横向扩展时需要跟随的扩展格;(4)如果有若干子格与主格的关联关系相同,则在主格中添加附加数据集,在子格中填写运算表达式时不再填写过滤条件;否则在子格中填写包含过滤条件的运算表达式;(5)对报表进行扩展和运算,获得生成后的实际报表。进一步,步骤(1)中所述的运算是指多个数据集的关联运算。进一步,步骤(4)中所述的附加数据集是指附加在主格上对数据集的过-->滤运算。所述的附加数据集包括多个针对数据集的过滤运算。进一步,步骤(5)在报表计算过程中,如果单元格的主格上的附加数据集中有对某数据集的过滤运算,则在计算该单元格表达式时,对于同一数据集的运算也将被限制在过滤后的数据集中。本专利技术的效果在于:采用本专利技术所述的方法降低了现有技术中非线性报表生成方法在处理多数据集关联报表时的操作复杂度,并提高了运算效率。因为子格中使用的数据集已作为附加数据集在主格运算时被过滤,所以在子格(可能有多个)中写运算表达式时不必再重复填写过滤条件,不但简化了书写操作,而且在子格运算时可以直接使用主格的运算结果而无须再次运算,减少了过滤次数,从而提高了运算效率。附图说明图1是本专利技术所述的方法流程图;图2是本专利技术具体实施方式中实施例1生成的报表示意图;图3是本专利技术具体实施方式中实施例2生成的报表示意图。具体实施方式下面结合实施例和附图对本专利技术所述的方法作进一步地描述。实施例1以生成如图2所示的报表为例。一种基于非线性报表生成方法的数据关联方法,包括以下步骤,如图1所示。(1)确定报表运算时需要用到的数据集;所述的运算是指多数据集关联运算,所述的数据集多于一个。本实施例中,需要用到的物理数据库表的结构为:create table″CONTRACT″( ---合同表 ″CONTRACTNO″CHAR(20), ---合同号 ″SIGNDATE″TIMESTAMP, ---签定日期--> ″CUSTOMERID″CHAR(10), ---客户编号 ″TRANSPORTDATE″TIMESTAMP, ---到港时间 ″TRANSPORT″CHAR(10), ---港口 ″TRANSPORTMETHOD″CHAR(1), ---运输方案 ″AMOUNT″DECIMAL(16,2), ---金额 ″SALESMAN″CHAR(10), ---卖方 ″PAYMENT″CHAR(1), ---应付金额 ″FINISHED″CHAR(1), ---是否完成 ″PAYAMOUNT″DECIMAL(16,2) ---共付金额);create table″CUSTOMER″( ---客户表 ″CUSTOMER_ID″CHAR(10), ---客户编号 ″CUSTOMER_NAME″CHAR(20), ---客户名称 ″TEL″CHAR(10), ---电话 ″FAX″CHAR(10), ---传真 ″ADDRESS″CHAR(255), ---地址 ″PROVINCE″CHAR(10), ---省份 ″CITY″CHAR(10), ---城市 ″MEMO″CHAR(255), ---备注 ″CUSTOMERTYPE″CHAR(1) ---客户类型);数据集为2个,分别是:ds1=SELECT CUSTOMER_ID,CUSTOMER_NAME FROM CUSTOMERds2=SELECT CONTRACTNO,CUSTOMERID,AMOUNT,SIGNDATE FROM CONTRACT(2)在静态报表中确定某些单元格为扩展格,即主动扩展复制的单元格,并设置其扩展方向。本实施例中,设计的报表模板如下表所示: A B C D 1 客户名称 合同编号 签定日期 合同金额 2设A2为扩展格,扩展方向为纵向。(3)设置所有单元格的左主格和上主格,即该单元格在纵向和横向扩展时需本文档来自技高网...
【技术保护点】
一种基于非线性报表生成方法的数据关联方法,包括如下步骤: (1)确定报表运算时需要用到的数据集; (2)在静态报表中确定某些单元格为扩展格,即主动扩展复制的单元格,并设置其扩展方向; (3)设置所有单元格的左主格和上主格,即该单元格在纵向和横向扩展时需要跟随的扩展格; (4)如果有若干子格与主格的关联关系相同,则在主格中添加附加数据集,在子格中填写运算表达式时不再填写过滤条件;否则在子格中填写包含过滤条件的运算表达式; (5)对报表进行扩展和运算,获得生成后的实际报表。
【技术特征摘要】
CN 2007-4-18 20071009782111.一种基于非线性报表生成方法的数据关联方法,包括如下步骤:(1)确定报表运算时需要用到的数据集;(2)在静态报表中确定某些单元格为扩展格,即主动扩展复制的单元格,并设置其扩展方向;(3)设置所有单元格的左主格和上主格,即该单元格在纵向和横向扩展时需要跟随的扩展格;(4)如果有若干子格与主格的关联关系相同,则在主格中添加附加数据集,在子格中填写运算表达式时不再填写过滤条件;否则在子格中填写包含过滤条件的运算表达式;(5)对报表进行扩展和运算,获得生成后的实际报表。2.如权利要求1所述的一种基于非线...
【专利技术属性】
技术研发人员:蒋步星,
申请(专利权)人:北京润乾信息系统技术有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。