在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切換的過程中,如果控件有新值且未提交為提示。