一种中式报表的生成方法技术

技术编号:22330116 阅读:53 留言:0更新日期:2019-10-19 12:16
本发明专利技术公开了一种中式报表的生成方法,包括:根据获取的数据,建立报表数据集;根据报表局部规则性,建立多个子报表,将相应数据集分别绑定到子报表中;设置子报表数据关联、子报表布局对齐属性;编写数据计算表达式到单元格,完成报表模板;运行报表模板得到实际报表。与现有技术相比,具有以下优点:子表关联,降低数据准备难度;子表对齐,报表布局不因扩展而破坏;数据引用容易,报表运算实现简单。

【技术实现步骤摘要】
一种中式报表的生成方法
本专利技术属于信息技术处理领域,特别是一种中式报表的生成方法。
技术介绍
在传统的电子报表生成方法中,总体上可以分为两种。一种以微软公司的Excel为代表。这类报表一般不需要动态从数据库等数据源中组织数据,在利用工具设计结束后,得到的结果就是最终的报表。另一种则以水晶报表、中创InforReport为代表,这类报表需要动态的从数据库等数据源组织数据,在利用工具设计结束后,只能得到中间结果(领域术语称为报表模板),需用进一步处理后才能得到最终的报表。在第二种报表生成方法中,首先引用的是基于条带模型的报表工具。这类报表模型脱胎于西式报表,在处理一些数据复杂、格式复杂、计算复杂的中国特色报表(领域术语称为中式报表)时遇到较多的问题。后来国内技术人员对其进行了探索与改进,产生了基于网格模型的报表工具,这类工具结合了中式报表的一些特点,在多数据来源、基于网格的布局、报表列向扩展等方面都提出了很好的解决方案。但是,由于中式报表的复杂性,上述解决方案仍然存在较多问题。突出表现在:中式报表从一个局部来看是规则的,可以归纳为某一报表模型来处理,但是在整体来看就是不规则的,不能将其划为任一种模型,即为局部规则、整体不规则。为处理这类问题,传统方法有二种:一是在报表区域中引入子报表,但是由于子报表和主表高度独立,导致报表丟失原先存在的数据关联性,并且导致原有的布局遭到破坏,增加了数据准备难度。第二种方法是打碎报表模型概念,将报表的属性转移到单元格上,通过单元格的设置完成局部区域的设计。这种方法虽然带来一些灵活性,但是仍然会破坏原有报表布局,并且使报表设计繁琐化,降低了报表抽象粒度,报表布局可能因扩展而破坏。中式报表的数据运算相对简单,一般为普通数学运算;但是数据引用非常复杂,参加运算的数据具有很大的任意性,即数据运算复杂。而传统方法在处理这类运算时,一般只提供单一引用某单元格数据或统一引用数据集合数据两种形式。导致很多情况下数据运算只能由后台程序预先处理,大大加大了报表生成的工作量和难度。
技术实现思路
针对传统中式报表生成存在的数据准备难度高、报表布局因扩展而破坏、数据引用复杂、报表运算复杂的缺陷,提出了一种中式报表的生成方法,解决了子报表扩展对报表整体布局的破坏问题,实现了子报表间的布局对齐和数据关联,提供了灵活的数据引用方法,解决了中式报表中数据运算依靠后台程序预先处理的问题,实现了灵活的数据运算。一种中式报表的生成方法,包括以下步骤:步骤一、根据获取的数据,建立报表数据集;步骤二、根据报表局部规则性,建立多个子报表,将所述报表数据集中的相应数据集分别绑定到所述子报表中;步骤三、设置所述子报表的数据关联、布局对齐属性;步骤四、编写数据计算表达式到单元格,完成报表模板;步骤五、运行所述报表模板得到实际报表。优选的,所述步骤一中,所述数据的获取:从数据源直接获得和/或通过字段计算获得和/或自动生成获得。优选的,所述步骤二中,所述数据集绑定到所述子报表:将数据集的字段设置到所述子报表所属的扩展区域中,扩展区域由子报表内的连续单元格组成,同时设置扩展区域的扩展属性,包括扩展方向和扩展次数。优选的,所述步骤三中,所述子报表的数据关联的方式:包括内连接、左外连接、右外连接、全外连接。优选的,所述内连接为只显示关联匹配数据;所述左外连接为完整显示左表数据、右表不匹配数据以空或指定符号代替;所述右外连接为完整显示右表数据、左表不匹配数据以空或指定符号代替;所述全外连接为完整显示左表、右表数据,不匹配数据以空或指定符号代替。优选的,所述步骤三中,还包括,两个子报表的扩展区域内的匹配记录将相对各自扩展区域的起点产生相同的位置偏移。优选的,所述步骤三中,子报表布局对齐的方式:高度对齐和宽度对齐,其中子表起始位置位于不同列上的子报表设置高度对齐属性,不同行上的子报表设置宽度对齐属性,同一子报表同时和不同的两个子报表分别设置高度对齐、宽度对齐属性。优选的,所述步骤四,编写数据计算表达式到单元格还包括进行单元格数据引用、数据集引用。优选的,所述单元格数据引用包括单元格的坐标描述,具体的采用绝对坐标引用或相对坐标引用;其中,绝对坐标引用单元格数据是指通过指定单元格在设计状态的坐标来引用报表扩展后某个单元格数据;相对坐标引用单元格数据是指通过指定单元的相对行列偏移值来引用扩展后某个单元格的数据。优选的,所述数据集引用是提供过滤条件设置和偏移设置。与现有技术相比,本专利技术的有益效果:1.子表关联,降低数据准备难度。在传统报表工具中,遇到不同数据集需要进行关联计算的情况,需要在后台编写数据准备程序或存储过程,以将两个数据集合并。如果本来单个数据集的SQL或存储过程已经非常复杂的情况下,这种合并将是非常耗时耗力的,并且以后很难维护。一旦两个数据集是不同的数据源,那么这种合并就要必须进行一方数据的转存,从而带来一系列的同步问题。应用该方法后,开发人员不用再进行数据准备工作,可以直接通过数据关联设置完成。比如A数据集通过SQL语句获得,包含公司的财务数据,B数据集通过存储过程获得,包含公司的人事数据。应用数据集关联后,能够以公司为主键,轻松完成公司财务、人事数据的对比分析。2.子表对齐,报表布局不因扩展而破坏。在传统报表工具中,为保证报表布局整齐美观,技术人员可能需要花费很大精力对报表进行调整。但是由于报表扩展数据的不确定性,导致经常出现扩展空白区域,虽然能够进行简单的处理,但是效果都不满意。应用子表布局对齐方法后,局部扩展的子报表能够和报表整体布局保持一致,并且能够选择空白区域的填充方式,避免了因为扩展而导致的布局破坏。3.数据引用容易,报表运算实现简单。由于报表运算数据的任意性,以及引用数据能力的缺乏,导致很多业务逻辑很简单的计算方式在实际报表开发中很难实现,最终只能将这些结算任务抛到后台程序,降低了报表工具的价值,增加了技术人员的工作量。应用该方法后,引用数据能力增强,无论是单元格引用,还是数据集引用,都能将扩展形成的动态数据抓取过来,并进行自定义条件的过滤处理,报表运算变得简单。比如普通的分段统计、分组小计、同期比、上期比、逐一累计等都能通过数据引用实现。附图说明:图1为本专利技术的报表的生成方法的流程图;图2为本专利技术实施例中子报表数据关联的示意图;图3为本专利技术实施例中扩展导致真空区域的示意图;图4为本专利技术实施例中子报表对齐的示意图。具体实施方式下面结合试验例及具体实施方式对本专利技术作进一步的详细描述。但不应将此理解为本专利技术上述主题的范围仅限于以下的实施例,凡基于本
技术实现思路
所实现的技术均属于本专利技术的范围。图1为本专利技术实施例报表的生成方法的流程图。一种中式报表的生成方法,包括以下步骤:步骤一、根据获取的数据,建立报表数据集;图1为本专利技术实施例报表的生成方法的流程图。该流程开始于步骤一选择报表所属模型,建立报表数据集。本步骤中,报表模型是预先抽象好的,用户可以直接选择,并且在报表设计阶段也可以更改。数据集可以是多个,并且能够来自不同的数据源,包括数据库、Java对象、文本文件(包括CSV文件以及自定义分割符的其它文件)、XML文件(XML结构不受限制)。数据集的字段除从数据源直接获得外,并且能够通过其他字段计算获得(称为计算字段),本文档来自技高网
...

