FINEREPORT用到公式的地方非常多,單元格(以=開頭的便被解析為公式),條件顯示,數據字典,報表填報屬性值定義,圖表標題,軸定義,頁眉頁腳,甚至單元格的其他屬性中的鼠標懸浮提示內容都可以寫公式,雖然那個編輯框非常不像。
簡單的說下自己感覺的公式要注意的幾個地方:
1.if語句語法剛接觸感覺比較奇怪,if(條件式子,值1,值2),if可以嵌套,if(條件式子1,值1,if(條件式子2,值2,值3))。
2.switch語句也是,具體函數我不說了。
3.對于判斷用單等號和雙等號都行。
4.對于字符串用單引號和雙引號都行。
4.1bool只有true或者false。與邏輯還是&&或邏輯還是||。
4.2判斷為空的話用isnull()。
4.3format公式。format公式比較靈活。format($$$,"0.00")可以把當前單元格的數字轉換成兩位小數的形式,也可以用format(12,"預算值:0.00萬元")把12變成預算值:12.00萬元,這個是不是和自定義顯示數據字典神馬的有異曲同工之妙啊。有一點要注意的是,滿位數年月日的話樣式是"yyyy-MM-dd",而不是"yyyy-mm-dd",小寫的mm的意思是分鐘(minute)。
5.公式中取單元格的話直接用A1這種或者b2,跨sheet取值的語法是sheet1!A1.(英文情況)這些文檔有。
6.sql函數,這個是在公式中直接調用數據庫的方法。
7.數據集公式。
數據集公式是公式直接調用數據集的方法。這個公式說明中沒有(有幾個零散的和數據集相關的函數),我說一下。
比如有個模板數據集ds1,其字段為地區、銷售員、銷量,則可以用ds1.group(地區)獲取ds1的地區字段,group是分組,從而容易知道select是列表,ds1.select(銷售員)便是列表形式獲取銷售員字段,可以加上限制條件,比如ds1.select(銷售員,銷量=111)就是獲取銷售量為111的銷售員集合。
跟數據集相關的幾個函數有colcount colname row rowcount 等。
8.層次坐標。
層次坐標是公式里面比較難點的,“可玩性”非常強,東西比較多,只能記住最常用的幾個,能解決各種各樣BT的需求。較為常用的一個就是排名公式了=count(B3[!0]{B3 > $B3})+1。自己看吧。http://www.finereporthelp.com/help/1/4/7.html
9.過濾公式。
過濾有兩個條件類型,其一是公式條件。這個公式有一點點不同的是,可以直接寫當前單元格的字段所在數據集的任何字段,相對于普通公式要靈活很多。還拿自帶的銷量表為例,給地區字段所在單元格過濾,公式條件可以直接寫:銷量==111。
10.條件屬性。
條件屬性要說的不是公式方面的,用的多了感覺很自然,但是剛接觸的時候感覺不太好理解。簡單說下。條件屬性面板,上面是屬性,下面是條件。當下面的條件滿足,也就是返回值是true的時候,執行上面的屬性設置。
新聞熱點
疑難解答