法律状态公告日
法律状态信息
法律状态
2019-03-19
授权
授权
2016-09-07
实质审查的生效 IPC(主分类):G06F17/24 申请日:20160322
实质审查的生效
2016-08-10
公开
公开
技术领域
本发明涉及报表自动计算技术领域,具体涉及一种内嵌组织管理层次的数据自定义计算报表生成方法。
背景技术
办公自动化的发展方向是数字化办公。所谓数字化办公即几乎所有的办公业务都在网络环境下实现。从技术发展角度来看,特别是互连网技术的发展,安全技术的发展和软件理论的发展,实现数字化办公是可能的。从管理体制和工作习惯的角度来看,全面的数字化办公还有一段距离,首先数字化办公必然冲击现有的管理体制,使现有管理体制发生变革,而管理体制的变革意味着权利和利益的重新分配;另外管理人员原有的工作习惯、工作方式和法律体系有很强的惯性,短时间内改变尚需时日。尽管如此,全面实现数字化办公是办公自动化发展的必然趋势。
在办公自动化大趋势下,报表的自动化生成占有重要地位。报表往往是大型信息系统的重要组成部分,是信息系统数据的重要形式。从目前来看,用到报表的系统繁多,如物料系统,财务系统,绩效系统等等。企业利用计算机采集数据,并通过计算机通讯网络把企业数据传输到信息中心,进行统一汇总。接着,信息中心把汇总的报表反馈给企业进行分析和决策。于是报表的汇总和生产在企业办公自动化系统中有着重要的地位。
然而,在通常的办公自动化系统开发中,报表的汇总和生成逻辑往往是硬编码在程序中。作为系统使用者的企业,一旦报表需求发生变更,无论是需要修改报表计算公式还是需要向已有报表加入新的展示数据,都需要修改程序代码完成操作。这样需要专业的开发人员常驻企业,进行后续的开发和维护。这样无疑增加了企业开发系统的时间成本和经济成本。另一方面,作为系统开发者,往往在需要为不同系统开发不同的报表。为了不同业务逻辑,需要定制不同报表,进行大致相似而细微不同的重复代码开发。这样无疑提高系统开发成本。
组织管理层次是指企业根据其组织结构分类不同层级的数据,如企业中,一般根据组织结构划分,会导致在某个部门有若干项目,此时层次化数据即可分为 部门数据和项目数据两个层次。
发明内容
针对上述两个问题,本发明提出一种内嵌组织管理层次的数据自定义计算报表生成方法。根据业务需求自定义注册报表结构、源信息结构以及数据层次结构。解决企业报表开发复杂,重复性工作多的问题。提供一套报表编程方法,分离报表结构和数据。从而实现报表灵活可配,实时生成报表的效果,满足企业报表不断演化的需求。
本发明的技术方案为:一种内嵌组织管理层次的数据自定义计算报表生成方法,包括以下步骤:
步骤1,注册报表信息:
步骤1.1,注册报表源信息:声明源信息名称及源信息生成公式;公式等号左侧是待生成的数据名称,右侧是其他数据名称以四则运算及自定义计算公式组成的数学表达式;
步骤1.2,注册报表组织结构层次信息:首先定义组织结构层次间从属关系;如存在层次部门、项目、员工,定义层次关系为部门包括若干项目,项目中包含若干员工。然后定义步骤1.1中源信息的数据层次,即数据所描述对象在组织结构中的层次,如某数据对应部门层次或者项目层次;
步骤1.3,注册报表计算规则信息:用于描述报表生成所使用的计算公式,即将源信息放入报表中,放在报表中的源信息被称为报表项。同一个报表包含的所有源信息,应当处在相同的层次上。这个相同的层次,也是报表的层次。
步骤2,数据采集:根据步骤1中注册的报表源信息,采集对应的数值;
步骤2.1,读取注册的源信息,获得待采集数据候选列表;
步骤2.2,然后通过外部系统导入、人工录入或者其他方式,采集源信息的值并持久化储存。
步骤3,生成报表:根据步骤1中的注册信息和步骤2中的数据,生成报表。
上述技术方案的进一步特征在于,步骤3具体包括以下步骤:
步骤3.1,解析报表结构:扫描报表中所有报表项,对每一个所述报表项执行步骤3.2;
步骤3.2,解析报表项计算公式:
首先根据数据项名称查找步骤1.1注册的源信息,获取数据项的计算公式。然后比较计算公式等式两边层次关系,如果相同,则进行步骤3.3;否则查询步骤2.1注册的层次信息,在计算公式中引入层次公式后,再进行步骤3.3;
步骤3.3,转化为后缀表达式:将包括四则运算,括号,自定义函数和数字的中缀数学计算公式转换为后缀表达式;其步骤见图2。
步骤3.4,获取源信息值:根据计算公式中的数据名称,获取对应的源信息值,将源信息值替换对应数据名称。此时计算公式变为只有运算符、括号、自定义函数和数字的后缀表达式;
步骤3.5,计算报表项的值:计算从步骤3.4得到的后缀表达式的值;其步骤见图3。
步骤3.6,生成报表:将计算出的所有报表项,放入报表中,从而生成报表。
本发明具有如下的有益效果:本发明首先注册报表信息,再采集数据,然后生成最终的报表。由于层次信息包括源信息结构和考核表结构,并且这些信息会持久化储存。所以当报表结构需要发生变更,即因业务需要修改报表时,在不影响以往报表逻辑,不修改程序逻辑的前提下,只需要根据需求的变更,更改源信息和考核表计算公式。从而提高报表编程的灵活性。
使用本方法,可以灵活地自定义企业数据、数据层次关系及报表组织结构层次信息,根据自定义的内容自动生成对应的数据,方便企业使用并减少开发人员工作量。从而降低了报表开发的风险和工作量,解决企业报表需要不断演化的问题。
本发明将报表所需的数据信息(即源信息)和真实的数据(即源信息值)分离,即报表信息和生成报表所需的数据分离,并且做到了报表计算规则信息、报表组织结构层次信息和最终报表可配置。本发明的报表可在不同场景中应用,如绩效考核表,财务报表等,具有广泛的应用场景。
附图说明
图1为本发明的报表生成流程图;
图2为本发明实施例的中缀表达式转后缀表达式流程图;
图3为本发明实施例的后缀表达式求值流程图;
图4为本发明实施例的执行流程示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案进行详细说明。
如图1所示的报表生成流程图:注册完成报表源信息,报表组织结构层次信息及报表计算规则信息,描述报表生成所使用的计算公式,并通过外部系统导入、人工录入或者其他方式,采集源信息的值,然后获取报表结构;若报表项(即数据表项)有计算公式,则将计算公式转化为后缀表达式(如图2所示),获取录入的基础数据,计算出数据表项的值(如图3所示),填入数据表,当数据表项全部解析完,即得到数据表。
实施例:
本实施例以绩效考核表为例说明本发明的使用方法。以下以表格形式提供的信息,以文件、数据库或其它形式持久化储存。
首先注册报表信息。实施例将以数据库来持久化储存数据信息。其中实施例以部门,项目两层组织结构为例。注册源信息见表1:
表1:
注册组织结构层次信息见表2:
表2:
报表信息见表3、表4:包括报表本身的信息及报表源信息关联的信息:
表3:
表4:
接着采集数据,如表5所示。数据的采集可以由其它系统提供,也可以通过人工录入的形式提供。
表5:
最终根据公式生成报表。其步骤解析报表结构、解析报表项计算公式、转化为后缀表达式、获取源信息值和计算报表项的值。首先,根据表格3和表格4报表项信息知,部门研发绩效考核评分表只有一个数据项部门年度受理专利完成率。由于这个源信息有公式需要计算,所以调用calculationFunction函数对部门年度受理专利完成率进行计算,calculationFunction伪代码如代码1。
代码1
计算部门年度受理专利完成率,首先将公式转化为后缀表达式“部门年度受理专利实际值,部门年度受理专利指标,/”。其大致代码结构如代码2。中缀表达式转后缀表达式流程图如图2所示,最终numStack中就是需要的后缀表达式。
代码2
图2中基本思想是从左向右依次扫描中缀表达式的符号和变量(变量包括常量数字)。将扫描到的数字依次放入栈numStack。将扫描到的符号依次放入栈symbolStack,如果扫描到的符号优先级比symbolStack.top()符号高(如扫描到符号“+”,symbolStack.top()符号是“/”),那么说明symbolStack.top()符号需要先计算,那么就将栈顶符号弹入numStack(因为后缀表达式中,先遇到的符号先计算)。接着将扫描到的符号与symbolStack.top()比较优先级,重复上述行为,直到扫描到的符号优先级小于等于symbolStack.top()优先级,将符号放入symbolStack。最后将symbolStack中符号弹入numStack。此时numStack从底向上的方向组成的字符串序列就是所要的后缀表达式。
以本实施例中缀表达式“部门年度受理专利实际值/部门年度受理专利指标”为例,有下述过程:
扫描到变量“部门年度受理专利实际值”放入numStack;
扫描到符号“/”放入symbolStack;
扫描到变量“部门年度受理专利指标”放入numStack;
表达式扫描结束,将symbolStack弹入numStack;
此时numStack从底向上字符串序列{“部门年度受理专利实际值”,“部门年度受理专利指标”,“/”}正是所求的后缀表达式。
接着根据后缀表达式获取源信息值。第一个变量“部门年度受理专利实际值”需要计算,那么再次调用calculationFunction函数来进行计算可得值为3。第二个变量“部门年度受理专利指标”可以直接取得值为4。此时后缀表达式转换为“3,4,/”。以后缀表达式为参数,调用calculate函数进行计算。Calculate伪代码如代码3,后缀表达式求值流程图如图3所示。其返回结果,就应该是变量“部门年度受理专利完成率”的值0.75。
图3的基本思想是从左向右依次扫描后缀表达式,遇到数字放入栈stack,遇到符号就从stack中取操作数进行计算并将结果放入stack,直到表达式结束。
以本实施例中含变量的后缀表达式“部门年度受理专利实际值,部门年度受理专利指标,/”对应不含变量的后缀表达式“3,4,/”为例,有下述过程:
1.扫描到数字“3”放入stack;
2.扫描到数字“4”放入stack;
3.扫描到符号“/”,取操作数“3”,“4”,计算3/4;
4.将计算结果“0.75”放入stack;
5.此时stack中只有一个数字,所以这个数字就是计算结果。
代码3
这样就得到了部门1的部门研发绩效考核评分表,其报表项“部门年度受理专利完成率”的值为0.75。
图4为本发明实施例的执行流程示意图。
上面结合附图和具体实施例对本发明作了详细的说明,但是本发明不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
机译: 系统,计算机实施方法,地理天气数据选择界面显示和计算机可读介质,其具有程序产品来生成用户自定义的虚拟天气数据和用户自定义的应对天气的风险产品
机译: 系统,计算机实现的方法,地理天气数据选择界面显示以及具有程序产品的计算机可读介质,这些程序产品可生成用户自定义的虚拟天气数据和响应于此的用户自定义天气风险产品
机译: 系统,计算机实现的方法,地理天气数据选择界面显示以及具有程序产品的计算机可读介质,这些程序产品可生成用户自定义的虚拟天气数据和响应于此的用户自定义天气风险产品