【技术保护点】
1.一种中式报表的生成方法,其特征在于,包括以下步骤:步骤一、根据获取的数据,建立报表数据集;步骤二、根据报表局部规则性,建立多个子报表,将所述报表数据集中的相应数据集分别绑定到所述子报表中;步骤三、设置所述子报表的数据关联、布局对齐属性;步骤四、编写数据计算表达式到单元格,完成报表模板;步骤五、运行所述报表模板得到实际报表。

【技术特征摘要】
1.一种中式报表的生成方法,其特征在于,包括以下步骤:步骤一、根据获取的数据,建立报表数据集;步骤二、根据报表局部规则性,建立多个子报表,将所述报表数据集中的相应数据集分别绑定到所述子报表中;步骤三、设置所述子报表的数据关联、布局对齐属性;步骤四、编写数据计算表达式到单元格,完成报表模板;步骤五、运行所述报表模板得到实际报表。2.根据权利要求1所述的一种中式报表的生成方法,其特征在于,所述步骤一中,所述数据的获取:从数据源直接获得和/或通过字段计算获得和/或自动生成获得。3.根据权利要求1所述的一种中式报表的生成方法,其特征在于,所述步骤二中,所述数据集绑定到所述子报表:将数据集的字段设置到所述子报表所属的扩展区域中,扩展区域由子报表内的连续单元格组成,同时设置扩展区域的扩展属性,包括扩展方向和扩展次数。4.根据权利要求1所述的一种中式报表的生成方法,其特征在于:所述步骤三中,所述子报表的数据关联的方式:包括内连接、左外连接、右外连接、全外连接。5.根据权利要求4所述的一种中式报表的生成方法,其特征在于,所述内连接为只显示关联匹配数据;所述左外连接为完整显示左表数据、右表不匹配数据以空或指定符号代替;所述右外连接为完整显示右表数据、左表不匹配数据以空...

【专利技术属性】
技术研发人员:周应华景磊瞿浩李维刚孔锐廖林刘伟张雪川
申请(专利权)人:中铁二局集团勘测设计院有限责任公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1