2013-12-12 27 views
0

我正在構建一個Web應用程序,該應用程序將允許用戶使用其數據創建小型「電子表格」。這是一個計時應用程序,我正在構建報告工具。用於web應用的小型電子表格式語言解釋器

我正在尋找一種方法,讓不同的羣體擁有不同的報告,而不必在算法中進行硬編碼。我想將這些算法存儲在一個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 

我不知道如果最好的辦法是建立一個小翻譯,並創建自己的小語言來形容的話,或者如果有東西在那裏已經喜歡這個。

我想知道其他人如何爲每個用戶創建用戶自己可以更改的自定義報告工具。改變我可以建立我簡單的用戶界面,以改變他們不必編碼任何東西。

如果有人能指出我在正確的方向非常感謝。

謝謝,

+0

這不完全相同,它不僅限於報告:「構建Web應用程序的電子表格公式」,請參閱http://redd.it/1s466o - 也許在這裏談論這種事情很好吧http: //www.reddit.com/r/SideProject/ – eddyparkinson

回答

1

的一般的解決這個問題是在腳本的形式使用運行時表達式求值器。在處理複雜和不同的計算中會出現類似的問題,例如成本覈算,報價和工資覈算。

舉一個簡單的例子,腳本代碼可能是:

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

的問題是:

  1. 用什麼語言來使用的表達式。
  2. 如何給它需要的變量的語言訪問(沒有別的)

主要選擇是:

  1. 寫您的表達式求值/語言。硬! (但我最喜歡的)
  2. 使用託管語言,如果合適的話。我相信PHP可以用於這個角色,但是我相信其他人可以發揮這樣的作用。
  3. 嵌入爲此目的設計的動態編譯/解釋語言。我會建議Lua,但這取​​決於它是否可以嵌入到您的平臺上。

這不是一個完整的答案,而是一個追求的方向。我已經在Ruby中完成了這個工作(嵌入了我自己的表達式求值器),但是除非你真的喜歡編譯器技術,否則不要提出它。