0

我正在开发一个应用程序,其中涉及数百种不同的计算,并希望我的应用程序管理员能够通过指定公式来调整这些计算。

例如,我的数据库表包含价格和数量。“X”列之一可能包含“过去 7 天的(价格 * 数量)”。如何允许我的应用管理员将计算从“7 天”更改为“14 天”?

是否有某种方法可以在 VB.NET 中进行动态计算,或者如果需要更改,我是否必须依赖存储过程并编写一些代码来更改这些过程?在这种情况下,最佳实践是什么?

理想情况下,我想使用类似于在此处发布问题时使用的“标签”框来显示可用字段并在它们之间添加数学运算符以执行计算。它可能会增加更多复杂性,但如果不覆盖现有计算以便它可以用于构建新公式,那就太好了。

任何帮助将非常感激。谢谢!

4

2 回答 2

1

您可以使用一个eval函数,例如此处此处描述的函数。

确保以安全的方式实施它。出于显而易见的原因,允许用户执行任意代码可能很危险。

于 2012-06-11T22:58:02.960 回答
0

Windows Workflow 有一个很好的“规则”功能,它是基于 XML 的规则定义

http://msdn.microsoft.com/en-us/library/aa480193.aspx http://stackoverflow.com/questions/1017056/parse-and-execute-formulas-with-c-sharp

你可以利用它。或者,您可以构建自己的基于 XML 的公式引擎。类似于这个:

http://www.codeproject.com/Articles/25578/Dynamic-Formula-Processing-Library

于 2012-06-11T22:52:55.537 回答