帆软finereport实现动态切换分组和列表模式
首先簡單說一下什么是帆軟報表的“分組”還有“列表”,
分組呢,就是這樣:
列表呢,就是這樣:
簡單說,列表就是不合并重復的單元格了,分組就是自動把那些重復的單元格給合并起來。
最理想的情況下,是通過一些按鈕來控制在數據設置的分組與列表之間的狀態進行切換,但是帆軟沒這么智能,想了半天(真的是半天,一整個早上),試了很多種辦法,最后發現最簡單粗暴的方法就是最好用的方法:
隨便添加一個下拉框按鈕(我用的是cpt普通報表),添加一個是分組還是列表的變量,再加上“查詢”按鈕,
然后在sql語句里面去獲取這個變量,如果是分組呢,不做任何處理,如果是列表呢,就取值再加上序號,
我用的是oracle,所以就是 ‘國家’ || rownum (其他sql語言也有類似的東西,自己百度了,這里不展開)
這樣跑出來的結果就是:
但是我們肯定不要這個123,很簡單,添加條件屬性,用finereport的left函數取值(設置“新值”),在這里是left( $ $ $,2)
有時候,字段的長度是動態變化的,比如中國、俄羅斯、哈薩克斯坦,這樣不整齊的話比較難搞,其實方法也還是有,就是加一串比較長的數字,比如可以rownum加上一百萬(7位數),通常你的查詢條目不會超過一百萬條,如果超過了就加到千萬級或者億級即可。
這樣,在帆軟的條件屬性里面就可以設置
新值?left( $ $ $,len($ $ $ )-7),
(csdn連續打出三個$放在一起會出現顯示異常,無奈我只能在中間加上空格,實際上是沒有空格的)
然后條件就設置1==1即可
這樣在加載出來的時候就會把后面的rownum自動去掉
就可以實現按列表模式分行但是內容卻是一樣的了。
?
總結
以上是生活随笔為你收集整理的帆软finereport实现动态切换分组和列表模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用go语言制作读取excel模板批量生成
- 下一篇: 修改sga后oracle打不开的解决方法