用BeanShell实现公式管理

使用Java脚本构建强大、灵活的公式管理系统

在很多中大型的应用中,如SCM(供应链管理)、CRM(客户关系管理)和ERP(企业资源计划)等,使用者往往要根据自身的需求,灵活的对某一些参数值进行变更,使得按照某固定公式计算的结果符合目前的情况。如不同时期商品价格的折扣率需要根据实际情况进行调整,或者职员的奖金百分比要根据公司的业绩而定。这就需要有一个强大的公式管理机制来对一些参数进行灵活调整。

前言

客户的需求是在不断变化的。虽然他们说现在他们公司的职员奖金应该就是按照那个公式计算,但是过了几个月他们会告诉你这个公式并不是很合理,还需要加一些参数。你可能会说,这个没问题,我们可以改程序。但是当这样的变更不是一次一个的发生,而是频繁的、大量的出现时,你也许就在想应该有一个公式管理系统来完成这些琐碎却很重要的变更了。是的,在很多系统中已经这样做了。这里将介绍一种简单的、易扩展的公式管理系统,它采用简单灵活的BeanShell脚本机制,并且结合JDOM技术来实现。在阅读本文以前,你需要对BeanShell和JDOM有所了解。

BeanShell简介

BeanShell 是一种Java 解释器,它包含的脚本语言基本与Java 语言兼容,具有体积小、简单、符合Java 风格等特点。本文不是介绍BeanShell的语法和用法,而是基于BeanShell脚本实现一个公式管理器来说明BeanShell的强大脚本功能,从而简化Java程序员的编程工作,使他们更深入的了解什么时候使用BeanShell技术将使得构建的系统更灵活。你可以阅读参考资料了解更多 BeanShell的知识。类似的Java脚本技术还有DynamicJ等,想要详细了解它们的更多信息,请查阅后面的参考资料。(请注意:这里的 Java脚本不是Javascript。)

JDOM简介

JDOM使得用Java操作xml文件更轻松。这里使用xml文件格式对用户的自定义公式库进行存储,即简单又容易管理。利用JDOM技术,能够简单、快速的完成这个任务。如果你想详细了解有关JDOM的知识,请查阅文章后面的参考资料。

公式管理系统的目标

公式管理系统实现的主要目标是:用户可以根据自己的需要自定义公式,包括添加、修改和删除公式或者公式包含的参数;提供接口使得用户或其它系统能够利用公式库中的公式进行计算求值。从以上系统的主要功能,可以知道该系统主要包含两个用例:自定义公式和计算表达式。自定义公式是用户预先定义好某公式包含的参数(包括参数名、参数类型等),然后将这些参数用运算符按照一定的法则组合成所需要的公式。公式定义好后,将被保存到公式库中,供以后用户或其它系统计算时调用。这是管理者根据自身的需求,灵活更改公式或公式包含的参数的系统功能;计算表达式是用户给相应参数赋值,然后指定要遵照的公式进行计算求值。这是该系统提供给使用者的外部接口。一般的,使用者只需要提供要遵照的公式ID和相关的参数值,就可以调用该接口进行计算。该系统的用例图如下:

图1. 公式管理系统用例图

时间: 2025-01-20 16:26:41

用BeanShell实现公式管理的相关文章

中原证劵集成版如何下载安装

  一.报表分析 中原证劵集成版使用注意事项:对于区间数据统计功能使用前请下载盘后日线数据,当日的数据统计功能不需要下载盘后日线数据,系统会自动刷新当日数据. 1.热门板块分析 调出方式:报价->报门板块分析或用键盘精灵输入.400 功能说明:热门板块分析对当日及某区间内的板块相关信息进行统计. (1)相关字段的说明 字段 说明 均涨幅 涨幅的算数平均值 权涨幅 按流通盘加权的涨幅平均值 市场比 表示当前区间内的该股票的总成交金额占市场的总成交金额的比例涨股比 左边为行业中上涨股的个数,右边为行

交通行业综合统计解决方案

一.背景: 交通行业综合统计解决方案是依据"交通部综合规划司"的统计业务需求.由"交通部科学研究院"和"北京久其软件股份有限公司"联合提出的.由于是和"交通部科学研究院"合作,久其容易理解客户的业务需求,同时对业务需求的把握也更精准.按照方案的规划,久其所提供的是一套集报表任务定制.报表数据上报.报表数据收集.报表数据审核.报表数据查询以及交通统计数据分析应用等功能于一体的交通行业统计信息管理软件,可实现交通行业统计数据的收集

