反饋已提交
網絡繁忙
本文介紹如何在 FineReport 中使用計算功能。
將告訴使用者何時可使用計算、如何使用公式編輯器。
如果剛接觸 FineReport 的使用者,不瞭解函式,則非常適合從這裏着手。
透過計算,可以根據資料源中已存在的資料建立新資料,並對資料執行計算。
這樣可以執行復雜的分析,並且可以引用計算結果進行視覺化範本製作。
計算允許利用資料源中已存在的資料建立新資料。
有很多原因,可以使用函式進行計算。可能包括:
將資料分割 字串分割
轉換欄位的資料型別,例如 將字串轉換為日期。
篩選結果
計算佔比
下面給出使用計算的情景。
內建 FRDemo 資料表「S訂單明細」中有「單價」、「數量」、「進價」、「折扣」欄位,但需要計算每個訂單ID的「利潤」以及所有訂單 ID 的「平均利潤」,則可以使用類似於以下內容的公式計算,如下圖所示:
利潤:C2 * (B2 - D2) * (1 - E2)
平均利潤:AVERAGE(F2)
結果如下圖所示:
例如可能要將字串「2021/02/07星期三」轉換為時間型,輸入公式:TODATE("2021/02/07星期三","yyyy/MM/ddEEE","zh"),如下圖所示:
例如設定表格隔行變色。
詳情參見:隱藏行後隔行變色
FineReport 中可以使用「公式編輯器」的位置有如下幾個:
範例:隔列/欄設定背景色
範例:資料字典 2.4 節
在 SQL 中使用公式,可以將公式放在 ${} 中,例如參數為空傳回全部的 sql 語句:
SELECT * FROM 訂單 where 1=1 ${if(len(area) == 0,"","and 貨主地區 = '" + area + "'")} ${if(len(province) == 0,"","and 貨主省份 = '" + province + "'")}
如果len(area)!=0,即 area 參數不為空,比如說 area 的值為華東,那麼 IF 語句的執行結果為and 貨主地區='華東',然後再把這句話連接到 SQL 語句當中,SQL 語句就變成:
SELECT * FROM 訂單 where 1=1 and 貨主地區='華東' and 貨主省份='江蘇'
SQL 語句其實是字串。因此可以從資料庫呼叫一個 SQL 語句作為字串進行取數。此時即用到 SQL函式,例如公式:
=sql("FRDemo","SELECT * FROM 銷量 ",1,1) 匯出結果為華東
同時也可以把這個字串用在 SQL 公式中作為字串執行,因此建立資料集時可以定義為:SELECT * FROM where 地區='${sql("FRDemo","SELECT * FROM 銷量 ",1,1)}'
也就是 SELECT * FROM where 地區='華東'。
作為一款 B/S 產品,browser 端的 JavaScript 是必不可少的。
如何在 JS 編輯框中使用公式詳情參見:在JS中使用FR公式
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