2012-01-01 43 views
0

我们正在开发一个系统,将会执行财务报表和其他财务相关的事情。我们正在Java/Java EE中开发应用程序,特别是在JBoss Seam(Richfaces,a4j)+ Javascript和其他技术中。存储公式以计算财务报告的有效方法?

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

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

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

+1

目前尚不清楚**特定**问题在这里。 – 2012-01-01 18:02:41

+0

高效的是什么意思? – 2012-01-01 18:22:45

+0

而不是“高效”,可能是未来维护方式来存储数据(公式)并从源动态使用它。 – 2012-01-02 05:09:08

回答

3

如果您主要关心的是公式的可维护性,我可以想到两种不同的方法可能有所帮助。

  • 保持Excel中的公式和使用的东西,如Apache POI将值写入到电子表格,然后读回的评估公式。 (请参阅http://poi.apache.org/spreadsheet/eval.html。)不确定如何衡量或执行,但明显的优势是,如果您的客户不断调整Excel工作表中的公式,这些更改会立即生效,而不是不断追赶。

  • 将公式转换为Java POJO,但将它们全部合并到纯业务逻辑的单个类或包中,而不包含Java EE,Seam或JSF依赖项。尽管每当Excel版本发生变化时您都必须重新翻译为Java,但至少它们都位于原始Excel源代码之间的清晰映射中。您还可以使用脚本语言来更改公式,而无需重新启动/重新部署周期。

+0

+1:我完全同意。;) – 2012-01-01 18:57:51

+0

这两个想法都很好,第一个是我可以做的事情,但我需要将所有数据都放在一个表单中,以便单独更改这些值,也许它会很慢,但是一个不错的选择,第二个也不错但是当公式发生变化时,将会有两个来源需要更改,因为我们也想导出为Excel。我会与同事们核对一下,看看能做些什么。 – 2012-01-02 05:00:41

1

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

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

+0

表结构是怎样的?,公式的值或常量之间的联系如何?对于考试:a + b,我认为a或b值动态地从源头获取值。 – 2012-01-02 05:05:27

1

这听起来像一个伟大的应用程序,无论是在您的应用程序代码,或作为一个SQL函数。我强烈建议将你的函数存储在java代码和sql中,因为它更容易测试和更改。诚然,嵌入式sql函数可以执行得更好,并且可以批量执行,但性能不是一切,因为您会在调试或更改它们时知道。

+0

性能是一个很好的观点,因为超过100行已经被处理,我会记住它。 – 2012-01-02 04:54:53