下拉框选择特定值隐藏的参数框可见

image.png

如图,比如当展示方式为小时的时候,旁边的小时参数变成可见的,如果选择非小时的时候,变成不可见的,请问这种应该如何实现?

FineReport skycygo 发布于 2019-5-6 09:25
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
尘埃。Lv2初级互助
发布于2019-5-6 09:33

1. 描述



由于业务的需要,很多情况下需要当满足某个条件时,某些查询条件才显示出来:

选择年报,显示年的下拉框控件,如图所示:


选择月报,显示年月下拉框控件,如图所示:


选择日报,显示日期下拉框控件,如图所示:


2. 思路

通过控件的visible()invisible()属性控制其可见与不可见:

[object Object]
Widget.visible(); //设置该控件可见
Widget.invisible(); //设置该控件不可见

3. 示例

3.1 打开模板

打开模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\DynamicSQL.cpt

3.2 修改数据集

将数据集修改为:SELECT * FROM 订单 where 1=1 ${if(type=="日报"," and date(订购日期)='"+ date +"'", if(type=="月报"," and strftime('%m',订单.订购日期)='"+ month+"'"+" and strftime('%Y',订单.订购日期)='"+ year+"'"," and strftime('%Y',订单.订购日期)='"+ year+"'"))}

给参数type设置默认值为日报,参数date设置默认值的类型为字符串型值为2010-01-03。

3.3 表样修改

将表样修改成如下样式:


3.4 参数界面设置

将参数界面设置成如下样式:




设置参数type的控件类型为下拉框,数据字典选择自定义,实际值与显示值都为日报,月报,年报。

设置参数year的控件类型为下拉框,属性设置为可用不可见,数据字典选择自定义,显示值与实际值都为2010,2011。

设置参数month的控件类型也为下拉框,属性设置为可用不可见,数据字典选择公式,在实际值出填写公式["01","02","03","04","05","06"]即可。

设置参数date的控件类型为日期,属性设置为可用不可见,返回值类型为默认的字符串型。

3.5 动态显示参数控件JS事件设置

给参数type的下拉框控件增加编辑后事件,具体的JS代码如下:

点击参数type的下拉框控件,在属性表的下方选择事件面板,点击增加编辑后事件,具体的js如下:

var form = this.options.form;var p2Widget = form.getWidgetByName("date");var p3Widget = form.getWidgetByName("year");var p4Widget = form.getWidgetByName("month");var value = this.getValue();  //获取当前参数即type参数的值if (value == "日报") {       
   p2Widget.visible();
   p3Widget.invisible();
   p4Widget.invisible();
} else if (value == "月报") {
   p2Widget.invisible();
   p3Widget.visible();
   p4Widget.visible();
} else if(value == "年报"){
   p2Widget.invisible();
   p3Widget.visible();
   p4Widget.invisible();
}else {
   p2Widget.invisible();
   p3Widget.invisible();
   p4Widget.invisible();
}

注:此段代码判断type参数的值,若是日报,则只显示date控件,若是月报,则显示year和month控件,若是年报,则只显示year控件。

3.6 保存模板

点击分页预览,效果如上图。

在线查看模板效果请点击DynamicParaWidget.cpt


已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\动态显示参数控件.cpt




如果解决了您的问题,请及时采纳,系统会为您增加20信用分哦...

最佳回答
1
KevinGaoLv2初级互助
发布于2019-5-6 09:31
最佳回答
1
axingLv6专家互助
发布于2019-5-6 09:39

变成不可见的时候,要清空控件的值,否则控件依然能够传值。

参考模板

WorkBook330.cpt


最佳回答
0
hhh1Lv0见习互助
发布于2019-5-6 10:39

1

  • 6关注人数
  • 1102浏览人数
  • 最后回答于:2019-5-6 10:39
    请选择关闭问题的原因
    确定 取消
    返回顶部