基于工程造价计算描述语言BCL的报表生成装置及生成方法制造方法及图纸

技术编号:15301666 阅读:101 留言:0更新日期:2017-05-12 19:03
一种基于工程造价计算描述语言BCL的报表生成装置及生成方法,包括编制报表BCL脚本和格式文件;创建报表对象,加载报表配置文件;加载报表BCL脚本;对BCL脚本进行词法分析,生成EL表达式;使用语法分析器,将所有EL表达式,生成对应的BCL语法树结点,进而形成整个BCL语法树;创建相应BCL对象,并关联经语法分析后得到的BCL语法树;通过对生成的BCL对象进行分析,获取待计算BCL语法树对象;解释执行当前BCL语法树,按照后序遍历的方式处理语法树中的结点,将创建的报表对象作为上下文提供给BCL执行,直到所有BCL语法树执行完毕;将报表数据持久化为文件,完成任务。本方法实现一次编译多次解释执行,从而有效提高报表生成效率。

Report generation device and generating method based on engineering cost calculation description language BCL

A description of a report generating device and method of BCL language based on the project cost, including the preparation of the statements and BCL script file format; create a report object, report loading configuration file; loading BCL script statements; lexical analysis of the BCL script to generate EL expression; using the parser, all EL expressions, generate the corresponding BCL the syntax tree node, and the formation of the BCL syntax tree; create a BCL object, and the associated BCL syntax tree grammar analysis obtained; through the analysis of the BCL object, obtain the calculation object tree BCL language method; explain the execution of the current BCL syntax tree, according to the post order traversal approach in the syntax tree node, will create the report object as context for BCL implementation, until all the BCL syntax tree will be executed; data persistence file, Accomplish tasks. This method can be implemented once, interpreted and executed many times, so as to improve the efficiency of report generation.

【技术实现步骤摘要】

