当前位置: 代码迷 >> C# >> 公式维护界面解决思路
  详细解决方案

公式维护界面解决思路

热度:49   发布时间:2016-05-05 04:15:49.0
公式维护界面
有个需求,跪求大神指点。

需要做个界面维护计算公式,刚开始学习没有思路,求指点。

两个界面,一个公式维护界面。一个是商品价格显示界面。
根据公式维护界面中的价格类型,决定计算公式的使用。
比如,公式维护界面的价格类型是:A  
 计算公式是:产品实际价格=基价*税率+运费
然后,在商品价格显示界面中,当维护基价、价格类型时,产品实际价格就自动算出。

根据这个需求,我该怎么处理,公式维护界面呢,因为价格类型很多。公式:基价*税率+运费 该怎么处理呢?放到一个字段还是分开处理,如何取到价格显示界面上去呢。。

求指点。。祝大家2015发大财。。谢谢、
------解决思路----------------------
你这个就是去找字符串转化计算了?
------解决思路----------------------
Eval
------解决思路----------------------
遇到过的类似问题,有30多种费用或者费率,进行计算后才得到最到的费用,  建了一个相关的费用表, 计算公式排好序后, 依次计算..

首先由几个 基准费用和费率..
R1(基价)
R2(运费)
R3(费率)
然后开始计算:
R4=R1*R3+R2

这是最简单的情况, 实际的费用和费率 不会这么少, 这种方式比较适合计算规则多变的情况。

如果费用计算方式相对固定, 数量不多, 可以考虑策略模式..
------解决思路----------------------
http://bbs.csdn.net/topics/360188060
------解决思路----------------------
你可以用后缀表达式算法,自己改进一下,可以识别参数,你把识别出的参数去换成数值就行了
------解决思路----------------------
先把所有的token定义出来,剩下滴东西交给词法解析引擎去解析语法树
------解决思路----------------------
不是有 eval 吗?

------解决思路----------------------


楼主你要的是这东西 吧?

这个用 NVelocity.dll 与 CalcEngine.dll; 这两个组件就能实现了
NV是模版引擎,CalcEngine.dll 这个是计算公式


$this.Flocculant/$this.DryOre*1000

先利用NV
把上面的公式变成

23/50*1000 后
再用CalcEngine.dll 计算出结果
------解决思路----------------------
先把输入转成逆波兰式作为参数,然后把这个参数输入计算函数就能得到结果了
------解决思路----------------------
引用:


楼主你要的是这东西 吧?

这个用 NVelocity.dll 与 CalcEngine.dll; 这两个组件就能实现了
NV是模版引擎,CalcEngine.dll 这个是计算公式


$this.Flocculant/$this.DryOre*1000

先利用NV
把上面的公式变成

23/50*1000 后
再用CalcEngine.dll 计算出结果
推荐用这个
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:



楼主你要的是这东西 吧?

这个用 NVelocity.dll 与 CalcEngine.dll; 这两个组件就能实现了
NV是模版引擎,CalcEngine.dll 这个是计算公式


$this.Flocculant/$this.DryOre*1000

先利用NV
把上面的公式变成

23/50*1000 后
再用CalcEngine.dll 计算出结果
推荐用这个


可以赐demo么?


你先百度这个用 NVelocity.dll 与 CalcEngine.dll;  这两个后,里面就有各自的DEMO了呀,然后你自己结合一下就可以了。
再不懂,再来问。当初这个需求我也一下子无处入手的,也没来CSDN问,纯自己百度 要学会用关键字。。
------解决思路----------------------
引用:
 NVelocity.dll 与 CalcEngine.dll 第一个组件我找到了,第二个却没找到,能不能提供个链接。刚开始接触,问题低级,请见谅。



https://github.com/ChrisEdwards/CalcEngine

上面图中的编号就是字段名称这个就是把公试计算后的结果给这个字段名 下边的公试this.XXX 这里的this.我们把它当成同一张表,XXX就是这张表的某个字段,
------解决思路----------------------
 NVelocity.dll 与 CalcEngine.dll组件
  相关解决方案