在FineReport报表中通常需要面板中的搜索条件来过滤报表中的数据,然而有时需要设置权限管理,这样就需要设置搜索控件是否显示了,需求就是为了设置权限来出发的。
1.上干货
如图:需要用查询维度来,筛选付款方医院和收款方医院,这两个控件是否显示
首先要想到的就是,既然要用查询维度来控制他俩是否显示,所以就需要把触发的事件写在查询维度的控件中。
2.拿到查询维度,付款方医院,收款方医院的控件名
①查询维度:
②付款方医院:
③收款方医院:
3.在查询维度中开始造控制是否显示与影藏的JS
JS脚本部分:
//获取表单控件
var form=this.options.form;
//获取查询维度的控件名
var comboBox0=this.options.form.getWidgetByName("comboBox0").getValue();
//获取付款方医院控件名
var label1 = this.options.form.getWidgetByName("label1");
//获取付款方医院输入框的控件名
var reqHospitalId = this.options.form.getWidgetByName("reqHospitalId");
//获取收款方医院控件名
var label2 = this.options.form.getWidgetByName("label2");
//获取收款方医院输入框的控件名
var invHospitalId = this.options.form.getWidgetByName("invHospitalId");
//默认情况下是都显示
if (comboBox0 == 1) //当选择查询维度的值为1时
{
label1.setVisible(true);
reqHospitalId.setVisible(true);
label2.setVisible(false);
invHospitalId.setVisible(false);
}else if(comboBox0 == 2) //当选择查询维度的值为2时
{
label1.setVisible(false);
reqHospitalId.setVisible(false);
label2.setVisible(true);
invHospitalId.setVisible(true);
}else{ //当选择查询维度的值为无时
label1.setVisible(true);
reqHospitalId.setVisible(true);
label2.setVisible(true);
invHospitalId.setVisible(true);
}
最后贴一下查询维度的数据字典;