用于Web应用程序的小型电子表格式语言解释器

时间:2013-12-12 02:26:31

标签: php mysql report language-design

我正在构建一个网络应用,允许用户使用他们的数据创建小型“电子表格”。这是一个计时应用程序,我正在构建报告工具。

我正在寻找一种让不同群体拥有不同报告的方法,而无需在算法中使用硬编码。我想将这些算法存储在MySQL数据库中,并按人数将其拉出来。

该应用程序允许用户跟踪时间并将其分配给活动。

报告构建器将允许用户选择要报告的活动,并能够在总计中创建小方程式。

例如:一个小组使用加班费和加班费。加班时间需要乘以1.5,然后我从中减去加班费以得到总额。

这是一个示例输出:

|Month|overtime remaining| overtime-paid | overtime-given|
|-----|------------------|---------------|---------------|
| Jan |       7          |      2        |      6        |
| Feb |       9          |      0        |      6        |
| Mar |       0          |      7        |      0        |
| Apr |       7          |      2        |      6        |
| ... |       ...        |     ...       |      ...      |
|THour|       50         |      55       |      70       |//total in hours
|TDay |       7.14       |      7.85     |      10       |//total in days

我不确定最好的方法是建立一个小型翻译并创建我自己的小语言来描述它,或者是否有类似的东西已经存在。

我想知道其他人如何创建用户自己可以更改的每个用户自定义报告工具。改变我可以构建我简单的UI,供用户改变,他们不需要编写任何代码。

如果有人能指出我正确的方向,我们将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:1)

此问题的一般解决方案是以脚本的形式使用运行时表达式求值程序。在处理复杂和变化的计算时会出现类似的问题,例如成本计算,报价和工资单。

举一个简单的例子,脚本代码可能是:

$total = $overtime-given * 1.5 - $overtime-paid

问题是:

  1. 表达式使用什么语言。
  2. 如何让语言访问所需的变量(而不是其他任何内容)
  3. 主要选择是:

    1. 编写表达式评估程序/语言。硬! (但我最喜欢的)
    2. 如果合适,请使用托管语言。我相信PHP可以在这个角色中使用,但是我会向其他人推荐它的效果。
    3. 嵌入为此目的而设计的动态编译/解释语言。我建议Lua,但这取​​决于它是否可以嵌入你的平台。
    4. 这不是一个完整的答案,而是一个追求的方向。我在Ruby中完成了这个(嵌入我自己的表达式求值程序),但是除非你真的喜欢编译器技术,否则我会犹豫不决。