1. 程式人生 > >報表資料填報中的自動計算

報表資料填報中的自動計算

都說資料是死的,其實它們也可以生龍活虎,到底咋回事呢?且聽我慢慢道來。接觸過 excel 的小夥伴們都知道,excel 中可以設定表示式,用以支援常見的加減乘除等運算,更復雜的還可以自己寫 function,單元格中的資料會根據表示式自己計算出來結果,不要再用計算器了。這麼方便的一個功能如果能在報表中實現,而且是在填報表中將自動計算後的資料填入資料庫,那豈不是美事一樁?
問題又來了,具體應該怎麼操作呢?
不用擔心,不用著急,我們接下來要請出的潤乾報表就提供了一整套的解決機制,來,看這裡,我們從最簡單的部分開始。
1. 簡單自動計算
最簡單的校驗方式莫過於加減乘除了,潤乾報表可以直接通過“列號 + 行號”的引用方式來獲取對應單元格的資料。例如:下圖是自動計算工資的自動計算表示式配置:=H3*1.2,表示應發工資是工資的 1.2 倍,使用者只需要填寫工資基數,就可以計算出來應發工資。

imagepng

其中,表示式 =H3*1.2 中 H3 表示取第三行 H 列對應單元格的資料
如果 H3 單元格是擴充套件資料,潤乾報表可以自動識別擴充套件資料進行計算,無需另外做配置。

2. 表示式自動運算
如果我們在簡單計算的基礎上,加上一些判斷處理,比如不同的工資段發放的獎金不同,那麼簡單的自動計算就不能滿足需求了,怎麼辦?
Don’t worry~ 潤乾報表還提供了“表示式自動計算”方式,這種自動計算表示式的規則遵從 javascript 的語法規則,可以在自動計算表示式中寫一個 javascript 表示式,也可以呼叫一個函式。

例如,我們需要對於工資基數在一萬元以下的員工給予 1.2 倍的獎勵,一萬元以上的按照原基數發放工資,此時可以進行如下配置:

imagepng

=H3>=10000 ? H3 : (H31.2) 的寫法是三目運算,它的效果類似於 if,表示如果滿足 H3>=10000 的條件,那麼返回 H3 單元格的值,否則返回 H31.2 的計算結果

< 三目運算說明 >:
對於條件表示式 b ? x : y,先計算條件 b,然後進行判斷。如果 b 的值是 true,計算 x 的值,運算結果是 x 的值;否則,計算 y 的值,運算結果是 y 的值。

3.JS 自動計算
如果自動計算處理過程比較複雜,不能單純用表示式配置,怎麼辦?Take it easy~ 我們還有終極大招:JS 自動計算
我們可以在 jsp 中定義 js 函式處理複雜計算,報表中呼叫這個 js 函式進行資料自動計算。
以計算日期差為例:在入職日期的基礎上計算員工的在職時長,具體操作如下:
1)在 showInput.jsp(展現填報表的 jsp)中增加如下 js 程式碼:

imagepng

2)設定單元格自動計算表示式,引用此 js 函式:

imagepng

關於自動計算的分享就先到這裡了。還意猶未盡?更多填報相關專題內容盡在潤乾官方論壇:http:/