我正在编写一个 .Net 应用程序,必须支持用户定义的公式,可以执行基本数学运算,以及访问数据库中任意表中的数据。
我已经使数学部分工作了,使用了JScript Eval()。
What I haven t decided on is what a nice way is to do the generic table lookups.
For example, I may have a formula something like:
Column: BonusAmount
Formula: {CurrentSalary} * 1.5 * {[SystemSettings][Value][SettingName=CorpBonus AND Year={Year}]}
所以,在这个示例中,我将使用当前表中的列xxx的值替换{xxx}和{Year},并将第二部分替换为(select Value from SystemSettings WHERE SettingName= CorpBonus AND Year=2008)的值。
So, basically, I am looking for something very much like the MS Access DLookup function:
DLookup ( expression, domain, [criteria] )
DLookup("[UnitPrice]", "Order Details", "OrderID = 10248")
但是,我还需要一个整体的解析程序,可以告诉我是只查找当前行,还是查找其他表。最好也支持聚合函数(如:DAvg、DMax等),以及处理所有奇怪的边缘情况。
所以我想知道是否有人知道任何现有的库,或者有一个可以处理这个公式解析和数据库查找/聚合函数解决需求的好例程。