甲骨文推出最新客户体验云产品Oracle CPQ Cloud

北京,2014年4月29日--各行业各类型的企业正通过跨所有客户接触点提供特别的客户体验来获得卓越表现��通过并购BigMachines,甲骨文为其基于云的客户体验产品套件增加了关键组件,其能管理客户生命周期,包括从潜在销售生成和机会管理到报价和客户服务.Oracle CPQ Cloud (Oracle Configure, Price and Quote Cloud)(BigMachines)简化了从询价到订单的销售流程,通过让销售人员和合作伙伴随时随地在任何设备上更快和更准确地生成销售报价.

BeanShell在人工测试与管理之中的应用

JUnit 单元测试学深入人心的同时,也发现它对用户交互测试无能为力: TestCase 允许测试人员作动态的修改 可以在Test Case 中实现一个测试参数输入功能(UI 或参数配置文件)来解决这个问题,但实现这些功能的代价与重复工作量会很大. TestCase 可以方便地重复使用.组合.保存 不是所有所有测试环境下,都容许打开一个重量级的 Java IDE 编写有严格规范的 Java 代码.这就是脚本语言受欢迎的原因. BeanShell 可以较好解决以上问题. 1.BeanShell基本

请问工资管理等系统中的自定义工资结构表字段,以及编辑公式是怎么实现的?大概思路是怎样的?

问题描述 请问工资管理等系统中的自定义工资结构表字段,以及编辑公式是怎么实现的?大概思路是怎样的? 解决方案 解决方案二:你要用什么实现啊?是PHP吗解决方案三:该回复于2010-02-23 09:43:53被版主删除解决方案四:描述太简单了,无法领会楼主意思解决方案五:以sqlserver为例1.动态创建表,就是创建字段就在表里加一个字段,当然可以直接用中文,也可以建一个专门存字段中文和实际名称的关系表2.编辑公式,也很简单,直接用sqlserver的语法规则,比如:基本工资=日工资*36,传

大学管理类专业不被看好就业无门管理没戏

"管理专业毕业生就业无门,管理没戏."安徽合肥某公司总经理陈凤江说,自己企业近两年招聘的20多名管理人员,全是社会上或同行企业中的专业技术人员,而大学管理类应届毕业生一个都不要. 新一轮的大学应届毕业生招聘活动即将开始,记者却在很多场合听到企业人士对管理专业本科生的不满,认为"管理"这个词其实是给学生设置了障碍,什么人力资源管理.公共事务管理,管理什么呀?非常蠢. 然而据记者所知,很多大学却在报名时给学生家长暗示,好像考了管理专业,将来出来就是人上人,是管别人的,以

Domino下通过代理公式批量修改用户属性值

Domino下通过代理公式批量修改用户属性值---勾选强制用户在下次登陆时更改Internet口令选项 我们大家都知道目前在windows下最常用的两套邮件系统是Mircrosoft Exchange和IBM Lotus,Microsoft Exchange使用起来比较方便,管理也比较方便,我们都知道Microsoft Exchange是跟域集成的,以至邮箱账户信息跟域账户登陆验证信息也就统一了;而IBM Lotus就不一样了,跟域不集成,如果在域环境下部署,会有产生两套信息系统,域账户跟邮箱账

Word公式编辑器

★ 公式编辑器的来历 你一定知道在Word中有个"公式编辑器"应用程序,但你可能不清楚它其实不是微软公司开发的,它是Design Science公司的Mathtype"公式编辑器"特别版,是为Microsoft应用程序而定制的. ★ 公式编辑器的安装 "公式编辑器"不是Office默认安装的组件,如果要使用它,重新安装Office至如图1所示步骤时,在"Office工具"中选择"公式编辑器",从选项中选择&

Excel2007的名称管理器介绍

Excel2007的名称管理器介绍 名称管理器"是Excel2007 的新增功能 新增功能:"名称管理器"是Exce12007 中的新增功能. 当选择"公式" -> "定义的名称" ->"名称管理器" ( 或按Ctrl+F3 键〉时,出现"名称管理器飞"名称管理器"有以下功能: 显示有关工作簿中每个名称的信息.可以调整"名称管理器"对话框的大小并加大列宽以