存储公式以计算财务报告的有效方法?

时间:2012-01-01 17:59:50

标签: java seam storage formula financial

我们正在开发一个能够完成财务报表和其他财务相关事务的系统。我们正在开发Java / Java EE中的应用程序,特别是JBoss Seam(Richfaces,a4j)+ Javascript和其他技术。

现在我们有很多或公式来计算财务报表账户。我们需要构建一些可用于存储公式并以简单方式或数据结构使用它们的东西,这样公式就不会在所有代码中使用固定数字/引用来杀死应用程序。 (可维护性问题。)

现在我们在MS Excel表格中有公式。我们有Excel中的常用公式(= A30 + B40)。 excel中的每一行都是一个帐户,我们最终将它存储在一个SQL服务器数据库表(account)中,但这里的主要内容是如何存储/管理公式,以便比某些地方的硬编码更好地使用。

我知道金融系统会这样做,但我找不到太多关于它的信息。

3 个答案:

答案 0 :(得分:3)

如果您主要关注的是公式的可维护性,我可以考虑两种可能有用的方法。

  • 将公式保存在Excel中并使用类似Apache POI的内容将值写入电子表格,然后回读评估的公式。 (参见http://poi.apache.org/spreadsheet/eval.html。)不确定扩展或执行的程度,但明显的优势在于,如果客户端不断调整Excel工作表中的公式,则更改会立即生效而不是不断地追赶。

  • 将公式转换为Java POJO,但要将它们全部整合到纯业务逻辑的单个类或包中,而不包含Java EE,Seam或JSF依赖项。即使每次Excel版本更改时您都必须重新转换为Java,至少它们都在一个地方,并且在原始Excel源之间有清晰的映射。您还可以使用脚本语言来更改公式,而无需重新启动/重新部署循环。

答案 1 :(得分:1)

我们在SQL表中存储KPI公式时做了类似的事情。我们的C程序将从表中读取并运行SQL。

我们的KPI使用对影响统计数据的各种因素进行加权。这样,我们可以更改加权和公式(添加或删除因子),而无需更改程序。

答案 2 :(得分:1)

对于函数来说,这听起来像是一个很棒的应用程序,无论是在应用程序代码中还是作为sql函数。我强烈建议将您的函数存储在java代码与sql中,因为它更容易测试和更改。确实,嵌入式sql函数可以更好地执行并且可以批量执行,但性能并不是所有内容,因为您将在调试或更改它们时知道。