[发明专利]基于工程造价计算描述语言BCL的报表生成装置及生成方法有效

专利信息
申请号: 201611207627.X 申请日: 2016-12-23
公开(公告)号: CN106648662B 公开(公告)日: 2020-02-21
发明(设计)人: 朱林生;万慧建;何贺;欧阳强;郝海风;曾江佑;王海民;廖成慧;刘国 申请(专利权)人: 江西博微新技术有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F8/34;G06Q10/10
代理公司: 南昌市平凡知识产权代理事务所 36122 代理人: 夏材祥
地址: 330096 江西省*** 国省代码: 江西;36
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种基于工程造价计算描述语言BCL的报表生成装置及生成方法,包括编制报表BCL脚本和格式文件;创建报表对象,加载报表配置文件;加载报表BCL脚本;对BCL脚本进行词法分析,生成EL表达式;使用语法分析器,将所有EL表达式,生成对应的BCL语法树结点,进而形成整个BCL语法树;创建相应BCL对象,并关联经语法分析后得到的BCL语法树;通过对生成的BCL对象进行分析,获取待计算BCL语法树对象;解释执行当前BCL语法树,按照后序遍历的方式处理语法树中的结点,将创建的报表对象作为上下文提供给BCL执行,直到所有BCL语法树执行完毕;将报表数据持久化为文件,完成任务。本方法实现一次编译多次解释执行,从而有效提高报表生成效率。
搜索关键词: 基于 工程造价 计算 描述 语言 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脚本编制装置是一套可视化的报表生成脚本编制装置,使用者通过该装置能可视化编辑报表数据及格式生成规则,并生成符合工程造价计算描述语言语法的报表BCL脚本;所述的报表BCL脚本编译装置用于解析每张报表BCL脚本中BCL元素及报表元素进行编译处理,形成多个EL表达式集合,每个EL表达式集合都是一个BCL元素构建成的语法树,其中的BCL元素是最小待执行单元,内部包含描述计算算法规则、报表函数运算的EL表达式集合;所述的报表BCL脚本解析装置包含了报表BCL脚本文件生成器和报表BCL脚本解析器,用于实现报表BCL脚本编译装置中报表BCL元素对象与已编译报表BCL脚本文件之间的相互转换;能有效记录或者还原报表BCL元素对象,避免报表BCL脚本重复编译,加快报表生成的效率;所述的报表格式生成装置,用于实现报表对象中的报表格式对象与报表格式文件之间的相互转换及报表格式信息的编辑;报表格式对象包括报表页面信息、报表表头名称、报表表头格式,通过所述装置实现记录、获取及编辑对应报表格式信息;所述的报表BCL脚本执行装置,用于解释执行所述报表BCL脚本编译装置生成报表BCL对象,执行编译出EL表达式集合并调用报表函数实现报表数据及格式保存到报表BCL对象中;所述报表BCL对象为EL表达式集合,内部过程涉及报表BCL对象解释执行模块、语法分析模块、结点计算模块、工程数据反应器模块、报表格式参数反应器模块、数据源模块、运行上下文模块、报表函数运算模块;其中报表BCL对象解释执行模块用于控制BCL对象解释执行过程,通过语法分析模块报表BCL对象解释成待计算BCL元素结点,利用结点计算模块对BCL对象内部包含的BCL语法树中的每个节点进行计算;其中数据源模块用于对工程数据反应器模块、报表格式参数反应器模块提供数据进行处理,包括数据源筛选、遍历、分组,并通过运行上下文模块形成结点计算模块可供使用的数据源;报表函数运算模块包括报表添加列、添加行,填充行单元格数据、修改行单元格数据、删除列、删除行、添加合并标记、报表换页操作等报表函数,依据不同函数运算逻辑,用于实现将节点计算结果数据及格式保存到报表对象中;所述的报表数据保存装置,用于实现将报表对象保存到报表文件中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江西博微新技术有限公司,未经江西博微新技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201611207627.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top