前言:在報表設計中我們經常會用到表達式,就像在excel中用到公式一樣,有了表達式會使我們的報表設計工作事半功倍。
積木報表包含哪些表達式?
積木報表完善了原有表達式,在原有基礎上,擴展了數據集表達式、單元格表達式、統計函數、行號函數、日期函數、數學函數、字符串函數、條件表達式、顏色表達式、判斷函數,基本運算符函數及系統函數。
下面我們就來看一下都包括哪些表達式及其用法吧。
1. 數據集函數
數據集函數包含sum(求和)、average(求平均值)、max(求最大值)、min(求最小值)及基礎運算符(+-*/)
示例: 以sum為例
- =sum(#{jm.money},#{jm.extend_money}) 可以對多列求和
2.單元格函數
單元格函數也包含:sum(求和)、average(求平均值)、max(求最大值)、min(求最小值)及基礎運算符(+-*/)
示例: 以sum為例
- =sum(C6) 對C6單元格求和,如果C6單元格是表達式如${db.count},將對該頁面表達式循環出來的所有數據求和
- =sum(A6,C6) 對A6和C6單元格求和
- =sum(A6:C6) 對A6到C6單元格求和
3.統計函數
統計函數包含dbsum(求和)、dbmax(求最大值)、dbmin(求最小值)、dbaverage (求平均值)
是對指定數據集指定字段,對該字段所有數據進行計算
例如dbsum對比sum函數區別:dbsum統計數據集所有數據,sum只支持當前頁數據
示例 以dbsum為例
- =dbsum(jm.money)
4.行號函數
行號函數:通過行號函數實現自增序號
示例:
- =row()
- 多個列表需要行號,需要設置一個數字 參數區分計數器如:=row(1) =row(2)
5.日期函數
日期函數包含date(獲取年月日)、time(獲取時分秒)、year(獲取年)、month(獲取月)、day(獲取天)、now(獲取當前時間長整型數值)、nowstr(獲取當前時間字符串)
示例: 以date為例
- =date("1982-08-09") 返回日期:1982-08-09 00:00:00
- =date("1982-08-09 10:20:30") 返回日期:1982-08-09 00:00:00
- 集合:=date('#{jm.create_time}')
- 對象:=date('${jm.create_time}')
- 單元格:=date(A1)
6.數學函數
數學函數包含rand(獲取隨機數)、round(四舍五入)、abs(取絕對值)、floor(取整)、ceil(取整)、trunc(取整)
示例: 以round為例
- =round(3451251.274,0)
- =round(#{db.salary}, 2)
7、字符串函數
字符串函數包含char(unicode編碼或者ascii編碼轉換)、cnmoney(大寫金額轉換)、concat(字符串拼接)、lower(轉小寫)、upper(轉大寫)、date_str(日期轉為字符串)
示例: 以cnmoney為例
- =cnmoney(1.232)返回:壹元貳角叄分
- 集合:=cnmoney(#{jm.money})
- 對象:=cnmoney(${jm.money})
- 單元格:=cnmoney(A1)
8、條件表達式
條件表達式是對數據進行條件判斷 ,包含 case、if
示例:
-
=case('#{dd.sex}'=='1','男','女')
-
=case(1==1,1,2) ->1
-
=(let sex= '#{dd.sex}';
if(sex== '1'){
'男'
}elsif(sex== '2'){
'女'
}else{
'未知'
}) -
=(if(A1==1){return (A1+B1)*200;})
9、顏色表達式
顏色表達式包含:color(單元格字體/背景顏色)、rowcolor(整行字體/背景顏色)
示例: 以color為例
- 集合:=color('#{jm.salse}','#ffffff','#171516')
- 對象:=color('${jm.salse}','#ffffff','#171516')
- 單元格:=color(A1,'#ffffff','#171516')
- 固定值:=color('2','#ffffff','#171516')
10、判斷函數
判斷函數是對數據進行判斷;包含istime(時間判斷)、isdate(時期判斷)、isnumber(數字判斷)、intval(參數為空則返回默認值0)、strval(參數為空則返回默認值nil)
示例: 以istime為例
- =istime("10:20:30") 返回 true
- =istime('#{jm.create_time}')
- =istime('${jm.create_time}')
- =istime(A1)