FineReport——巧妙實現類tab布局


在FR中,表達form支持局部刷新和tab布局,在報表中,不能做到這樣,只能舍棄一些功能來做到類似的tab布局。

首先,在參數面板放一個文本控件temp,用作一個臨時值,需要設置一個默認值,而切換是通過條件屬性--行高來實現。條件屬性條件便是通過公式來判斷temp的值,由於不能做到局部刷新,所以只有通過刷新來實現,可是真正的刷新時刷新整個頁面,重新加載了,所以可以通過自動查詢來實現(類似的,如果報表中值是通過參數面板控件值查詢得到的,也可以在某個事件之后清空這個控件值,再自動查詢做到清屏的效果)。

在A1,A2,A3分布添加一個按鈕控件(tab1,tab2,tab3),並在其點擊事件中添加如下JS代碼:

var Widget = contentPane.parameterEl.getWidgetByName("temp");
Widget.setValue("1");//A1設置值為1,A2為2,A3為3
_g().parameterCommit(); 

在tab1情況下需要顯示的行,添加條件屬性——行高:

temp != "1"    //tab2下需要顯示的為2,tab3下為3

點擊填報預覽

ok,這樣就基本上就可以做到類似tab布局了,在tab切換的過程中,如果控件有新值且未提交為提示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM