您的位置:首页 > 其它

动态进行"自定义公式"计算

2008-12-11 11:41 190 查看
这几天弄完了一个"自定义公式计算"的方案,觉得比较有意思,在这里就共享下!

该方案是针对一些需要用户自己去定义"计算公式",然后通过这个公式得出计算的结果这种需求的,特别适用与一些产品的BOM(在制作BOM的时候,需要去设定BOM中每个物料的数量,当这个BOM在比较复杂的时候直接去设定物料的数量,这点就不能去满足,因为有些物料是和其中的一些有关系的,所以这些的数据也想通过公式来建立关联关系并且得到数量)。

例如,A产品由B和C组成,在这里面B和C有一定的关联,C的数量是B数量的2陪,当出现这种情况的时候,用户就想通过修改B的数量,然后联动修改C的数量,但是这些公式需要允许用户自己去定义。这种类试的问题就是可以通过这个来搞定的。

大概可以解决的问题,大家应该了解了吧!那么如何使用和基本原理?

让我们先从用户使用的角度开始吧:

1、用户定义了下面结构的产品BOM:

Code

string templateName = "testT";

IList<CParamter> parList = new List<CParamter>();

CParamter cpar = new CParamter();

cpar.Key = "[Key1]";

cpar.PValue = 1;

cpar.PType = DataTypeEnum.Interger;

cpar.FormulaStr = "return [Key1] + 10";

parList.Add(cpar);

CParamter cpar1 = new CParamter();

cpar1.Key = "[Key2]";

cpar1.PValue = 1;

cpar1.PType = DataTypeEnum.Interger;

cpar1.FormulaStr = "return [Key2] + [Key1]";

parList.Add(cpar1);

ICTemplate tem = CTemplateFactory.BuildTemplate(templateName, parList);

tem.CalcaluteParamters(ref parList);

Assert.AreEqual(11, Convert.ToInt32(parList[0].PValue));

Assert.AreEqual(12, Convert.ToInt32(parList[1].PValue));

觉得这个方案对于需要进行自定义公式进行计算的用户,还是不错的!

源代码:DynamicCalculate.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: