公式解析装置和方法制造方法及图纸

技术编号:11128300 阅读:55 留言:0更新日期:2015-03-11 17:33
本发明专利技术提供了一种公式解析装置,包括:公式字符串读入单元,用于读入待解析公式字符串;公式字符串及表达式解析单元,用于根据预先定义的公式标记符号和关键字列表,对待解析公式的字符串和特殊表达式进行解析,得到Node节点的Node集合;Node集合处理单元,用于对Node集合进行处理,生成待解析公式的可执行脚本。本发明专利技术还提供了一种公式解析方法。通过本发明专利技术的技术方案,可以在现有的公式解析方式基础上,充分利用单对象类型完成多对象类型的公式解析,建立多对象类型元数据参与的公式解析的通用、统一解析思路。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体地,涉及一种公式解析装置和一种公式解析方 法。
技术介绍
在企业管理软件中,用户在录入单据信息时,需要根据单据状态自动计算相关信 息数据,如录入报价,自动进行如下计算: ⑴报价含税: 含税单价=报价X扣率X扣率2 ; 价税合计=含税单价X数量; 无税金额=价税合计+ (1+税率); 税额=价税合计一无税金额; 无税单价=无税金额+数量; 折扣额=报价X数量一价税合计; ⑵报价不含税: 无税单价=报价X扣率X扣率2 ; 无税金额=无税单价X数量; 税额=无税金额X税率; 价税合计=无税金额+税额; 含税单价=价税合计+数量; 折扣额=报价X数量一价税合计。 但是,用户手工计算、录入等容易出错,数据录入效率低,数据录入时间长,难以保 证数据的正确性。 因此,需要一种新的公式解析技术,可以在现有的公式解析方式基础上,充分利用 单对象类型完成多对象类型的公式解析,建立多对象类型元数据参与的公式解析的通用、 统一解析思路。
技术实现思路
本专利技术正是基于上述问题,提出了一种新的公式解析技术,可以在现有的公式解 析方式基础上,充分利用单对象类型完成多对象类型的公式解析,建立多对象类型元数据 参与的公式解析的通用、统一解析思路。 有鉴于此,本专利技术提出了一种公式解析装置,包括:公式字符串读入单元,用于读 入待解析公式字符串;公式字符串及表达式解析单元,用于根据预先定义的公式标记符号 和关键字列表,对待解析公式的字符串和特殊表达式进行解析,得到Node节点的Node集 合;Node集合处理单元,用于对Node集合进行处理,生成待解析公式的可执行脚本。在该 技术方案中,可以将待解析公式进行解析处理,生成可执行脚本;这样,就可以使得用户基 于预设公式进行计算自动填充单据表格信息,避免用户手工计算、录入等错误,大大提高数 据录入的效率,节省数据录入时间,并保证数据的正确性。 在上述技术方案中,优选地,所述公式字符串及表达式解析单元,具体包括:字符 串解析模块,用于根据预先定义的公式标记符号,对待解析公式的字符串进行解析;特殊表 达式解析模块,用于根据预先定义的关键字列表,对待解析公式的特殊表达式进行解析,得 到Node集合。在该技术方案中,可以通过对公式中的字符串和特殊表达式分别进行解析, 得到便于生成可执行脚本的Node集合。 在上述技术方案中,优选地,所述Node集合处理单元,具体包括:Node节点动态 插入模块,用于在Node集合中动态插入Node节点,将待解析公式处理为预设形式;替换标 志设置模块,用于根据预先定义的Flag标记,对动态插入Node节点后的Node集合设置替 换标志;并获取设置替换标志后Node集合中的所有变量,返回以预设符号分割的字符串; 校验节点动态增加模块,用于在返回的字符串中,动态增加校验节点,对返回的字符串的可 访问性和数据有效性进行校验;可执行脚本生成模块,用于当返回的字符串的可访问性和 数据有效性完成校验后,将返回的字符串替换为预先定义的可访问数据,生成预先定义的 可执行脚本。在该技术方案中,通过对Node集合的形式变换和标志替换、可访问性和数据 有效性校验,生成可执行脚本,使得在用户录入数据时,能根据预设公式自动计算相关联数 据,并填入单据表格中,避免了手工计算和录入的低效和易错性。 在上述技术方案中,优选地,所述校验节点动态增加模块在返回的字符串中,动态 增加校验节点的操作,进一步包括:⑴读取返回的以预设符号分割的字符串;⑵判断是否 已将以预设符号分割的字符串从头读到尾;若是,则结束当前动态增加校验节点的过程; 否则,读入Node节点,执行步骤⑶;⑶对读入的Node节点,进行压栈操作;⑷压栈处理后, 判断压栈操作所得符号是否为赋值号;若是,则执行步骤(5);否则,返回步骤⑶;(5)进行两 次出栈操作;(6)两次出栈后,向前探索找到分号;(7)将赋值号至预设符号间的变量动态生 成校验节点并压栈;⑶将赋值号至预设符号间的除数为零的变量生成校验节点并压栈;⑶ 将整个表达式入栈,完成本次动态增加校验节点的过程。在该技术方案中,通过动态增加校 验节点,检验Node集合的可访问性和数据有效性,可以提高在将数据填入单据表格时的准 确性。 在上述技术方案中,优选地,所述可执行脚本生成模块生成预先定义的可执行脚 本的操作,进一步包括:⑴生成可访问性检测脚本;⑵拼装Node节点为脚本;⑶拼装计算结 果脚本;⑷调用上述脚本函数,生成预先定义的可执行脚本。在该技术方案中,由于基于脚 本技术,只需要对公式中涉及的变量,替换为单据表格中可访问数据,并在计算之前进行可 访问性校验和数据有效性校验,并在不能正确运行时,给出提示,引导用户输入相关数据, 极大的提高了易用性。 根据本专利技术的又一个方面,还提出了一种公式解析方法,包括:步骤202 :读入待 解析公式字符串;步骤204 :根据预先定义的公式标记符号和关键字列表,对待解析公式的 字符串和特殊表达式进行解析,得到Node节点的Node集合;步骤206 :对Node集合进行处 理,生成待解析公式的可执行脚本。在该技术方案中,可以将待解析公式进行解析处理,生 成可执行脚本;这样,就可以使得用户基于预设公式进行计算自动填充单据表格信息,避免 用户手工计算、录入等错误,大大提高数据录入的效率,节省数据录入时间,并保证数据的 正确性。 在上述技术方案中,优选地,所述步骤204,具体包括:步骤302:根据预先定义的 公式标记符号,对待解析公式的字符串进行解析;步骤304 :根据预先定义的关键字列表, 对待解析公式的特殊表达式进行解析,得到Node集合。在该技术方案中,可以通过对公式 中的字符串和特殊表达式分别进行解析,得到便于生成可执行脚本的Node集合。 在上述技术方案中,优选地,所述步骤206,具体包括:步骤402 :在Node集合中动 态插入Node节点,将待解析公式处理为预设形式;步骤404 :根据预先定义的Flag标记,对 动态插入Node节点后的Node集合设置替换标志;并获取设置替换标志后Node集合中的所 有变量,返回以预设符号分割的字符串;步骤406 :在返回的字符串中,动态增加校验节点, 对返回的字符串的可访问性和数据有效性进行校验;步骤408 :当返回的字符串的可访问 性和数据有效性完成校验后,将返回的字符串替换为预先定义的可访问数据,生成预先定 义的可执行脚本。在该技术方案中,通过对Node集合的形式变换和标志替换、可访问性和 数据有效性校验,生成可执行脚本,使得在用户录入数据时,能根据预设公式自动计算相关 联数据,并填入单据表格中,避免了手工计算和录入的低效和易错性。 在上述技术方案中,优选地,所述步骤406在返回的字符串中,动态增加校验节点 的操作,进一步包括:⑴读取返回的以预设符号分割的字符串;⑵判断是否已将以预设符 号分割的字符串从头读到尾;若是,则结束当前动态增加校验节点的过程;否则,读入Node 节点,执行步骤⑶;⑶对读入的Node节点,进行压栈操作;⑷压本文档来自技高网...