本专利技术属于工程造价报表生成领域,具体涉及一种基于工程造价计算描述语言BCL的报表配置化生成执行装置及生成方法,具体实现工程造价报表数据生成并可动态配置报表生成的数据及格式。
技术介绍
随着信息技术不断发展及企业管理的提升,工程造价计算日益精细化,各类报表越来越多并且报表生成逻辑复杂及报表格式多样化。传统的报表生成,通常为每张报表编写一份数据及格式生成代码,而实际存在不少报表输出规则相似,很容易导致相同逻辑重复编码情况。而报表生成逻辑及报表格式在出现定制化需求时,目前通常在代码中扩展特殊处理逻辑,一旦定制化需求过多代码复杂度呈几何数增长,不利于后期维护。传统的报表生成,报表生成规则、逻辑及样式通常通过编码实现,并集成在报表生成装置中。报表生成装置一旦发布用户无法更改报表生成规则,这种方式导致在软件产品中传统的报表生成装置灵活性差。一旦业务发生变化,哪怕报表输出数据项顺序发生变更这种微小更改,都必须根据变化的需求修改代码,并经过编译、集成、打包、测试、发布等一系列研发流程,导致软件响应速度慢及维护更新成本高。
技术实现思路
为了解决现有技术存在的问题,本专利技术提出了一种基于工程造价计算描述语言BCL的报表生成装置及生成方法,用于定制生成报表数据及格式。所述报表生成装置及执行方法基于工程造价计算语言BCL,与所述工程造价计算语言BCL一致,能够独立于不同的产品、项目及数据源,均具有与开发语言无关性和平台无关性。1.所述工程造价计算描述语言BCL,其实现包括:(1)设计描述具体计算算法规则的代数式及扩展运算表达式结构,即EL表达式;所述EL表达式是对计算算法规则的一个完整描述,以${和本文档来自技高网...
基于工程造价计算描述语言BCL的报表生成装置及生成方法

【技术保护点】
一种基于工程造价计算描述语言BCL的报表生成装置,其特征在于,所述装置是基于上述扩展的工程造价计算描述语言BCL及工程造价报表生成描述语言而实现的,包括:报表BCL脚本编制装置、报表BCL脚本编译装置、报表BCL脚本解析装置、报表格式生成装置、报表BCL脚本执行装置及报表数据保存装置;所述工程造价计算描述语言BCL及工程造价报表生成描述语言包括:所述工程造价计算描述语言BCL描述具体计算算法规则的代数式及扩展运算表达式结构,即EL表达式;所述EL表达式是对计算算法规则的一个完整描述,以${和}作为起始和结束标记,在沿袭传统代数表达式运算特点的同时,EL表达式支持用于包含多种条件选择表达式的条件选择运算和完成具体计算规则的函数运算,所述EL表达式包含种类多元化的操作数,支持数值、字符串和变量类型,其中,变量类型操作数是所述EL表达式支持动态数据挂接的典型体现,其值可以为外部对象的引用,也可以为执行阶段设定的具体数据值;所述条件表达式以#{和}作为起始和结束标记,其内部包含多个条件分支和之多一个缺省条件分支,每个分支对应一个EL表达式,整个条件选择表达式的取值为当前被激活条件分支对应的EL表达式计算结果,如:#{‑>条件1:EL表达式1;‑>条件2:EL表达式2;‑>:EL表达式3;}所述函数运算定义了具体的计算规则,以满足工程造价特定计算需求,其语法结构与C语言兼容,并支持BCL的扩展数据类型,除此之外,所述函数的调用还支持把EL表达式作为参数进行输入,能够实现指定工程数据范围与EL表达式的动态绑定,进而减少表达式代码冗余,语法格式为:sum(数据源标记,数据源别名,?EL表达式);分析工程造价计算需求,确定除EL表达式以外的其他计算逻辑单元;通过对造价工程数据及计算算法、过程的总结归纳,得出任何工程的工程造价复杂计算算法都可分解为最小的原子计算逻辑单元,即:EL表达式、宏表、变量、参数、数据源和包;其中,所述宏表能完整的表示一个具有递归、多字段、多记录、有汇总关系的计算规则;所述数据源用于描述一个工程的数据及其数据范围,它是BCL语言与工程数据的粘合剂,实现真实数据的传递;所述变量是包含数据源、数据过滤算法以及费用计算算法规则在内的具体费用计算结构,相较于仅包含具体数值的参数而言,变量的计算有一定的先后次序,更为复杂,但功能强大;所述包为其他原子计算逻辑单元的容器,能划定计算逻辑单元的作用范围,屏蔽命名冲突;分析工程造价报表输出需求,基于工程造价计算描述语言扩展并确定工程造价报表生成描述语言,具体包括扩展EL表达式、EL表达式报表输出函数及除EL表达式以外的报表输出逻辑单元;通过对造价报表输出数据及计算算法、过程的总结归纳,在工程造价计算描述语言BCL基础上扩展EL表达式、定义EL表达式报表函数运算及报表输出逻辑单元;所述的EL表达式在工程造价计算描述语言的基础上扩展增加带过程性质的EL表达式,用于循环执行EL表达式及函数,执行报表输出相关函数;以for循环举例,支持嵌套EL表达式调用,for循环语法格式为:for(数据源标记,数据源别名,?EL表达式,?EL表达式);所述的报表输出函数,是工程造价计算描述语言BCL中EL表达式的扩展,其定义了添加报表行、填充单元格、获取单元格数据、删除行、获取行数、添加列定义、开始合并标记和结束合并标记等操作函数,可实现报表数据的填充,语法格式为:addrow(?EL表达式);addfield(列名称,?EL表达式);deleterow();getrowcount();addfielddef(列名称,列类型);beginunioncell(起始列名称,结束列名称,合并类型);endunioncell(起始列名称,结束列名称,合并类型);所述的报表输出逻辑单元,参照工程造价计算描述语言;通过对造价工程报表输出数据及计算算法、过程的总结归纳,得出任何工程的工程造价复杂工程报表输出算法都可分解为最小的原子报表输出逻辑单元,即:EL表达式、变量、参数、报表数据源、报表对象;其中,所述EL表达式、变量、参数与工程造价计算语言描述一致,所述数据源用于描述一个工程的数据及其数据范围,它是BCL语言与工程数据的粘合剂,实现真实数据的传递;所述报表对象包括报表格式对象、报表数据对象、报表生成参数对象,它是BCL语言与工程报表输出数据的粘合剂,其中报表格式对象实现报表格式数据的传递、报表数据对象报表真实数据的传递、报表生成参数对象实现报表生成参数的传递;通过工程造价计算描述语言BCL,实现生成报表数据及格式填充到报表对象中,实现报表数据及格式的生成;所述的报表BCL脚本编制装置是一套可视化的报表生成脚本编制装置,使用者通过该装置能可视化编辑报表数据及格式生成规则,并生成符合工程造价计算描述语言...

【技术特征摘要】
1.一种基于工程造价计算描述语言BCL的报表生成装置,其特征在于,所述装置是基于上述扩展的工程造价计算描述语言BCL及工程造价报表生成描述语言而实现的,包括:报表BCL脚本编制装置、报表BCL脚本编译装置、报表BCL脚本解析装置、报表格式生成装置、报...

【专利技术属性】
技术研发人员:朱林生万慧建何贺欧阳强郝海风曾江佑王海民廖成慧刘国
申请(专利权)人:江西博微新技术有限公司
类型:发明
国别省市:江西;36

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

1