反饋已提交
網絡繁忙
FineReport 中使用函式需要用到很多的運算子,運算子不僅包含很多運算子,還包括一些報表特有的運算子。
運算子用於指定要對公式中的元素執行的計算類型。有預設計算順序,但可以使用括號更改此順序。
FineReport 中有四種不同類型的計算運算子:算術、比較、邏輯、連結。
執行基本的數學運算,如加、減、乘、除等,在公式中使用以下算術運算子:
可以使用下列運算子比較兩個值。使用這些運算子比較兩個值時,結果為邏輯值 TRUE 或 FALSE。
邏輯運算子用法與 AND 和 OR 同理。
銷售額>=10&&銷售人數>=2
即如果銷售額和銷售人數同時滿足指定條件則傳回 true
銷售額>=10||銷售人數>=2
即如果銷售額和銷售人數滿足任一指定條件則傳回 true
可以使用 + 運算子對正文字元進行合併。
例如:將正文欄位「abc」和「def」連接在一起,當然可以使用 CONCATENATE,但更簡單的方案是直接使用「+」,如下圖所示:
&A2
獲取儲存格 A2 擴展出來的每個資料的位置
ds1.select(銷售員)
資料集 ds1 取出內建 FRDemo 資料庫中的「銷量」表,傳回資料集 ds1 銷售員列中的所有值。
詳細使用請參見:資料集函式概述
層次座標專用,詳情參見:條件匯總
ds1.select(#1)
即取資料集第一欄資料(注:資料表中的第一欄而不是放在報表儲存格第一欄。)
如在 SQL 中SELECT * FROM 銷量 ${"where 地區='華東'"},會先計算出 ${} 裏面的值,然後連接出完整的SQL 語句
該範例 SQL其實就是 SELECT * FROM 銷量 where 地區='華東'
其他巨集定義可參考:計算格式 3.2.1 節
A2[A1:-1]
詳情參見:層次座標概念
if($$$=0,"",$$$)
表示如果當前值為 0 則顯示空,否則顯示為當前值
例如:=indexofarray(["a","b","c","d"],3)
獲取陣列中第三個位置的資料即回傳值為 c
詳情參見:陣列函式概述
FVS視覺化看板引用表格資料
決策報表引用表格資料
例如 {A2}
COUNT({A2}),則表示計算當前頁資料行數:
在某些情況下,執行計算的順序可能會影響公式的回傳值,因此,必須瞭解如何確定順序以及如何更改順序以獲取所需結果。
如果一個公式中有若干個運算子,FineBI 將按下表中的次序進行計算。 如果一個公式中的若干個運算子具有相同的優先順序(例如,如果一個公式中既有乘號又有除號),則 FineBI 將按照以下方向計算各運算子。
-
負號
-運算式
右到左
左到右
運算式=運算式
運算式==運算式
若要更改計算的順序,需要將公式中要先計算的部分用括號括起來。
例如,下面的公式生成 11,因為在加法之前計算乘法。 該公式先將 2 與 3 相乘,然後再將 1、4 與結果相加。
=1+2*3+4
但是,如果用括號對該文法進行更改,則會先將 1 與 2 相加在一起,然後再用結果乘以 3 ,再加上 4 得到 13。
=(1+2)*3+4
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