【技术保护点】
一种公式解析装置,其特征在于,包括:公式字符串读入单元,用于读入待解析公式字符串;公式字符串及表达式解析单元,用于根据预先定义的公式标记符号和关键字列表,对待解析公式的字符串和特殊表达式进行解析,得到Node节点的Node集合;Node集合处理单元,用于对Node集合进行处理,生成待解析公式的可执行脚本。

【技术特征摘要】
1. 一种公式解析装置,其特征在于,包括: 公式字符串读入单元,用于读入待解析公式字符串; 公式字符串及表达式解析单元,用于根据预先定义的公式标记符号和关键字列表,对 待解析公式的字符串和特殊表达式进行解析,得到Node节点的Node集合; Node集合处理单元,用于对Node集合进行处理,生成待解析公式的可执行脚本。2. 根据权利要求1所述的公式解析装置,其特征在于,所述公式字符串及表达式解析 单元,具体包括: 字符串解析模块,用于根据预先定义的公式标记符号,对待解析公式的字符串进行解 析; 特殊表达式解析模块,用于根据预先定义的关键字列表,对待解析公式的特殊表达式 进行解析,得到Node集合。3. 根据权利要求1或2所述的公式解析装置,其特征在于,所述Node集合处理单元,具 体包括: Node节点动态插入模块,用于在Node集合中动态插入Node节点,将待解析公式处理为 预设形式; 替换标志设置模块,用于根据预先定义的Flag标记,对动态插入Node节点后的Node 集合设置替换标志;并获取设置替换标志后Node集合中的所有变量,返回以预设符号分割 的字符串; 校验节点动态增加模块,用于在返回的字符串中,动态增加校验节点,对返回的字符串 的可访问性和数据有效性进行校验; 可执行脚本生成模块,用于当返回的字符串的可访问性和数据有效性完成校验后,将 返回的字符串替换为预先定义的可访问数据,生成预先定义的可执行脚本。4. 根据权利要求3所述的公式解析装置,其特征在于,所述校验节点动态增加模块在 返回的字符串中,动态增加校验节点的操作,进一步包括: ⑴读取返回的以预设符号分割的字符串; ⑵判断是否已将以预设符号分割的字符串从头读到尾;若是,则结束当前动态增加校 验节点的过程;否则,读入Node节点,执行步骤(3); ⑶对读入的Node节点,进行压栈操作; ⑷压栈处理后,判断压栈操作所得符号是否为赋值号;若是,则执行步骤(5);否则,返 回步骤⑶; (5) 进行两次出栈操作; (6) 两次出栈后,向前探索找到分号; (7) 将赋值号至预设符号间的变量动态生成校验节点并压栈; ⑶将赋值号至预设符号间的除数为零的变量生成校验节点并压栈; ⑶将整个表达式入栈,完成本次动态增加校验节点的过程。5. 根据权利要求3所述的公式解析装置,其特征在于,所述可执行脚本生成模块生成 预先定义的可执行脚本的操作,进一步包括: ⑴生成可访问性检测脚本; ⑵拼装Node节点为...

【专利技术属性】
技术研发人员:魏军政
申请(专利权)人:用友优普信息技术有限公司
类型:发明
国别省市:北京;11

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

1