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切换的过程中,如果控件有新值且未提交为提示。

转载于:https://www.cnblogs.com/ytwy/p/5071760.html

你可能感兴趣的:(FineReport——巧妙实现类tab布局)